Module: DateBook::ActsAsSchedule::InstanceMethods

Defined in:
lib/date_book/concerns/acts_as_schedule.rb

Overview

Instance Methods

Instance Method Summary collapse

Instance Method Details

#duration_attributesObject



12
13
14
# File 'lib/date_book/concerns/acts_as_schedule.rb', line 12

def duration_attributes
  OpenStruct.new count: duration_count, unit: duration_unit
end

#duration_attributes=(value) ⇒ Object



16
17
18
19
20
21
# File 'lib/date_book/concerns/acts_as_schedule.rb', line 16

def duration_attributes=(value)
  if value.is_a? Hash
    self.duration = value['count'].to_i.send(value['unit'].to_sym).to_i
  end
  super value
end

#duration_countObject



23
24
25
# File 'lib/date_book/concerns/acts_as_schedule.rb', line 23

def duration_count
  duration / 1.send(duration_unit.singularize.to_sym).to_i
end

#duration_unitObject



27
28
29
30
31
32
33
34
# File 'lib/date_book/concerns/acts_as_schedule.rb', line 27

def duration_unit
  return 'seconds' if duration.zero?
  DateBook
    .configuration
    .duration_units
    .select { |x| unit_matches? x }
    .first || 'seconds'
end

#human_dateObject



36
37
38
# File 'lib/date_book/concerns/acts_as_schedule.rb', line 36

def human_date
  I18n.localize date, format: :human_date
end

#human_timeObject



40
41
42
# File 'lib/date_book/concerns/acts_as_schedule.rb', line 40

def human_time
  I18n.localize time, format: :human_time
end