lib/humanize/locales/th.rb in humanize-2.1.2 vs lib/humanize/locales/th.rb in humanize-2.2.0

- old
+ new

@@ -1,24 +1,29 @@ require_relative 'constants/th' module Humanize class Th - def humanize(number) + def humanize(number, million_level = 1) + if number >= 10_000_000 + number, remainder = number.divmod(1_000_000) + million_parts = humanize(number, million_level + 1) + sub_million_parts = million_humanize(remainder) + sub_million_parts << " " << MILLION * million_level << million_parts.reverse + else + million_humanize(number) + end + end + + def million_humanize(number) number_groups = [100, 10] number_grouping = number_groups.shift iteration = 0 parts = [] - use_and = false until number.zero? number, remainder = number.divmod(number_grouping) unless remainder.zero? - if iteration.zero? && remainder < (number_grouping / 10) - use_and = true - else - add_grouping(parts, use_and, iteration) - end - + add_grouping(parts, iteration) unless iteration.zero? && remainder < (number_grouping / 10) parts << SUB_ONE_GROUPING[remainder] end number_grouping = number_groups.shift unless number_groups.empty? iteration += 1 @@ -27,19 +32,13 @@ parts end private - def conjunction(parts, use_and) - return '' if parts.empty? && !use_and - - ' และ' - end - - def add_grouping(parts, use_and, iteration) + def add_grouping(parts, iteration) grouping = LOTS[iteration] return unless grouping - parts << "#{grouping}#{conjunction(parts, use_and)}" + parts << grouping end end end