brcobranca 6.2.1 → 6.2.2

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: fcdfeb86d0f6e325d51ad87e842128e8b3c1075f
4
- data.tar.gz: 60bd85312d7208e93c799cbce784491df01bed9e
3
+ metadata.gz: a92d1c50de0c69cad4e06c6d84ec8256c3b6c93d
4
+ data.tar.gz: 1db9126f344d868b745bb228d0e40edd473bd84a
5
5
  SHA512:
6
- metadata.gz: 5c289de69dee49ddb9fbfd030a105cec8c7b5b151d0e11bde0ec02aa9dddd70749c59b3c848a131d01e5bc572a8314d16c60123dab6762244fd907f102e3f773
7
- data.tar.gz: 2d4bf481a2b1379ca8a1b559660def201e347148137f15802621c14ce336d93a73a9441006f409e13214e71990c765519a69b872df1783dc32213b06e1e4482b
6
+ metadata.gz: f1d69f00039df6a0685af7a7615ebf01ad725a35ef824ac9b1a516a9098e5666bdaa3fb7dc706e8a31187259a55ec09fb244b4c96b2907ad89053e1aaaef1925
7
+ data.tar.gz: b33d3dafdf30613c89bd3ce2f8c1eabb68330f1f4875eb2ba3428c25e298e1727d426d52d7e041a4aa14a6184fc9d539653580ee0ad76ff1e33b9d7cf580d364
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- brcobranca (6.2.1)
4
+ brcobranca (6.2.2)
5
5
  activemodel (>= 3)
6
6
  parseline (~> 1.0.3)
7
7
  rghost (~> 0.9)
@@ -56,7 +56,7 @@ module Brcobranca
56
56
  end
57
57
 
58
58
  def nosso_numero_dv
59
- numero_dv_1 = numero_documento.modulo11(mapeamento: { 1 => 0, 11 => 0 })
59
+ numero_dv_1 = numero_documento.modulo11(mapeamento: { 10 => 0, 11 => 0 })
60
60
  numero_dv_2 = "#{numero_documento}#{numero_dv_1}".modulo11
61
61
 
62
62
  "#{numero_dv_1}#{numero_dv_2}"
@@ -93,8 +93,9 @@ module Brcobranca
93
93
  #
94
94
  def nosso_numero_dv
95
95
  "#{agencia}#{convenio.rjust(10, "0")}#{numero_documento}".modulo11(
96
+ reverse: false,
96
97
  multiplicador: [3, 1, 9, 7],
97
- mapeamento: { 1 => 0, 10 => 0, 11 => 0 }
98
+ mapeamento: { 10 => 0, 11 => 0 }
98
99
  ) { |t| 11 - (t % 11) }
99
100
  end
100
101
 
@@ -33,7 +33,7 @@ module Brcobranca
33
33
  options[:mapeamento] ||= {}
34
34
  options[:multiplicador] ||= [9, 8, 7, 6, 5, 4, 3, 2]
35
35
 
36
- total = multiplicador(options[:multiplicador])
36
+ total = multiplicador(fatores: options[:multiplicador], reverse: options[:reverse])
37
37
  valor = block_given? ? yield(total) : (total % 11)
38
38
 
39
39
  options[:mapeamento][valor] || valor
@@ -71,13 +71,16 @@ module Brcobranca
71
71
  # @param [Array]
72
72
  # @return [Integer]
73
73
  # @raise [ArgumentError] Caso não seja um número inteiro.
74
- def multiplicador(fatores, &_block)
74
+ def multiplicador(options = {}, &_block)
75
75
  fail ArgumentError, 'Número inválido' unless self.is_number?
76
+ fail ArgumentError, 'Fatores não podem estar em branco' unless options[:fatores]
76
77
 
77
78
  total = 0
78
79
  multiplicador_posicao = 0
