Class: Kabal::Language
- Inherits:
-
Object
- Object
- Kabal::Language
- Defined in:
- lib/kabal/languages/language.rb
Instance Method Summary collapse
- #check_supports_for(number) ⇒ Object
- #convert(number) ⇒ Object
- #count(number) ⇒ Object
- #fractional?(number) ⇒ Boolean
-
#initialize ⇒ Language
constructor
A new instance of Language.
- #lang ⇒ Object
- #max_value ⇒ Object
-
#min_value ⇒ Object
TODO реализовать метод supports_negative?.
- #minus ⇒ Object
- #names ⇒ Object
- #natural?(number) ⇒ Boolean
- #number_is_google?(number) ⇒ Boolean
- #number_is_thousands?(number) ⇒ Boolean
- #number_order(number) ⇒ Object
- #supports_fractional? ⇒ Boolean
- #supports_natural? ⇒ Boolean
- #whole ⇒ Object
Constructor Details
#initialize ⇒ Language
Returns a new instance of Language.
3 4 5 6 |
# File 'lib/kabal/languages/language.rb', line 3 def initialize @names = Kabal::Config::YamlLoader.yaml_object "languages/#{lang}" @supports = Kabal::Config::YamlLoader.yaml_object("support")["support"][lang] end |
Instance Method Details
#check_supports_for(number) ⇒ Object
73 74 75 76 77 78 79 80 |
# File 'lib/kabal/languages/language.rb', line 73 def check_supports_for(number) if number % 1 != 0 and not supports_fractional? raise NoSupportForFractionalNumberOnCurrentLanguages. end if number >= max_value or number <= min_value raise NumberOutRangeError. end end |
#convert(number) ⇒ Object
8 9 10 11 |
# File 'lib/kabal/languages/language.rb', line 8 def convert(number) check_supports_for number convert_number number end |
#count(number) ⇒ Object
69 70 71 |
# File 'lib/kabal/languages/language.rb', line 69 def count(number) number / (10 ** number_order(number)) end |
#fractional?(number) ⇒ Boolean
48 49 50 |
# File 'lib/kabal/languages/language.rb', line 48 def fractional?(number) number % 1 != 0 end |
#lang ⇒ Object
13 14 15 16 |
# File 'lib/kabal/languages/language.rb', line 13 def lang languages = Kabal::Config::YamlLoader.yaml_object "languages" @lang = languages[self.to_s.split(":")[-2]] end |
#max_value ⇒ Object
28 29 30 |
# File 'lib/kabal/languages/language.rb', line 28 def max_value eval @supports["natural"]["max"] end |
#min_value ⇒ Object
TODO реализовать метод supports_negative?
24 25 26 |
# File 'lib/kabal/languages/language.rb', line 24 def min_value eval @supports["natural"]["min"] end |
#minus ⇒ Object
40 41 42 |
# File 'lib/kabal/languages/language.rb', line 40 def minus names["minus"] end |
#names ⇒ Object
36 37 38 |
# File 'lib/kabal/languages/language.rb', line 36 def names @names[lang] end |
#natural?(number) ⇒ Boolean
53 54 55 |
# File 'lib/kabal/languages/language.rb', line 53 def natural?(number) number % 1 == 0 end |
#number_is_google?(number) ⇒ Boolean
61 62 63 |
# File 'lib/kabal/languages/language.rb', line 61 def number_is_google?(number) count(number) == 10 and number_order(number) == 99 end |
#number_is_thousands?(number) ⇒ Boolean
57 58 59 |
# File 'lib/kabal/languages/language.rb', line 57 def number_is_thousands?(number) number_order(number) < 3 end |
#number_order(number) ⇒ Object
65 66 67 |
# File 'lib/kabal/languages/language.rb', line 65 def number_order(number) ((number.to_s.length - 1) / 3) * 3 end |
#supports_fractional? ⇒ Boolean
32 33 34 |
# File 'lib/kabal/languages/language.rb', line 32 def supports_fractional? @supports["fractional"] end |
#supports_natural? ⇒ Boolean
18 19 20 |
# File 'lib/kabal/languages/language.rb', line 18 def supports_natural? @supports["natural"] end |
#whole ⇒ Object
44 45 46 |
# File 'lib/kabal/languages/language.rb', line 44 def whole names["whole"] end |