From 2db75790638ed3310cd32a5d47b442d56c47f879 Mon Sep 17 00:00:00 2001 From: Alban Peignier Date: Fri, 5 Jan 2018 09:12:44 +0100 Subject: Create LinePeriods to associate line ids with period array. Refs #5299 --- lib/line_periods.rb | 35 +++++++++++++++++++++++++++++++++++ 1 file changed, 35 insertions(+) create mode 100644 lib/line_periods.rb (limited to 'lib') 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 -- cgit v1.2.3