Sha256: 85042ba161f593be3ace54d9a345dfe5d9519b2f5fd03c380363c5d6402bd9ae

Contents?: true

Size: 909 Bytes

Versions: 1

Compression:

Stored size: 909 Bytes

Contents

require 'active_model/validator'

module KontoAPI
  class BankAccountValidator < ActiveModel::Validator

    def validate(record)
      account_number  = record.send(:"#{options[:account_number_field]}")
      bank_code       = record.send(:"#{options[:bank_code_field]}")
      return true unless record.send(:"#{options[:account_number_field]}_changed?") || record.send(:"#{options[:bank_code_field]}_changed?")
      return true if options[:allow_nil] && (account_number.nil? || bank_code.nil?)
      record.errors.add(:"#{options[:account_number_field]}", :invalid) unless KontoAPI::valid?( :ktn => account_number, :blz => bank_code )
    rescue Timeout::Error => ex
      case options[:on_timeout]
      when :fail
        record.errors.add(:"#{options[:account_number_field]}", :timeout)
      when :ignore
        # nop
      when :retry
        raise 'not implemented yet'
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
kontoapi-rails-0.2.4 lib/kontoapi-rails/validators/bank_account_validator.rb