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 | 
