class ChainedValidation::Rules::Rg

Public Class Methods

new(params) click to toggle source
# File lib/chained_validation/rules/rg.rb, line 4
def initialize(params)
  @object = params.fetch(:object)
end

Public Instance Methods

perform() click to toggle source
# File lib/chained_validation/rules/rg.rb, line 8
def perform
  ChainedValidation::Validation.new(rg: { object: @object, result: is_rg_valid? })
end

Private Instance Methods

is_rg_valid?() click to toggle source
# File lib/chained_validation/rules/rg.rb, line 14
def is_rg_valid?
  rg = @object.split("")
  base = 2 
  total = 0

  rg.first(8).each do |n| 
    total += n.to_i * base
    base+=1
  end
    
  vd = 11 - total % 11 
  return  (rg[rg.length - 1].to_i == vd)
end