Class: Worldwide::Cldr::DateFormatPattern::QuarterField
- Defined in:
- lib/worldwide/cldr/date_format_pattern.rb
Instance Attribute Summary
Attributes inherited from Field
Instance Method Summary collapse
- #format(date, locale: I18n.locale) ⇒ Object
-
#initialize(pattern) ⇒ QuarterField
constructor
A new instance of QuarterField.
Methods inherited from Field
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 |