Module: ActiveObject::Date

Defined in:
lib/active_object/date.rb

Instance Method Summary collapse

Instance Method Details

#count_centuries_since(time) ⇒ Object Also known as: count_centuries_until



36
37
38
# File 'lib/active_object/date.rb', line 36

def count_centuries_since(time)
  count_seconds_since(time) / CENTURY
end

#count_days_since(time) ⇒ Object Also known as: count_days_until



42
43
44
# File 'lib/active_object/date.rb', line 42

def count_days_since(time)
  count_seconds_since(time) / DAY
end

#count_decades_since(time) ⇒ Object Also known as: count_decades_until



48
49
50
# File 'lib/active_object/date.rb', line 48

def count_decades_since(time)
  count_seconds_since(time) / DECADE
end

#count_hours_since(time) ⇒ Object Also known as: count_hours_until



54
55
56
# File 'lib/active_object/date.rb', line 54

def count_hours_since(time)
  count_seconds_since(time) / HOUR
end

#count_milleniums_since(time) ⇒ Object Also known as: count_milleniums_until



60
61
62
# File 'lib/active_object/date.rb', line 60

def count_milleniums_since(time)
  count_seconds_since(time) / MILLENNIUM
end

#count_minutes_since(time) ⇒ Object Also known as: count_minutes_until



66
67
68
# File 'lib/active_object/date.rb', line 66

def count_minutes_since(time)
  count_seconds_since(time) / MINUTE
end

#count_seconds_since(time) ⇒ Object Also known as: count_seconds_until



72
73
74
# File 'lib/active_object/date.rb', line 72

def count_seconds_since(time)
  (to_time.to_f - time.to_time.to_f).abs
end

#count_weeks_since(time) ⇒ Object Also known as: count_weeks_until



78
79
80
# File 'lib/active_object/date.rb', line 78

def count_weeks_since(time)
  count_seconds_since(time) / WEEK
end

#count_years_since(time) ⇒ Object Also known as: count_years_until



84
85
86
# File 'lib/active_object/date.rb', line 84

def count_years_since(time)
  count_seconds_since(time) / YEAR
end

#format(string) ⇒ Object



90
91
92
93
94
95
96
97
98
99
# File 'lib/active_object/date.rb', line 90

def format(string)
  delimiters = string.scan(/\W+/)
  formatters = string.scan(/[a-z0-9_]+/i)

  string = formatters.map do |unit|
    "%#{STRING_UNITS.fetch(unit.to_sym)}#{delimiters.shift || ''}"
  end

  strftime(string.join)
end

#to_format(key = :datetime_iso) ⇒ Object Also known as: stamp



101
102
103
# File 'lib/active_object/date.rb', line 101

def to_format(key = :datetime_iso)
  strftime(KEY_UNITS.fetch(key.to_sym))
end