Class: JapaneseNumbers::Parser
- Inherits:
-
Object
- Object
- JapaneseNumbers::Parser
- Defined in:
- lib/japanese_numbers/parser.rb
Constant Summary collapse
- DELIMITERS =
{ '万' => 10000, '億' => 100000000, '兆' => 1000000000000, '京' => 10000000000000000, }
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.parse(str) ⇒ Object
9 10 11 |
# File 'lib/japanese_numbers/parser.rb', line 9 def self.parse(str) JIntParser.new.parse(str) end |
Instance Method Details
#parse(str) ⇒ Object
13 14 15 16 17 18 19 |
# File 'lib/japanese_numbers/parser.rb', line 13 def parse(str) parts = split_to_parts(str) res = parts.inject(0) do |sum, part| sum + part[0].to_i * (DELIMITERS[part[1]] || 1) end res end |
#split_to_parts(str) ⇒ Object
21 22 23 24 25 26 27 28 29 30 |
# File 'lib/japanese_numbers/parser.rb', line 21 def split_to_parts(str) parts = [] loop do coefficient, unit, remains = str.partition(Regexp.union(DELIMITERS.keys)) parts.push([coefficient, unit]) str = remains break if str == "" end parts end |