class Kabal::Language
Public Class Methods
new()
click to toggle source
# File lib/kabal/languages/language.rb, line 11 def initialize @names = Kabal::Config::YamlLoader.yaml_object "languages/#{lang}" support_file = Kabal::Config::YamlLoader.yaml_object('support') @supports = support_file[:support][lang] end
Public Instance Methods
convert(number)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/kabal/languages/language.rb, line 88 def count(number) number / (10**number_order(number)) end
dot()
click to toggle source
# File lib/kabal/languages/language.rb, line 80 def dot names[:dot] end
error(number)
click to toggle source
# File lib/kabal/languages/language.rb, line 39 def error(number) if number_is_out_of_the_range? number Kabal::Errors::NumberOutRangeError.message elsif (!supports_fractional?) && (number % 1 != 0) Kabal::Errors::NoSupportForFractionalNumberOnCurrentLanguages.message end end
fractional_but_no_support_fractional?(number)
click to toggle source
# File lib/kabal/languages/language.rb, line 100 def fractional_but_no_support_fractional?(number) fractional?(number) && !supports_fractional? end
join_with_spaces(*words)
click to toggle source
# File lib/kabal/languages/language.rb, line 112 def join_with_spaces(*words) words.to_a.join space end
lang()
click to toggle source
# 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()
click to toggle source
# File lib/kabal/languages/language.rb, line 64 def max_value eval @supports[:natural][:max] end
min_value()
click to toggle source
# File lib/kabal/languages/language.rb, line 60 def min_value eval @supports[:natural][:min] end
minus()
click to toggle source
# File lib/kabal/languages/language.rb, line 72 def minus names[:minus] end
names()
click to toggle source
# File lib/kabal/languages/language.rb, line 68 def names @names[lang] end
no_supports?(number)
click to toggle source
# 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)
click to toggle source
# 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)
click to toggle source
# File lib/kabal/languages/language.rb, line 84 def number_order(number) ((number.to_s.length - 1) / 3) * 3 end
number_words(number)
click to toggle source
# 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()
click to toggle source
# File lib/kabal/languages/language.rb, line 108 def space ' ' end
supports_fractional?()
click to toggle source
# File lib/kabal/languages/language.rb, line 92 def supports_fractional? @supports[:fractional] end
supports_natural?()
click to toggle source
# File lib/kabal/languages/language.rb, line 52 def supports_natural? @supports[:natural] end
supports_negative?()
click to toggle source
# File lib/kabal/languages/language.rb, line 56 def supports_negative? min_value < 0 end
whole()
click to toggle source
# File lib/kabal/languages/language.rb, line 76 def whole names[:whole] end