Class: Datetime::DatetimeComponent

Inherits:
ViewComponent::Base
  • Object
show all
Defined in:
lib/datetimecomponent.rb

Constant Summary collapse

FULL_DATETIME_ARGS =
{ null: '', short: '%a, %-d %b %y, %H:%M %Z', long: '%A, %-d %B %Y, %-l:%M %P %Z' }.freeze
DAY_ARGS =
{ null: '', numeric: '%-d' }.freeze
WEEKDAY_ARGS =
{ null: '', short: '%a', long: '%A'}.freeze
MONTH_ARGS =
{ null: '', short: '%b', long: '%B', numeric: '%-m' }.freeze
YEAR_ARGS =
{ null: '', short: '%-y', long: '%-Y' }.freeze
DISPLAY_TIME_ARGS =
{ null: '', h12: '%-l:%M', h12meridian: '%-l:%M %P', h24: '%H:%M' }.freeze

Instance Method Summary collapse

Constructor Details

#initialize(custom_datetime_format: '', full_datetime: :null, date_separator: '/', weekday: :null, day: :null, month: :null, year: :null, display_time: :null, display_timezone: false, display_zone_offset: false, time_zone: 'UTC') ⇒ DatetimeComponent

Returns a new instance of DatetimeComponent.



18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/datetimecomponent.rb', line 18

def initialize(custom_datetime_format: '', full_datetime: :null, date_separator: '/', weekday: :null,
               day: :null, month: :null, year: :null, display_time: :null, display_timezone: false,
               display_zone_offset: false, time_zone: 'UTC')
  super
  @_routes = nil
  @date_separator = date_separator
  @time_zone = TZInfo::Timezone.get(time_zone)
  @datetime_format = custom_datetime_format
  return unless @datetime_format.empty?
  
  @format_args = {}
  @format_args[:full_datetime] = FULL_DATETIME_ARGS[full_datetime]
  @format_args[:weekday] = WEEKDAY_ARGS[weekday]
  @format_args[:day] = DAY_ARGS[day]
  @format_args[:month] = MONTH_ARGS[month]
  @format_args[:year] = YEAR_ARGS[year]
  @format_args[:display_time] = DISPLAY_TIME_ARGS[display_time]
  @format_args[:display_timezone] = display_timezone ? '%Z' : ''
  @format_args[:zone_offset] = display_zone_offset ? 'UTC %:z' : ''
  @datetime_format = build_datetime_format
end