Module: Codecal::Modulo

Included in:
Calc
Defined in:
lib/lib/modulo.rb

Constant Summary collapse

@@MODULO_NUMBER =

module 7

7
@@MODULO_WEIGHT =
[5,4,6,2,3,1,5,4,6,2,3,1]
@@SEVENTEEN_SYMBOL =

module 17 @@MODULO_NUMBER = 17 @@MODULO_WEIGHT = %w[01 06 02 12 04 07 08 14 16 11 15 05 13 10 09 03 01] module 11 @@MODULO_NUMBER = 11 @@MODULO_WEIGHT = %w[07 09 10 05 08 04 02 01 06 03 07 09 10 05 08 04 02 01] module 13 @@MODULO_NUMBER = 13 @@MODULO_WEIGHT = %w[3 8 4 2 1 7 10 5 9 11 12 6 3 8 4 2 1]

'0123456789abcdefg'

Instance Method Summary collapse

Instance Method Details

#simple_code_calculate(int_array) ⇒ Object



19
20
21
22
23
24
25
26
27
28
# File 'lib/lib/modulo.rb', line 19

def simple_code_calculate(int_array)
  code = int_array.reverse.each_with_index.inject(0) do |count, (i, index)| 
    count += i * ( index < @@MODULO_WEIGHT.size ? 
                    @@MODULO_WEIGHT.reverse[index + 1].to_i : 
                    ( index + 1 ).times.inject(1) { |c| c *= 3 } % @@MODULO_NUMBER
                  )
  end
  symbol = convert_to_symbol(code % @@MODULO_NUMBER)
  (int_array.join + symbol).to_i.to_s
end