lib/active_object/date.rb in active_object-3.0.0 vs lib/active_object/date.rb in active_object-3.1.0

- old
+ new

@@ -1,7 +1,16 @@ module ActiveObject::Date + MINUTE = 60.0 + HOUR = MINUTE * 60.0 + DAY = HOUR * 24.0 + WEEK = DAY * 7.0 + YEAR = DAY * 365.25 + DECADE = YEAR * 10.0 + CENTURY = DECADE * 10.0 + MILLENNIUM = CENTURY * 10.0 + STRING_UNITS = { d: "d", day: "d", day_padded: "d", dd: "-d", Day: "-d", day_unpadded: "-d", ddd: "_d", DAY: "_d", day_blank: "_d", dddd: "j", day_of_the_year: "j", m: "m", month: "m", month_padded: "m", mm: "-m", Month: "-m", month_unpadded: "-m", mmm: "_m", MONTH: "_m", month_blank: "_m", mmmm: "B", @@ -19,9 +28,63 @@ weekday_unpadded: "%-d", weekday_blank: "%_d", weekday_name: "%A", weekday_name_abbr: "%a", yr: "%y", year_abbr: "%y", year: "%Y", date: "%B %-d, %Y", date_abbr:"%b %-d, %Y", date_iso: "%Y-%m-%d", day: "%B %-d", day_abbr: "%b %-d", day_iso: "%m-%d" } + + def count_centuries_since(time) + count_seconds_since(time) / CENTURY + end + + alias_method :count_centuries_until, :count_centuries_since + + def count_days_since(time) + count_seconds_since(time) / DAY + end + + alias_method :count_days_until, :count_days_since + + def count_decades_since(time) + count_seconds_since(time) / DECADE + end + + alias_method :count_decades_until, :count_decades_since + + def count_hours_since(time) + count_seconds_since(time) / HOUR + end + + alias_method :count_hours_until, :count_hours_since + + def count_milleniums_since(time) + count_seconds_since(time) / MILLENNIUM + end + + alias_method :count_milleniums_until, :count_milleniums_since + + def count_minutes_since(time) + count_seconds_since(time) / MINUTE + end + + alias_method :count_minutes_until, :count_minutes_since + + def count_seconds_since(time) + (to_time.to_f - time.to_time.to_f).abs + end + + alias_method :count_seconds_until, :count_seconds_since + + def count_weeks_since(time) + count_seconds_since(time) / WEEK + end + + alias_method :count_weeks_until, :count_weeks_since + + def count_years_since(time) + count_seconds_since(time) / YEAR + end + + alias_method :count_years_until, :count_years_since def format(string) delimiters = string.scan(/\W+/) formatters = string.scan(/[a-z0-9_]+/i)