br_documents 0.0.11 → 0.0.12

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: 805f4830ab28ec221eefcdc51b00fdfddf9bc3af
4
- data.tar.gz: 239d97d975b9dbc6c41f2520e1db31e6d8fde10b
3
+ metadata.gz: 09c9aff76a8e9f8c1174cd31046388cca186a799
4
+ data.tar.gz: b585193cc05100900597b13177920012f0c809b5
5
5
  SHA512:
6
- metadata.gz: 174bca0588609bb33086a8a53d86c00d2ceee75a01e704acde8e6baf656f73f9297255cb928b424327edc3619eb23e309796be5fe6bdc07692b7c4fab5c7e319
7
- data.tar.gz: 0f4f93da74605754556aac786771804ec641d03ee6120d993c6cbcc054574b3a22fcfea5971840b6f8cdcf518cc0a9cd9fed0a8a6ba4efbf39fdcdb96818651c
6
+ metadata.gz: c8e5f19464173dc1dffceedf46bc56fa08df5a9b245d2af487183e0e6b09afa0669760c0a22316b29bec8a44110ab527f7beaf03fb50e98162970c36183df638
7
+ data.tar.gz: 16f4ed6b454c4da58866dbb976309754c2b512427238df3b7c8d55344d837ab50a5e40a2860ea41c9f0fcf3c1adaa4241d1b3f2cfd6f0d8043cda1dcbea97777
@@ -16,24 +16,25 @@ module BrDocuments
16
16
  end
17
17
 
18
18
  def valid_format?
19
- valid_8_digits_format or valid_9_digits_format
19
+ valid_8_digits_format || valid_9_digits_format
20
20
  end
21
21
 
22
22
  def valid_9_digits_format
23
- regex = /^(\d{6}\-\d{2})$|^(\d{8})$/
24
- regex.match(@number).present?
23
+ regex_mask_1 = /^(\d{7}\-\d{2})$|^(\d{9})$/
24
+ regex_mask_2 = /^(\d{3}\.\d{3}\.\d{3})$|^(\d{9})$/
25
+ regex_mask_1.match(@number).present? || regex_mask_2.match(@number).present?
25
26
  end
26
27
 
27
28
  def valid_8_digits_format
28
- regex = /^(\d{7}\-\d{2})$|^(\d{9})$/
29
+ regex = /^(\d{6}\-\d{2})$|^(\d{8})$/
29
30
  regex.match(@number).present?
30
31
  end
31
32
 
32
33
  def valid_digital_check?
33
- @number.gsub!(/-/, "")
34
+ @number.gsub!(/[\.\/-]/, "")
34
35
 
35
36
  weight1 = make_weight(total_size)
36
- weight2 = make_weight(total_size-1)
37
+ weight2 = make_weight(total_size - 1)
37
38
 
38
39
  digital_check2 = digital_check_generator(@number, weight2)
39
40
  number = "#{@number[0, body_size]}#{digital_check2}"
@@ -50,7 +51,7 @@ module BrDocuments
50
51
  end
51
52
 
52
53
  def total_size
53
- @number.gsub(/-/, "").length
54
+ @number.gsub(/[\.\/-]/, "").length
54
55
  end
55
56
 
56
57
  def body_size
@@ -59,13 +60,26 @@ module BrDocuments
59
60
  end
60
61
 
61
62
  def digital_check_generator(number, weight)
62
- if @number[0].to_i <= 5 or @number[0].to_i == 8
63
+ if use_digital_check_mod10
63
64
  generate_digital_check_mod10(number, weight)
64
65
  else
65
66
  generate_digital_check(number, weight)
66
67
  end
67
68
  end
68
69
 
70
+ def use_digital_check_mod10
71
+ position = position_of_the_element_to_define_module
72
+ @number[position].to_i <= 5 || @number[position].to_i == 8
73
+ end
74
+
75
+ def position_of_the_element_to_define_module
76
+ if total_size == 8
77
+ 0
78
+ else
79
+ 1
80
+ end
81
+ end
82
+
69
83
  def generate_digital_check_mod10(values, weights)
70
84
  sum = reduce_weights(values, weights)
71
85
  mod = sum % 10
@@ -1,3 +1,3 @@
1
1
  module BrDocuments
2
- VERSION = "0.0.11"
2
+ VERSION = "0.0.12"
3
3
  end
data/spec/ie/ba_spec.rb CHANGED
@@ -42,7 +42,7 @@ RSpec.describe BrDocuments::IE::BA do
42
42
  end
43
43
 
44
44
  it "is valid with valid number" do
45
- ["12345663", "61234557"].each do |number|
45
+ ["123456-63", "61234557"].each do |number|
46
46
  ie = described_class.new(number)
47
47
  expect(ie).to be_valid
48
48
  end
@@ -56,11 +56,14 @@ RSpec.describe BrDocuments::IE::BA do
56
56
  end
57
57
 
58
58
  it "is valid with valid number" do
59
- ie = described_class.new("100000306")
60
- expect(ie).to be_valid
59
+ ["1000003-06", "066.486.527"].each do |number|
60
+ ie = described_class.new(number)
61
+ expect(ie).to be_valid
62
+ end
61
63
  end
62
64
  end
63
65
 
64
66
  include_examples "for to remove all masks", "1000003-06"
67
+ include_examples "for to remove all masks", "100.000.306"
65
68
  end
66
69
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: br_documents
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.11
4
+ version: 0.0.12
5
5
  platform: ruby
6
6
  authors:
7
7
  - ASSEINFO - Sistemas de Informação
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2015-07-07 00:00:00.000000000 Z
11
+ date: 2015-09-30 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: activemodel