Module: Paisa
- Defined in:
- lib/paisa.rb,
lib/paisa/version.rb
Constant Summary collapse
- SYMBOL =
'₹'.freeze
- ONES =
{ 1 => 'one', 2 => 'two', 3 => 'three', 4 => 'four', 5 => 'five', 6 => 'six', 7 => 'seven', 8 => 'eight', 9 => 'nine', 0 => nil }.freeze
- TENS =
{ 1 => { 1 => 'eleven', 2 => 'twelve', 3 => 'thirteen', 4 => 'fourteen', 5 => 'fifteen', 6 => 'sixteen', 7 => 'seventeen', 8 => 'eighteen', 9 => 'nineteen', 0 => 'ten' }, 2 => tens_hash('twenty'), 3 => tens_hash('thirty'), 4 => tens_hash('forty'), 5 => tens_hash('fifty'), 6 => tens_hash('sixty'), 7 => tens_hash('seventy'), 8 => tens_hash('eighty'), 9 => tens_hash('ninety'), 0 => ONES }.freeze
- VERSION =
'0.3.0'.freeze
Class Method Summary collapse
- .format(paise, precision: 2) ⇒ Object
- .format_with_sym(paise, precision: 2) ⇒ Object
- .words(paise) ⇒ Object
Class Method Details
.format(paise, precision: 2) ⇒ Object
36 37 38 39 40 41 42 |
# File 'lib/paisa.rb', line 36 def self.format(paise, precision: 2) rupee_parts, paise_part = parse(paise) [ rupee_parts.join(',').rjust(1, '0'), paise_part.rjust(2, '0').slice(0, precision) ].reject(&:empty?).join('.') end |
.format_with_sym(paise, precision: 2) ⇒ Object
44 45 46 |
# File 'lib/paisa.rb', line 44 def self.format_with_sym(paise, precision: 2) [SYMBOL, format(paise, precision: precision)].join end |
.words(paise) ⇒ Object
48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 |
# File 'lib/paisa.rb', line 48 def self.words(paise) rupee_parts, paise_part = parse(paise) rupee_text_parts = rupee_parts.reverse.each_with_object([]) do |section, memo| label = ['', ' thousand', ' lakh', ' crore'][memo.size] memo << if section.to_i.zero? nil else [to_words(section), label].join end end text = [] text << [rupee_text_parts.to_a.compact.reverse.join(', '), 'rupees'].join(' ') unless rupee_text_parts.empty? text << [to_words(paise_part), 'paise'].join(' ') unless paise_part.to_i.zero? text.join(', ') end |