Class: GomaShika::LocaleGenerator::DateTimeGenerator

Inherits:
Object
  • Object
show all
Defined in:
lib/goma_shika/locale_generator/date_time_generator.rb

Instance Method Summary collapse

Constructor Details

#initialize(locale) ⇒ DateTimeGenerator

Returns a new instance of DateTimeGenerator.



4
5
6
# File 'lib/goma_shika/locale_generator/date_time_generator.rb', line 4

def initialize(locale)
  @locale = locale
end

Instance Method Details

#compound_date_time_format(pattern_style, date_style, time_style) ⇒ Object



24
25
26
27
28
29
30
31
32
33
34
# File 'lib/goma_shika/locale_generator/date_time_generator.rb', line 24

def compound_date_time_format(pattern_style, date_style, time_style)
  data_reader = TwitterCldr::DataReaders::DateTimeDataReader.new(@locale, pattern_style)
  pattern = data_reader.pattern

  date_reader = TwitterCldr::DataReaders::DateDataReader.new(@locale, date_style)

  time_reader = TwitterCldr::DataReaders::TimeDataReader.new(@locale, time_style)

  compound_pattern = pattern.gsub("{{date}}", date_reader.pattern).gsub("{{time}}", time_reader.pattern)
  cldr_to_strftime(compound_pattern)
end

#date_format(date_style) ⇒ Object



36
37
38
39
# File 'lib/goma_shika/locale_generator/date_time_generator.rb', line 36

def date_format(date_style)
  data_reader = TwitterCldr::DataReaders::DateDataReader.new(@locale, date_style)
  cldr_to_strftime(data_reader.pattern)
end

#generate(format_descriptor) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
# File 'lib/goma_shika/locale_generator/date_time_generator.rb', line 8

def generate(format_descriptor)
  if format_descriptor.key?(:date_time)
    compound_date_time_format(
      format_descriptor[:date_time][:pattern_style],
      format_descriptor[:date_time][:date_style],
      format_descriptor[:date_time][:time_style]
    )
  elsif format_descriptor.key?(:date)
    date_format(format_descriptor[:date])
  elsif format_descriptor.key?(:time)
    time_format(format_descriptor[:time])
  else
    raise ArgumentError, "Invalid format descriptor"
  end
end

#time_format(time_style) ⇒ Object



41
42
43
44
# File 'lib/goma_shika/locale_generator/date_time_generator.rb', line 41

def time_format(time_style)
  data_reader = TwitterCldr::DataReaders::TimeDataReader.new(@locale, time_style)
  cldr_to_strftime(data_reader.pattern)
end