Module: UaEnv::Pluralization::FloatFormatting

Included in:
Object::Float
Defined in:
lib/uaenv/pluralizer/pluralizer.rb

Overview

Реалізує вивід прописом будь-якого об‘єкта, що реалізує Float

Instance Method Summary collapse

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