Class: TwitterCldr::Formatters::Numbers::Fraction

Inherits:
Object
  • Object
show all
Defined in:
lib/plurimath/formatter/twitter_cldr_rb/fraction.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(token, symbols = {}) ⇒ Fraction

Returns a new instance of Fraction.



9
10
11
12
13
14
15
16
# File 'lib/plurimath/formatter/twitter_cldr_rb/fraction.rb', line 9

def initialize(token, symbols = {})
  @format  = token ? token.value.split('.').pop : ''
  @decimal = symbols[:decimal] || '.'
  @separator = symbols[:fraction_group] || " "
  @group = symbols[:fraction_group_digits] || 3
  @digit_count = symbols[:digit_count] || nil
  @precision = @format.length
end

Instance Attribute Details

#decimalObject (readonly)

Returns the value of attribute decimal.



7
8
9
# File 'lib/plurimath/formatter/twitter_cldr_rb/fraction.rb', line 7

def decimal
  @decimal
end

#format(options) ⇒ Object (readonly)

Returns the value of attribute format.



7
8
9
# File 'lib/plurimath/formatter/twitter_cldr_rb/fraction.rb', line 7

def format
  @format
end

#groupObject (readonly)

Returns the value of attribute group.



7
8
9
# File 'lib/plurimath/formatter/twitter_cldr_rb/fraction.rb', line 7

def group
  @group
end

#precisionObject (readonly)

Returns the value of attribute precision.



7
8
9
# File 'lib/plurimath/formatter/twitter_cldr_rb/fraction.rb', line 7

def precision
  @precision
end

#separatorObject (readonly)

Returns the value of attribute separator.



7
8
9
# File 'lib/plurimath/formatter/twitter_cldr_rb/fraction.rb', line 7

def separator
  @separator
end

Instance Method Details

#apply(fraction, options = {}, int = "") ⇒ Object



18
19
20
21
22
23
24
25
# File 'lib/plurimath/formatter/twitter_cldr_rb/fraction.rb', line 18

def apply(fraction, options = {}, int = "")
  precision = options[:precision] || self.precision
  return "" unless precision > 0

  number = interpolate(format(options), fraction, :left)
  number = digit_count_format(int, fraction, number) if @digit_count
  decimal + change_format(precision, number)
end