class GeezifyRb::Geezify
This class contains the processing tools to convert arabic numbers to Geeze.
Constants
- ERROR_MSG1
- ERROR_MSG2
- ERROR_MSG_CONSTRUCTOR
Public Class Methods
geezify(num)
click to toggle source
# File lib/geezify-rb/geezify.rb, line 18 def self.geezify(num) new(num).geezify end
new(num)
click to toggle source
# File lib/geezify-rb/geezify.rb, line 12 def initialize(num) raise ArgumentError, ERROR_MSG_CONSTRUCTOR unless num.integer? @num = num end
Public Instance Methods
geezify()
click to toggle source
# File lib/geezify-rb/geezify.rb, line 22 def geezify clean_up_uncessary_1s geezify_with_1s(@num) end
Private Instance Methods
clean_up_uncessary_1s(num)
click to toggle source
# File lib/geezify-rb/geezify.rb, line 47 def clean_up_uncessary_1s(num) num.gsub('፼፩፻', '፼፻').gsub(/^፩፼/, '፼').gsub(/^(፩፻)/, '፻') || num end
geezify_2digit(num)
click to toggle source
# File lib/geezify-rb/geezify.rb, line 28 def geezify_2digit(num) oneth_array = Array['', '፩', '፪', '፫', '፬', '፭', '፮', '፯', '፰', '፱'] tenth_array = Array['', '፲', '፳', '፴', '፵', '፶', '፷', '፸', '፹', '፺'] raise ArgumentError, ERROR_MSG1 unless num.integer? && num.between?(0, 99) tenth_array[(num / 10)] + oneth_array[num % 10] end
geezify_4digit(num)
click to toggle source
# File lib/geezify-rb/geezify.rb, line 37 def geezify_4digit(num) raise ArgumentError, ERROR_MSG unless num.integer? && num < 10_000 num.digits(100).reverse.map { |x| geezify_2digit(x) }.join('፻') end
geezify_with_1s(num)
click to toggle source
# File lib/geezify-rb/geezify.rb, line 43 def geezify_with_1s(num) num.digits(10_000).reverse.map { |x| geezify_4digit(x) }.join('፼') end