Class: SpreeCmCommissioner::Trip
- Includes:
- RouteTripCountCallbacks, RouteType, StoreMetadata
- Defined in:
- app/models/spree_cm_commissioner/trip.rb
Constant Summary
Constants included from RouteType
Instance Attribute Summary collapse
-
#hours ⇒ Object
Returns the value of attribute hours.
-
#minutes ⇒ Object
Returns the value of attribute minutes.
-
#seconds ⇒ Object
Returns the value of attribute seconds.
Instance Method Summary collapse
- #arrival_time ⇒ Object
- #changed_route_attributes? ⇒ Boolean
- #convert_duration_to_seconds ⇒ Object
- #duration_in_hms ⇒ Object
- #origin_and_destination_cannot_be_the_same ⇒ Object
Instance Attribute Details
#hours ⇒ Object
Returns the value of attribute hours.
7 8 9 |
# File 'app/models/spree_cm_commissioner/trip.rb', line 7 def hours @hours end |
#minutes ⇒ Object
Returns the value of attribute minutes.
7 8 9 |
# File 'app/models/spree_cm_commissioner/trip.rb', line 7 def minutes @minutes end |
#seconds ⇒ Object
Returns the value of attribute seconds.
7 8 9 |
# File 'app/models/spree_cm_commissioner/trip.rb', line 7 def seconds @seconds end |
Instance Method Details
#arrival_time ⇒ Object
69 70 71 72 73 |
# File 'app/models/spree_cm_commissioner/trip.rb', line 69 def arrival_time return nil if departure_time.nil? || duration.nil? departure_time + duration.seconds end |
#changed_route_attributes? ⇒ Boolean
50 51 52 |
# File 'app/models/spree_cm_commissioner/trip.rb', line 50 def changed_route_attributes? origin_place_id_changed? || destination_place_id_changed? || vendor_id_changed? end |
#convert_duration_to_seconds ⇒ Object
54 55 56 57 58 |
# File 'app/models/spree_cm_commissioner/trip.rb', line 54 def convert_duration_to_seconds return if hours.blank? && minutes.blank? && seconds.blank? self.duration = (hours.to_i * 3600) + (minutes.to_i * 60) + seconds.to_i end |
#duration_in_hms ⇒ Object
60 61 62 63 64 65 66 67 |
# File 'app/models/spree_cm_commissioner/trip.rb', line 60 def duration_in_hms return { hours: 0, minutes: 0, seconds: 0 } if duration.nil? hours = duration / 3600 minutes = (duration % 3600) / 60 seconds = duration % 60 { hours: hours, minutes: minutes, seconds: seconds } end |
#origin_and_destination_cannot_be_the_same ⇒ Object
75 76 77 78 79 |
# File 'app/models/spree_cm_commissioner/trip.rb', line 75 def origin_and_destination_cannot_be_the_same return unless origin_place_id == destination_place_id errors.add(:base, 'Origin and destination cannot be the same') end |