class Typero::OibType
Public Instance Methods
db_schema()
click to toggle source
# File lib/typero/type/types/oib_type.rb, line 10 def db_schema [:string, { limit: 11 }] end
set()
click to toggle source
# File lib/typero/type/types/oib_type.rb, line 4 def set value do |data| check?(data) ? data.to_i : error_for(:not_an_oib_error) end end
Private Instance Methods
check?(oib)
click to toggle source
# File lib/typero/type/types/oib_type.rb, line 19 def check? oib oib = oib.to_s return false unless oib.match(/^[0-9]{11}$/) control_sum = (0..9).inject(10) do |middle, position| middle += oib.at(position).to_i middle %= 10 middle = 10 if middle == 0 middle *= 2 middle %= 11 end control_sum = 11 - control_sum control_sum = 0 if control_sum == 10 return control_sum == oib.at(10).to_i end