diff options
| author | Alban Peignier | 2018-01-05 09:12:44 +0100 |
|---|---|---|
| committer | Alban Peignier | 2018-01-05 10:23:29 +0100 |
| commit | 2db75790638ed3310cd32a5d47b442d56c47f879 (patch) | |
| tree | 4490a673d2534d0b817ffd2298b36533c124b1a1 | |
| parent | f2fb3bedf3eec870b872842f53b456f08915c3ba (diff) | |
| download | chouette-core-2db75790638ed3310cd32a5d47b442d56c47f879.tar.bz2 | |
Create LinePeriods to associate line ids with period array. Refs #5299
| -rw-r--r-- | lib/line_periods.rb | 35 |
1 files changed, 35 insertions, 0 deletions
diff --git a/lib/line_periods.rb b/lib/line_periods.rb new file mode 100644 index 000000000..c176a7a08 --- /dev/null +++ b/lib/line_periods.rb @@ -0,0 +1,35 @@ +class LinePeriods + + def initialize + @periods_by_line = Hash.new { |h,k| h[k] = [] } + end + + def add(line_id, period) + @periods_by_line[line_id] << period + end + + def each(&block) + @periods_by_line.each do |line_id, periods| + yield line_id, periods + end + end + + def periods(line_id) + @periods_by_line[line_id] + end + + def self.from_metadatas(metadatas) + line_periods = new + + metadatas.each do |metadata| + metadata.line_ids.each do |line_id| + metadata.periodes.each do |period| + line_periods.add(line_id, period) + end + end + end + + line_periods + end + +end |
