Class: NumbersInWords::ExceptionalNumbers
- Inherits:
-
Object
- Object
- NumbersInWords::ExceptionalNumbers
- Extended by:
- Forwardable
- Defined in:
- lib/numbers_in_words/exceptional_numbers.rb
Constant Summary collapse
- DEFINITIONS =
{ 0 => { number: 'zero', ordinal: 'zeroth' }, 1 => { number: 'one', ordinal: 'first' }, 2 => { number: 'two', ordinal: 'second', fraction: { singular: 'half', plural: 'halves' } }, 3 => { number: 'three', ordinal: 'third' }, 4 => { number: 'four', ordinal: 'fourth', fraction: { singular: 'quarter', plural: 'quarters' } }, 5 => { number: 'five', ordinal: 'fifth' }, 6 => { number: 'six' }, 7 => { number: 'seven' }, 8 => { number: 'eight', ordinal: 'eighth' }, 9 => { number: 'nine', ordinal: 'ninth' }, 10 => { number: 'ten' }, 11 => { number: 'eleven' }, 12 => { number: 'twelve', ordinal: 'twelfth' }, 13 => { number: 'thirteen' }, 14 => { number: 'fourteen' }, 15 => { number: 'fifteen' }, 16 => { number: 'sixteen' }, 17 => { number: 'seventeen' }, 18 => { number: 'eighteen' }, 19 => { number: 'nineteen' }, 20 => { number: 'twenty', ordinal: 'twentieth' }, 30 => { number: 'thirty', ordinal: 'thirtieth' }, 40 => { number: 'forty', ordinal: 'fortieth' }, 50 => { number: 'fifty', ordinal: 'fiftieth' }, 60 => { number: 'sixty', ordinal: 'sixtieth' }, 70 => { number: 'seventy', ordinal: 'seventieth' }, 80 => { number: 'eighty', ordinal: 'eightieth' }, 90 => { number: 'ninety', ordinal: 'ninetieth' } }.freeze
Instance Method Summary collapse
- #fraction(denominator: nil, numerator: nil, word: nil) ⇒ Object
- #fraction_lookup ⇒ Object
- #fraction_names ⇒ Object
- #lookup(number) ⇒ Object
- #lookup_fraction(words) ⇒ Object
- #to_h ⇒ Object
Instance Method Details
#fraction(denominator: nil, numerator: nil, word: nil) ⇒ Object
59 60 61 62 63 64 65 66 67 |
# File 'lib/numbers_in_words/exceptional_numbers.rb', line 59 def fraction(denominator: nil, numerator: nil, word: nil) raise unless denominator || word numerator ||= 1 denominator ||= NumbersInWords.in_numbers(word) Fraction.new(denominator: denominator, numerator: numerator, attributes: DEFINITIONS[denominator]) end |
#fraction_lookup ⇒ Object
51 52 53 |
# File 'lib/numbers_in_words/exceptional_numbers.rb', line 51 def fraction_lookup @fraction_lookup ||= generate_fraction_lookup end |
#fraction_names ⇒ Object
43 44 45 |
# File 'lib/numbers_in_words/exceptional_numbers.rb', line 43 def fraction_names @fraction_names ||= determine_fraction_names end |
#lookup(number) ⇒ Object
55 56 57 |
# File 'lib/numbers_in_words/exceptional_numbers.rb', line 55 def lookup(number) to_h[number] end |
#lookup_fraction(words) ⇒ Object
47 48 49 |
# File 'lib/numbers_in_words/exceptional_numbers.rb', line 47 def lookup_fraction(words) fraction_lookup[words] end |
#to_h ⇒ Object
69 70 71 72 73 |
# File 'lib/numbers_in_words/exceptional_numbers.rb', line 69 def to_h @to_h ||= DEFINITIONS.transform_values do |h| h[:number] end end |