aboutsummaryrefslogtreecommitdiffstats
path: root/lib/line_periods.rb
blob: c176a7a08c0ec5cb3f99b8085c39c5a6472f334c (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
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