lib/active_object/date.rb in active_object-4.0.14 vs lib/active_object/date.rb in active_object-5.0.1

- old
+ new

@@ -1,103 +1,109 @@ -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 +# frozen_string_literal: true - 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', yyyy: 'Y', - month_padded: 'm', mm: '-m', Month: '-m', month_unpadded: '-m', mmm: '_m', MONTH: '_m', - month_blank: '_m', mmmm: 'B', month_name: 'B', mmmmm: 'b', month_name_abbr: 'b', w: 'u', - weekday: 'u', ww: 'w', weekday_offset: 'w', www: 'A', weekday_name: 'A', wwww: 'a', year: 'Y', - weekday_name_abbr: 'a', yy: 'y', yr: 'y', swe: 'U', sunday_week: 'U', mwe: 'W', - monday_week: 'W', we: 'V', week: 'V' - }.freeze - KEY_UNITS ||= { - month: '%m', month_padded: '%m', month_unpadded: '%-m', month_blank: '%_m', month_name: '%B', - month_name_abbr: '%b', month_year: '%m %Y', month_padded_year: '%m %Y', day_iso: '%m-%d', - month_unpadded_year: '%-m %Y', month_blank_year: '%_m %Y', month_name_year: '%B %Y', - month_name_abbr_year: '%b %Y', weekday: '%d', weekday_padded: '%d', 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', sunday_week: '%U', monday_week: '%W', week_iso: '%V', week_year_iso: '%V-%G' - }.freeze +require 'date' - def count_centuries_since(time) - count_seconds_since(time) / CENTURY - end +module ActiveObject + module 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 - alias_method :count_centuries_until, :count_centuries_since + 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', yyyy: 'Y', + month_padded: 'm', mm: '-m', Month: '-m', month_unpadded: '-m', mmm: '_m', MONTH: '_m', + month_blank: '_m', mmmm: 'B', month_name: 'B', mmmmm: 'b', month_name_abbr: 'b', w: 'u', + weekday: 'u', ww: 'w', weekday_offset: 'w', www: 'A', weekday_name: 'A', wwww: 'a', year: 'Y', + weekday_name_abbr: 'a', yy: 'y', yr: 'y', swe: 'U', sunday_week: 'U', mwe: 'W', + monday_week: 'W', we: 'V', week: 'V' + }.freeze + KEY_UNITS ||= { + month: '%m', month_padded: '%m', month_unpadded: '%-m', month_blank: '%_m', month_name: '%B', + month_name_abbr: '%b', month_year: '%m %Y', month_padded_year: '%m %Y', day_iso: '%m-%d', + month_unpadded_year: '%-m %Y', month_blank_year: '%_m %Y', month_name_year: '%B %Y', + month_name_abbr_year: '%b %Y', weekday: '%d', weekday_padded: '%d', 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', sunday_week: '%U', monday_week: '%W', week_iso: '%V', week_year_iso: '%V-%G' + }.freeze - def count_days_since(time) - count_seconds_since(time) / DAY - end + def count_centuries_since(time) + count_seconds_since(time) / CENTURY + end - alias_method :count_days_until, :count_days_since + alias_method :count_centuries_until, :count_centuries_since - def count_decades_since(time) - count_seconds_since(time) / DECADE - end + def count_days_since(time) + count_seconds_since(time) / DAY + end - alias_method :count_decades_until, :count_decades_since + alias_method :count_days_until, :count_days_since - def count_hours_since(time) - count_seconds_since(time) / HOUR - end + def count_decades_since(time) + count_seconds_since(time) / DECADE + end - alias_method :count_hours_until, :count_hours_since + alias_method :count_decades_until, :count_decades_since - def count_milleniums_since(time) - count_seconds_since(time) / MILLENNIUM - end + def count_hours_since(time) + count_seconds_since(time) / HOUR + end - alias_method :count_milleniums_until, :count_milleniums_since + alias_method :count_hours_until, :count_hours_since - def count_minutes_since(time) - count_seconds_since(time) / MINUTE - end + def count_milleniums_since(time) + count_seconds_since(time) / MILLENNIUM + end - alias_method :count_minutes_until, :count_minutes_since + alias_method :count_milleniums_until, :count_milleniums_since - def count_seconds_since(time) - (to_time.to_f - time.to_time.to_f).abs - end + def count_minutes_since(time) + count_seconds_since(time) / MINUTE + end - alias_method :count_seconds_until, :count_seconds_since + alias_method :count_minutes_until, :count_minutes_since - def count_weeks_since(time) - count_seconds_since(time) / WEEK - end + def count_seconds_since(time) + (to_time.to_f - time.to_time.to_f).abs + end - alias_method :count_weeks_until, :count_weeks_since + alias_method :count_seconds_until, :count_seconds_since - def count_years_since(time) - count_seconds_since(time) / YEAR - end + def count_weeks_since(time) + count_seconds_since(time) / WEEK + end - alias_method :count_years_until, :count_years_since + alias_method :count_weeks_until, :count_weeks_since - 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 || ''}" + def count_years_since(time) + count_seconds_since(time) / YEAR end - strftime(string.join) - end + alias_method :count_years_until, :count_years_since - def to_format(key = :datetime_iso) - strftime(KEY_UNITS.fetch(key.to_sym)) - end + def format(string) + delimiters = string.scan(/\W+/) + formatters = string.scan(/[a-z0-9_]+/i) - alias_method :stamp, :to_format + string = formatters.map do |unit| + "%#{STRING_UNITS.fetch(unit.to_sym)}#{delimiters.shift || ''}" + end + strftime(string.join) + end + + def to_format(key = :datetime_iso) + strftime(KEY_UNITS.fetch(key.to_sym)) + end + + alias_method :stamp, :to_format + + end end -Date.include(ActiveObject::Date) if ActiveObject::Settings.config.autoload_date +Date.include(ActiveObject::Date) if ActiveObject.configuration.autoload_date