Module: UaEnv::Pluralization::FloatFormatting
- Included in:
- Object::Float
- Defined in:
- lib/uaenv/pluralizer/pluralizer.rb
Overview
Реалізує вивід прописом будь-якого об‘єкта, що реалізує Float
Instance Method Summary collapse
-
#propysom(gender = 2) ⇒ Object
Повертає суму прописом із врахуванням дробової частини.
- #propysom_items(gender = 1, *forms) ⇒ Object
Instance Method Details
#propysom(gender = 2) ⇒ Object
Повертає суму прописом із врахуванням дробової частини. Дробова частина закруглюється до мільйонної, або (якщо дробова частина закінчується нулями) до найближчої долі (500 тисячних закруглюється до 5 десятих). Додатковий аргумент - рід іменника (1 - чоловічий, 2 - жіночий, 3 - середній)
169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 |
# File 'lib/uaenv/pluralizer/pluralizer.rb', line 169 def propysom(gender = 2) raise "Це не число!" if self.nan? st = UaEnv::Pluralization::sum_string(self.to_i, gender, "ціла", "цілих", "цілих") remainder = self.to_s.match(/\.(\d+)/)[1] signs = remainder.to_s.size - 1 it = [["десята", "десятих"]] it << ["сота", "сотих"] it << ["тисячна", "тисячних"] it << ["десятитисячна", "десятитисячних"] it << ["стотисячна", "стотисячних"] it << ["мільйонна", "мільйонних"] it << ["десятиммільйонна", "десятимільйонних", "десятимільйонних"] it << ["стомільнна", "стомільйонних", "стомільйонних"] it << ["мільярдна", "мільярдних", "мільярдних"] it << ["десятимільярдна", "десятимільярдних", "десятимільярдних"] it << ["стомільярдна", "стомільярдних", "стомільярдних"] it << ["трильйонна", "трильйонних", "трильйонних"] while it[signs].nil? remainder = (remainderi/10).round signs = remainder.to_s.size - 1 end suf1, suf2, suf3 = it[signs][0], it[signs][1], it[signs][2] st + " " + UaEnv::Pluralization::sum_string(remainder.to_i, 2, suf1, suf2, suf2) end |
#propysom_items(gender = 1, *forms) ⇒ Object
200 201 202 203 204 205 206 |
# File 'lib/uaenv/pluralizer/pluralizer.rb', line 200 def propysom_items(gender=1, *forms) if self == self.to_i return self.to_i.propysom_items(gender, *forms) else self.propysom(gender) + " " + forms[1] end end |