Class: Kabal::Language
Instance Method Summary
collapse
#fractional?, #natural?, #need_minus?, #number_is_google?, #number_is_thousands?
#fractional_part_name, #fractional_part_order, #number_name_with_zeros, #there_zeros_before_fractional_part?, #zeros_number
#create_number_name, #natural_number_name
Constructor Details
Returns a new instance of Language.
Instance Method Details
#convert(number) ⇒ Object
17
18
19
20
21
22
23
|
# File 'lib/kabal/languages/language.rb', line 17
def convert(number)
if no_supports? number
error number
else
convert_number number
end
end
|
#convert_number(number) ⇒ Object
25
26
27
28
29
30
31
32
|
# File 'lib/kabal/languages/language.rb', line 25
def convert_number(number)
@number_name = nil
if need_minus? number
join_with_spaces minus, number_words(-number)
else
number_words number
end
end
|
#count(number) ⇒ Object
88
89
90
|
# File 'lib/kabal/languages/language.rb', line 88
def count(number)
number / (10**number_order(number))
end
|
#dot ⇒ Object
80
81
82
|
# File 'lib/kabal/languages/language.rb', line 80
def dot
names[:dot]
end
|
#fractional_but_no_support_fractional?(number) ⇒ Boolean
100
101
102
|
# File 'lib/kabal/languages/language.rb', line 100
def fractional_but_no_support_fractional?(number)
fractional?(number) && !supports_fractional?
end
|
#join_with_spaces(*words) ⇒ Object
112
113
114
|
# File 'lib/kabal/languages/language.rb', line 112
def join_with_spaces(*words)
words.to_a.join space
end
|
#lang ⇒ Object
47
48
49
50
|
# File 'lib/kabal/languages/language.rb', line 47
def lang
languages = Kabal::Config::YamlLoader.yaml_object 'languages'
@lang = languages[self.to_s.split(':')[-2]]
end
|
#max_value ⇒ Object
64
65
66
|
# File 'lib/kabal/languages/language.rb', line 64
def max_value
eval @supports[:natural][:max]
end
|
#min_value ⇒ Object
60
61
62
|
# File 'lib/kabal/languages/language.rb', line 60
def min_value
eval @supports[:natural][:min]
end
|
#minus ⇒ Object
72
73
74
|
# File 'lib/kabal/languages/language.rb', line 72
def minus
names[:minus]
end
|
#names ⇒ Object
68
69
70
|
# File 'lib/kabal/languages/language.rb', line 68
def names
@names[lang]
end
|
#no_supports?(number) ⇒ Boolean
104
105
106
|
# File 'lib/kabal/languages/language.rb', line 104
def no_supports?(number)
fractional_but_no_support_fractional?(number) || number_is_out_of_the_range?(number)
end
|
#number_is_out_of_the_range?(number) ⇒ Boolean
96
97
98
|
# File 'lib/kabal/languages/language.rb', line 96
def number_is_out_of_the_range?(number)
number >= max_value || number <= min_value
end
|
#number_order(number) ⇒ Object
84
85
86
|
# File 'lib/kabal/languages/language.rb', line 84
def number_order(number)
((number.to_s.length - 1) / 3) * 3
end
|
#number_words(number) ⇒ Object
34
35
36
37
|
# File 'lib/kabal/languages/language.rb', line 34
def number_words(number)
return natural_number_name number.round if natural? number
fractional_number_name number if fractional? number
end
|
#space ⇒ Object
108
109
110
|
# File 'lib/kabal/languages/language.rb', line 108
def space
' '
end
|
#supports_fractional? ⇒ Boolean
92
93
94
|
# File 'lib/kabal/languages/language.rb', line 92
def supports_fractional?
@supports[:fractional]
end
|
#supports_natural? ⇒ Boolean
52
53
54
|
# File 'lib/kabal/languages/language.rb', line 52
def supports_natural?
@supports[:natural]
end
|
#supports_negative? ⇒ Boolean
56
57
58
|
# File 'lib/kabal/languages/language.rb', line 56
def supports_negative?
min_value < 0
end
|
#whole ⇒ Object
76
77
78
|
# File 'lib/kabal/languages/language.rb', line 76
def whole
names[:whole]
end
|