Class: BankingDataValidator::Validator

Inherits:
ActiveModel::Validator
  • Object
show all
Defined in:
lib/banking_data_validator/validator.rb

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Validator

Returns a new instance of Validator.



6
7
8
9
10
11
12
# File 'lib/banking_data_validator/validator.rb', line 6

def initialize(options = {})
  super
  @bank_number    = options.fetch(:bank_number, :bank_number)
  @branch_number  = options.fetch(:branch_number, :branch_number)
  @account_number = options.fetch(:account_number, :account_number)
  @account_digit  = options.fetch(:account_digit, :account_digit)
end

Instance Method Details

#validate(record) ⇒ Object



14
15
16
17
18
19
20
21
22
23
24
25
# File 'lib/banking_data_validator/validator.rb', line 14

def validate(record)
  bank_number    = "#{record.public_send(@bank_number)}"
  branch_number  = "#{record.public_send(@branch_number)}"
   = "#{record.public_send(@account_number)}"
    = "#{record.public_send(@account_digit)}"

  bank = Bank.build_class(bank_number)

  record.errors.add(@branch_number, :not_a_number) unless valid_number?(branch_number)
  record.errors.add(@account_number, :not_a_number) unless valid_number?()
  record.errors.add(@account_digit) unless bank.valid_account?(branch_number, , )
end