Class: Mod11

Inherits:
Object
  • Object
show all
Defined in:
lib/brid/mod11.rb

Instance Method Summary collapse

Constructor Details

#initialize(number, options = {}) ⇒ Mod11

Returns a new instance of Mod11.



2
3
4
5
6
7
8
# File 'lib/brid/mod11.rb', line 2

def initialize number, options = {}
  options = {:base => 2..11, :mod => 11}.merge options

  @number = number.to_s.scan(/\d/).join
  @base   = options[:base]
  @mod    = options[:mod]
end

Instance Method Details

#*(digits) ⇒ Object Also known as: >>



20
21
22
23
24
# File 'lib/brid/mod11.rb', line 20

def * digits
  digits.times.reduce(self) do |number, digit|
    number += Mod11.new(number, :base => @base, :mode => @mod).cdigi
  end
end

#+(digit) ⇒ Object Also known as: <<



28
29
30
# File 'lib/brid/mod11.rb', line 28

def + digit
  Mod11.new(@number += digit.to_s.scan(/\d/).join, :base => @base, :mode => @mod)
end

#==(other) ⇒ Object



38
39
40
# File 'lib/brid/mod11.rb', line 38

def == other
  self.to_s == other.to_s
end

#check_digitObject Also known as: cdigi



10
11
12
13
14
15
16
# File 'lib/brid/mod11.rb', line 10

def check_digit
  if block_given?
    yield sum, @mod
  else
    ((10 * sum) % @mod) % 10
  end
end

#to_sObject



34
35
36
# File 'lib/brid/mod11.rb', line 34

def to_s
  @number.to_s
end