Module: ICU::DurationFormatting

Defined in:
lib/ffi-icu/duration_formatting.rb

Defined Under Namespace

Classes: DurationFormatter

Constant Summary collapse

VALID_FIELDS =
[
  :years,
  :months,
  :weeks,
  :days,
  :hours,
  :minutes,
  :seconds,
  :milliseconds,
  :microseconds,
  :nanoseconds
].freeze
HMS_FIELDS =
[
  :hours,
  :minutes,
  :seconds,
  :milliseconds,
  :microseconds,
  :nanoseconds
].freeze
ROUNDABLE_FIELDS =
[
  :seconds,
  :milliseconds,
  :microseconds,
  :nanoseconds
].freeze
VALID_STYLES =
[:long, :short, :narrow, :digital].freeze
STYLES_TO_LIST_JOIN_FORMAT =
{
  :long => :wide,
  :short => :short,
  :narrow => :narrow,
  :digital => :narrow
}.freeze
UNIT_FORMAT_STRINGS =
{
  :years => 'measure-unit/duration-year',
  :months => 'measure-unit/duration-month',
  :weeks => 'measure-unit/duration-week',
  :days => 'measure-unit/duration-day',
  :hours => 'measure-unit/duration-hour',
  :minutes => 'measure-unit/duration-minute',
  :seconds => 'measure-unit/duration-second',
  :milliseconds => 'measure-unit/duration-millisecond',
  :microseconds => 'measure-unit/duration-microsecond',
  :nanoseconds => 'measure-unit/duration-nanosecond'
}.freeze
STYLES_TO_NUMBER_FORMAT_WIDTH =
{
  :long => 'unit-width-full-name',
  :short => 'unit-width-short',
  :narrow => 'unit-width-narrow',
  # digital for hours:minutes:seconds has some special casing.
  :digital => 'unit-width-narrow'
}.freeze

Class Method Summary collapse

Class Method Details

.format(fields, locale:, style: :long) ⇒ Object



66
67
68
# File 'lib/ffi-icu/duration_formatting.rb', line 66

def self.format(fields, locale:, style: :long)
  DurationFormatter.new(locale:, style:).format(fields)
end