aboutsummaryrefslogtreecommitdiffstats
path: root/lib/line_periods.rb
diff options
context:
space:
mode:
authorLuc Donnet2018-02-19 11:04:29 +0100
committerLuc Donnet2018-02-19 11:04:29 +0100
commit7b17deff51545358009cb417cbb9d796565e7540 (patch)
treea43a5586ad39d838dd607e600dbc15ff18a58ab3 /lib/line_periods.rb
parent89428163fc93a7e09ebb0ca47939f8558afeb5eb (diff)
parent5f6008d165df4499319a2121a71842657d6ac3c9 (diff)
downloadchouette-core-7b17deff51545358009cb417cbb9d796565e7540.tar.bz2
Merge branch 'master' into 0000-docker
Diffstat (limited to 'lib/line_periods.rb')
-rw-r--r--lib/line_periods.rb35
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