class VerificadorBoletoBr::Slip::Bank::Validity
Attributes
digitable_line[RW]
errors[RW]
kind[RW]
Public Class Methods
new(cod)
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 11 def initialize(cod) @digitable_line = cod raise ArgumentError, 'Expected String' unless @digitable_line.class.eql?(String) raise ArgumentError, 'Invalid Digitable Line' unless clean_digitable_line.size == 47 @kind = :bank_slip end
Public Instance Methods
bank_code()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 23 def bank_code clean_digitable_line[0..2].to_i end
block_1_validity()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 43 def block_1_validity modulo10(clean_digitable_line[0..8]).eql?clean_digitable_line[9].to_i end
block_2_validity()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 47 def block_2_validity modulo10(clean_digitable_line[10..19]).eql?clean_digitable_line[20].to_i end
block_3_validity()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 51 def block_3_validity modulo10(clean_digitable_line[21..30]).eql?clean_digitable_line[31].to_i end
clean_digitable_line()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 19 def clean_digitable_line clean_masks(@digitable_line) end
currency_code()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 27 def currency_code clean_digitable_line[3].to_i end
due_date()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 68 def due_date begin bank_epoque(clean_digitable_line[33..36].to_i) rescue nil end end
global_validity()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 55 def global_validity str = "" str += clean_digitable_line[0..2] str += clean_digitable_line[3..3] str += clean_digitable_line[32..32] str += clean_digitable_line[33..36] str += clean_digitable_line[37..46] str += clean_digitable_line[4..8] str += clean_digitable_line[10..19] str += clean_digitable_line[21..30] modulo11(str[0..3] + str[5..-1]).eql?(verification_digit) end
grouped_digitable_line()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 84 def grouped_digitable_line [ { group: 0, valid: block_1_validity }, { group: 1, valid: block_2_validity }, { group: 2, valid: block_2_validity }, ] end
identification()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 105 def identification 'Boleto Bancário' end
segment()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 101 def segment 'Boleto Bancário' end
valid?()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 76 def valid? valid_without_global? && global_validity end
valid_without_global?()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 80 def valid_without_global? block_1_validity && block_2_validity && block_3_validity end
value()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 39 def value value_in_cents.to_f / 100 end
value_in_cents()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 35 def value_in_cents clean_digitable_line[37..-1].to_i end
verification_digit()
click to toggle source
# File lib/verificador_boleto_br/slip/bank/validity.rb, line 31 def verification_digit clean_digitable_line[32].to_i end