Module: SpreeCmCommissioner::Transit::TripHelper

Instance Method Summary collapse

Instance Method Details

#minutes_since_midnight(value) ⇒ Object



28
29
30
31
32
33
34
35
36
37
# File 'app/helpers/spree_cm_commissioner/transit/trip_helper.rb', line 28

def minutes_since_midnight(value)
  case value
  when Time, ActiveSupport::TimeWithZone
    (value.hour * 60) + value.min
  else
    str = value.to_s.strip
    h, m = str.split(':', 2).map(&:to_i)
    (h * 60) + (m || 0)
  end
end

#normalize_date(value) ⇒ Object



20
21
22
23
24
25
26
# File 'app/helpers/spree_cm_commissioner/transit/trip_helper.rb', line 20

def normalize_date(value)
  if value.respond_to?(:to_date) && value.to_date == Time.zone.now.to_date
    Time.zone.now
  else
    Time.zone.parse(value.to_s)
  end
end

#parse_date(date_obj) ⇒ Object

Helper to parse date strings or return date objects



12
13
14
15
16
17
18
# File 'app/helpers/spree_cm_commissioner/transit/trip_helper.rb', line 12

def parse_date(date_obj)
  return date_obj if date_obj.is_a?(Date)

  Date.parse(date_obj.to_s)
rescue ArgumentError
  nil
end

#parse_time(time, timezone = nil) ⇒ Object



4
5
6
7
8
9
# File 'app/helpers/spree_cm_commissioner/transit/trip_helper.rb', line 4

def parse_time(time, timezone = nil)
  return nil if time.blank?

  formatted_time = Time.zone.parse(time.to_s)
  timezone ? formatted_time.in_time_zone(timezone) : formatted_time
end