diff options
| author | Zog | 2018-01-10 16:39:08 +0100 |
|---|---|---|
| committer | Zog | 2018-01-10 16:56:53 +0100 |
| commit | 5c3abf69c50f00e0caab1517be2beccca10e635b (patch) | |
| tree | 1bc56181320dcad4b091ca6a57e5ef49153881fa /app | |
| parent | 71614a19f62ed3f9ca3068e149dcd60471bef27d (diff) | |
| download | chouette-core-5c3abf69c50f00e0caab1517be2beccca10e635b.tar.bz2 | |
Refs #5535 @0.25h; Adds a `full_schedule?` on `JourneyPattern`
To know if all the costs between the stops of the pattern are set.
Diffstat (limited to 'app')
| -rw-r--r-- | app/models/chouette/journey_pattern.rb | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/app/models/chouette/journey_pattern.rb b/app/models/chouette/journey_pattern.rb index 1ddf7c9fb..53ff363a2 100644 --- a/app/models/chouette/journey_pattern.rb +++ b/app/models/chouette/journey_pattern.rb @@ -150,5 +150,23 @@ module Chouette def costs read_attribute(:costs) || {} end + + def costs_between start, finish + key = "#{start.id}-#{finish.id}" + costs[key]&.symbolize_keys || {} + end + + def full_schedule? + full = true + stop_points.inject(nil) do |start, finish| + next finish unless start.present? + costs = costs_between(start, finish) + full = false unless costs.present? + full = false unless costs[:distance] && costs[:distance] > 0 + full = false unless costs[:time] && costs[:time] > 0 + finish + end + full + end end end |
