brcobranca 6.2.1 → 6.2.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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