Class: Worldwide::Cldr::DateFormatPattern::QuarterField

Inherits:
Field
  • Object
show all
Defined in:
lib/worldwide/cldr/date_format_pattern.rb

Instance Attribute Summary

Attributes inherited from Field

#pattern

Instance Method Summary collapse

Methods inherited from Field

from

Constructor Details

#initialize(pattern) ⇒ QuarterField

Returns a new instance of QuarterField.



120
121
122
123
# File 'lib/worldwide/cldr/date_format_pattern.rb', line 120

def initialize(pattern)
  super
  @format_type = pattern.downcase == pattern ? :stand_alone : :format
end

Instance Method Details

#format(date, locale: I18n.locale) ⇒ Object



125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
# File 'lib/worldwide/cldr/date_format_pattern.rb', line 125

def format(date, locale: I18n.locale)
  quarter_number = (date.month - 1) / 3 + 1

  case pattern.length
  when 1 # "Q" Quarter number (e.g., "1")
    quarter_number.to_s
  when 2 # "QQ" Quarter number, zero padded to 2 digits (e.g., "01")
    quarter_number.to_s.rjust(2, "0")
  when 3 # "QQQ" Quarter name, abbreviated (e.g., "Q1")
    Worldwide::Cldr.t("calendars.gregorian.quarters.#{format_type}.abbreviated.#{quarter_number}", locale: locale)
  when 4 # "QQQQ" Quarter name, wide (e.g., "1st quarter")
    Worldwide::Cldr.t("calendars.gregorian.quarters.#{format_type}.wide.#{quarter_number}", locale: locale)
  when 5 # "QQQQQ" Quarter name, narrow (e.g., "1")
    Worldwide::Cldr.t("calendars.gregorian.quarters.#{format_type}.narrow.#{quarter_number}", locale: locale)
  else
    raise ArgumentError, "Invalid token: #{pattern}"
  end
end