Class: Indianize
- Inherits:
-
Object
- Object
- Indianize
- Defined in:
- lib/indianize.rb
Constant Summary collapse
- REFERENCE_HASH =
{ 10000000 => "crore", 100000 => "lakh", 1000 => "thousand", 100 => "hundred", 90 => "ninety", 80 => "eighty", 70 => "seventy", 60 => "sixty", 50 => "fifty", 40 => "forty", 30 => "thirty", 20 => "twenty", 19=>"nineteen", 18=>"eighteen", 17=>"seventeen", 16=>"sixteen", 15=>"fifteen", 14=>"fourteen", 13=>"thirteen", 12=>"twelve", 11 => "eleven", 10 => "ten", 9 => "nine", 8 => "eight", 7 => "seven", 6 => "six", 5 => "five", 4 => "four", 3 => "three", 2 => "two", 1 => "one" }.freeze
- STATES_ARRAY =
["Andaman and Nicobar Islands", "Andhra Pradesh", "Arunachal Pradesh", "Assam", "Bihar", "Chandigarh", "Chhattisgarh", "Dadra and Nagar Haveli", "Daman & Diu", "Delhi", "Goa", "Gujarat", "Haryana", "Himachal Pradesh", "Jammu & Kashmir", "Jharkhand", "Karnataka", "Kerala", "Lakshadweep", "Madhya Pradesh", "Maharashtra", "Manipur", "Meghalaya", "Mizoram", "Nagaland", "Odisha", "Puducherry", "Punjab", "Rajasthan", "Sikkim", "Tamil Nadu", "Telangana", "Tripura", "Uttar Pradesh", "Uttarakhand", "West Bengal"].freeze
Class Method Summary collapse
- .convert_to_words(value) ⇒ Object
- .state_search(query) ⇒ Object
- .states ⇒ Object
- .to_number(value) ⇒ Object
- .to_number_without_symbol(value) ⇒ Object
- .to_words(value) ⇒ Object
Class Method Details
.convert_to_words(value) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 |
# File 'lib/indianize.rb', line 66 def self.convert_to_words(value) return "" if value.zero? REFERENCE_HASH.each do |number, word| if value.to_s.length == 1 && value/number > 0 return ("#{word}").capitalize.strip elsif value < 100 && value/number > 0 return ("#{word} " + convert_to_words(value%number)).capitalize.strip elsif value/number > 0 return (convert_to_words(value/number) + " #{word} " + convert_to_words(value%number)).capitalize.strip end end end |
.state_search(query) ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/indianize.rb', line 84 def self.state_search(query) result = [] states.each do |x| result << x if x.downcase.include?(query) end return result end |
.states ⇒ Object
80 81 82 |
# File 'lib/indianize.rb', line 80 def self.states STATES_ARRAY end |
.to_number(value) ⇒ Object
45 46 47 |
# File 'lib/indianize.rb', line 45 def self.to_number(value) "₹ " + value.round.to_s.gsub(/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/, "\\1,") end |
.to_number_without_symbol(value) ⇒ Object
49 50 51 |
# File 'lib/indianize.rb', line 49 def self.to_number_without_symbol(value) value.round.to_s.gsub(/(\d+?)(?=(\d\d)+(\d)(?!\d))(\.\d+)?/, "\\1,") end |
.to_words(value) ⇒ Object
53 54 55 56 57 58 59 60 61 62 |
# File 'lib/indianize.rb', line 53 def self.to_words(value) unless (value.is_a?(Integer) || (value.is_a?(Float) && value.finite?)) && value >=0 raise ArgumentError, "Supports only non-negative integers and floats." end value = value.round return "Zero" if value.zero? convert_to_words(value) end |