80
+ fatores = options[:fatores]
81
+ numeros = options[:reverse].nil? ? to_s.split(//).reverse! : to_s.split(//)
79
82
 
80
- to_s.split(//).reverse!.each do |caracter|
83
+ numeros.each do |caracter|
81
84
  fator = fatores[multiplicador_posicao]
82
85
  total += block_given? ? yield(caracter, fator) : (caracter.to_i * fator)
83
86
  multiplicador_posicao = (multiplicador_posicao < (fatores.size - 1)) ? (multiplicador_posicao + 1) : 0
@@ -1,5 +1,5 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
 
3
3
  module Brcobranca
4
- VERSION = '6.2.1'
4
+ VERSION = '6.2.2'
5
5
  end
@@ -82,10 +82,50 @@ RSpec.describe Brcobranca::Boleto::Sicoob do #:nodoc:[all]
82
82
  valid_attributes[:numero_documento] = "2"
83
83
  boleto_novo = described_class.new(valid_attributes)
84
84
  expect(boleto_novo.nosso_numero_dv).to eql(4)
85
-
85
+
86
+ valid_attributes[:numero_documento] = "3"
87
+ boleto_novo = described_class.new(valid_attributes)
88
+ expect(boleto_novo.nosso_numero_dv).to eql(1)
89
+
90
+ valid_attributes[:numero_documento] = "4"
91
+ boleto_novo = described_class.new(valid_attributes)
92
+ expect(boleto_novo.nosso_numero_dv).to eql(9)
93
+
94
+ valid_attributes[:numero_documento] = "5"
95
+ boleto_novo = described_class.new(valid_attributes)
96
+ expect(boleto_novo.nosso_numero_dv).to eql(6)
97
+
98
+ valid_attributes[:numero_documento] = "6"
99
+ boleto_novo = described_class.new(valid_attributes)
100
+ expect(boleto_novo.nosso_numero_dv).to eql(3)
101
+
86
102
  valid_attributes[:numero_documento] = "7"
87
103
  boleto_novo = described_class.new(valid_attributes)
88
104
  expect(boleto_novo.nosso_numero_dv).to eql(0)
105
+
106
+ valid_attributes[:numero_documento] = "8"
107
+ boleto_novo = described_class.new(valid_attributes)
108
+ expect(boleto_novo.nosso_numero_dv).to eql(8)
109
+
110
+ valid_attributes[:numero_documento] = "9"
111
+ boleto_novo = described_class.new(valid_attributes)
112
+ expect(boleto_novo.nosso_numero_dv).to eql(5)
113
+
114
+ valid_attributes[:numero_documento] = "10"
115
+ boleto_novo = described_class.new(valid_attributes)
116
+ expect(boleto_novo.nosso_numero_dv).to eql(3)
117
+
118
+ valid_attributes[:numero_documento] = "11"
119
+ boleto_novo = described_class.new(valid_attributes)
120
+ expect(boleto_novo.nosso_numero_dv).to eql(0)
121
+
122
+ valid_attributes[:numero_documento] = "12"
123
+ boleto_novo = described_class.new(valid_attributes)
124
+ expect(boleto_novo.nosso_numero_dv).to eql(8)
125
+
126
+ valid_attributes[:numero_documento] = "13"
127
+ boleto_novo = described_class.new(valid_attributes)
128
+ expect(boleto_novo.nosso_numero_dv).to eql(5)
89
129
  end
90
130
 
91
131
 
@@ -24,19 +24,20 @@ RSpec.describe Brcobranca::Calculo do
24
24
  end
25
25
 
26
26
  it 'Multiplicador' do
27
- expect('85068014982'.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(255)
28
- expect('05009401448'.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(164)
29
- expect('12387987777700168'.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(460)
30
- expect('34230'.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(55)
31
- expect('258281'.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(118)
32
- expect('5444'.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to be_a_kind_of(Fixnum)
33
- expect('000000005444'.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to be_a_kind_of(Fixnum)
34
- expect(85_068_014_982.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(255)
35
- expect(5_009_401_448.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(164)
36
- expect(5444.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(61)
37
- expect(1_129_004_590.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to eql(162)
38
- expect(5444.multiplicador([2, 3, 4, 5, 6, 7, 8, 9])).to be_a_kind_of(Fixnum)
39
- expect { '2582fd81'.multiplicador([2, 3, 4, 5, 6, 7, 8, 9]) }.to raise_error(ArgumentError)
27
+ expect('85068014982'.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(255)
28
+ expect('05009401448'.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(164)
29
+ expect('12387987777700168'.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(460)
30
+ expect('34230'.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(55)
31
+ expect('258281'.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(118)
32
+ expect('5444'.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to be_a_kind_of(Fixnum)
33
+ expect('000000005444'.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to be_a_kind_of(Fixnum)
34
+ expect(85_068_014_982.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(255)
35
+ expect(5_009_401_448.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(164)
36
+ expect(5444.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(61)
37
+ expect(1_129_004_590.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to eql(162)
38
+ expect(5444.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9])).to be_a_kind_of(Fixnum)
39
+ expect { '2582fd81'.multiplicador(fatores: [2, 3, 4, 5, 6, 7, 8, 9]) }.to raise_error(ArgumentError)
40
+ expect { 5444.multiplicador }.to raise_error(ArgumentError)
40
41
  end
41
42
 
42
43
  describe 'módulo 11 de 9 até 2' do
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: brcobranca
3
3
  version: !ruby/object:Gem::Version
4
- version: 6.2.1
4
+ version: 6.2.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - Kivanio Barbosa
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-02-17 00:00:00.000000000 Z
11
+ date: 2016-02-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rghost