br_danfe 0.7.1 → 0.7.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: ba0be0232ce7c32209b3efcf97e13e9ad7a8826d
4
- data.tar.gz: d12d50a599043e9cc1297ffba185ab19554775b4
3
+ metadata.gz: bb741f1d1066620c0aa847c09fb4fa72b200c99e
4
+ data.tar.gz: a264f79ee360582e6ad7190fc8efebc14a630e8f
5
5
  SHA512:
6
- metadata.gz: b2eb27d0c88590cb39c4124c52f874f16f52a2700e4f2ee0adfc549293c88714ad19d04d02b269afa954ba7a8d4b0d31bd49b1d6283c1e1ee28e36b9e1a987ed
7
- data.tar.gz: a103bf1225b7e26d541fece0bd3c7b47a8ffbe33a1549242bca9e472a45ebec01753aea3982cce03b943cf7e49a1aab87640423a77586761b5a39663a60a431f
6
+ metadata.gz: b9a9e0920ff13af6e4e9b9de29cb6a8db6da16b666a038551d51df1854805813bc6793569cf12a7a7172d9d30d2830b25df9bfff69d0aa4670e273dd30222e5d
7
+ data.tar.gz: cf94b429c376ab34b878409c257351025a935070a16b53f0fb5901d2e7516ac1317c7062c1758a9d0a7f66c5a7da19ea3a3c625c90056f55d64395f7d01c8744
data/Gemfile.lock CHANGED
@@ -1,7 +1,7 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- br_danfe (0.7.1)
4
+ br_danfe (0.7.2)
5
5
  barby (= 0.5.1)
6
6
  br_documents (>= 0.0.8)
7
7
  i18n
@@ -87,4 +87,4 @@ RUBY VERSION
87
87
  ruby 2.2.5p319
88
88
 
89
89
  BUNDLED WITH
90
- 1.15.3
90
+ 1.16.1
data/README.md CHANGED
@@ -15,6 +15,7 @@ XML version | Supported?
15
15
  1.00 | no
16
16
  2.00 | yes
17
17
  3.10 | yes
18
+ 4.00 | yes
18
19
 
19
20
  ## Installing
20
21
 
@@ -49,13 +50,7 @@ XML version | Supported?
49
50
  * `logo_path`: Path of sender's logo image.
50
51
  * `logo_dimensions`: Dimensions of the logo. Ex: logo_dimensions = { width: 100, height: 90 }
51
52
 
52
- XML version | Supported?
53
- ----------- | ----------
54
- 1.00 | no
55
- 2.00 | yes
56
- 3.10 | yes
57
-
58
- ### CC-e - _Carta de Correção Eletrônica_
53
+ ### CC-e - Carta de Correção Eletrônica
59
54
 
60
55
  #### Usage in Ruby
61
56
 
@@ -103,18 +98,18 @@ You needs to install all necessaries dependencies using bunder like above:
103
98
 
104
99
  You can run all RSpec specs using:
105
100
 
106
- $ rspec
101
+ $ bundle exec rspec
107
102
 
108
103
 
109
104
  ## About tests
110
105
 
111
- > If you modify something that caused general visual changes at output pdfs, so you have to rebuild the fixtures pdf files.
106
+ > If you modify something that caused general visual changes at output pdf's, so you have to rebuild the fixtures pdf files.
112
107
  >
113
- > You can do this simply deleting the fixture pdf file. The `have_same_content_of` matcher will recreate the fixture in the next time you run the `rspec` command.
108
+ > You can do this simply deleting the fixture pdf file. The `have_same_content_of` matcher will recreate the fixture in the next time you run the `bundle exec rspec` command.
114
109
 
115
110
  ### Code coverage
116
111
 
117
- Code coverage is available through of SimpleCov. Just run `rspec` and open the coverage report in your browser.
112
+ Code coverage is available through of SimpleCov. Just run `bundle exec rspec` and open the coverage report in your browser.
118
113
 
119
114
  ### Fake data for generating new fixtures
120
115
 
@@ -183,9 +178,9 @@ You can generate new data using [4devs generators](http://www.4devs.com.br).
183
178
 
184
179
  You can build using one of the above tasks
185
180
 
186
- $ rake build # Build br_danfe-X.X.X.gem into the pkg directory
187
- $ rake install # Build and install br_danfe-X.X.X.gem into system gems
188
- $ rake release # Create tag vX.X.X and build and push br_danfe-X.X.X.gem to Rubygems
181
+ $ bundle exec rake build # Build br_danfe-X.X.X.gem into the pkg directory
182
+ $ bundle exec rake install # Build and install br_danfe-X.X.X.gem into system gems
183
+ $ bundle exec rake release # Create tag vX.X.X, build and push br_danfe-X.X.X.gem to Rubygems
189
184
 
190
185
  ## Contributing
191
186
 
@@ -7,6 +7,7 @@ module BrDanfe
7
7
  def initialize(pdf, xml)
8
8
  @pdf = pdf
9
9
  @xml = xml
10
+ @xml_version_is_310_or_newer = @xml.version_is_310_or_newer?
10
11
 
11
12
  @ltitle = Y - 0.42
12
13
  @l1 = Y
@@ -21,10 +22,11 @@ module BrDanfe
21
22
  render_line2
22
23
  render_line3
23
24
 
24
- render_dates_block
25
+ @xml_version_is_310_or_newer ? render_dates_for_nfe_310_or_newer : render_dates_for_older_nfes
25
26
  end
26
27
 
27
28
  private
29
+
28
30
  def render_line1
29
31
  @pdf.lbox LINE_HEIGHT, 11.82, 0.75, @l1, @xml, "dest/xNome"
30
32
  render_cnpj_cpf
@@ -72,25 +74,22 @@ module BrDanfe
72
74
  @pdf.lie LINE_HEIGHT, 4.38, 12.56, @l3, @xml, "enderDest/UF", "dest/IE"
73
75
  end
74
76
 
75
- def render_dates_block
77
+ def phone
78
+ Phone.format(@xml["enderDest/fone"])
79
+ end
76
80
 
77
- if @xml.version_310?
78
- dEmi = "ide/dhEmi"
79
- dSaiEnt = "ide/dhSaiEnt"
80
- hSaiEnt = "ide/dhSaiEnt"
81
- else
82
- dEmi = "ide/dEmi"
83
- dSaiEnt = "ide/dSaiEnt"
84
- hSaiEnt = "ide/hSaiEnt"
85
- end
81
+ def render_dates_for_nfe_310_or_newer
82
+ render_dates "ide/dhEmi", "ide/dhSaiEnt", "ide/dhSaiEnt"
83
+ end
86
84
 
87
- @pdf.ldate LINE_HEIGHT, 2.92, 17.40, @l1, "ide.dEmi", @xml[dEmi], { align: :right }
88
- @pdf.ldate LINE_HEIGHT, 2.92, 17.40, @l2, "ide.dSaiEnt", @xml[dSaiEnt], { align: :right }
89
- @pdf.ltime LINE_HEIGHT, 2.92, 17.40, @l3, "ide.hSaiEnt", @xml[hSaiEnt], { align: :right }
85
+ def render_dates(emitted_at_date_and_hour, exited_at_date, exited_at_hour)
86
+ @pdf.ldate LINE_HEIGHT, 2.92, 17.40, @l1, "ide.dEmi", @xml[emitted_at_date_and_hour], { align: :right }
87
+ @pdf.ldate LINE_HEIGHT, 2.92, 17.40, @l2, "ide.dSaiEnt", @xml[exited_at_date], { align: :right }
88
+ @pdf.ltime LINE_HEIGHT, 2.92, 17.40, @l3, "ide.hSaiEnt", @xml[exited_at_hour], { align: :right }
90
89
  end
91
90
 
92
- def phone
93
- Phone.format(@xml["enderDest/fone"])
91
+ def render_dates_for_older_nfes
92
+ render_dates "ide/dEmi", "ide/dSaiEnt", "ide/hSaiEnt"
94
93
  end
95
94
  end
96
95
  end
@@ -30,8 +30,8 @@ module BrDanfe
30
30
  result
31
31
  end
32
32
 
33
- def version_310?
34
- @xml.css("infNFe").attr("versao").to_s == "3.10"
33
+ def version_is_310_or_newer?
34
+ @xml.css("infNFe").attr("versao").to_s.to_f >= 3.10
35
35
  end
36
36
  end
37
37
  end
@@ -1,3 +1,3 @@
1
1
  module BrDanfe
2
- VERSION = "0.7.1"
2
+ VERSION = "0.7.2".freeze
3
3
  end
@@ -0,0 +1,271 @@
1
+ %PDF-1.3
2
+ %����
3
+ 1 0 obj
4
+ << /Creator <feff0050007200610077006e>
5
+ /Producer <feff0050007200610077006e>
6
+ >>
7
+ endobj
8
+ 2 0 obj
9
+ << /Type /Catalog
10
+ /Pages 3 0 R
11
+ >>
12
+ endobj
13
+ 3 0 obj
14
+ << /Type /Pages
15
+ /Count 1
16
+ /Kids [5 0 R]
17
+ >>
18
+ endobj
19
+ 4 0 obj
20
+ << /Length 2451
21
+ >>
22
+ stream
23
+ q
24
+ 0.3 w
25
+
26
+ BT
27
+ 21.2598 596.8667 Td
28
+ /F2.0 8 Tf
29
+ [<44455354494e> 20 <41> 95 <54> 90 <c152494f202f2052454d4554454e5445>] TJ
30
+ ET
31
+
32
+ 21.2598 571.748 335.0551 22.6772 re
33
+ S
34
+
35
+ BT
36
+ 23.2598 588.3272 Td
37
+ /F1.0 6 Tf
38
+ [<4e4f4d452f52415ac3> 55 <4f20534f4349414c>] TJ
39
+ ET
40
+
41
+
42
+ BT
43
+ 23.2598 574.5952 Td
44
+ /F1.0 10 Tf
45
+ [<5363686e656964657220456c6563747269632042726173696c204c746461>] TJ
46
+ ET
47
+
48
+ 356.315 571.748 123.874 22.6772 re
49
+ S
50
+
51
+ BT
52
+ 358.315 588.3272 Td
53
+ /F1.0 6 Tf
54
+ [<434e504a2f435046>] TJ
55
+ ET
56
+
57
+
58
+ BT
59
+ 358.315 574.5952 Td
60
+ /F1.0 10 Tf
61
+ [<38322e3734332e3238372f303030382d3830>] TJ
62
+ ET
63
+
64
+ 21.2598 549.0709 273.8268 22.6772 re
65
+ S
66
+
67
+ BT
68
+ 23.2598 565.65 Td
69
+ /F1.0 6 Tf
70
+ [<454e44455245c74f>] TJ
71
+ ET
72
+
73
+
74
+ BT
75
+ 23.2598 551.918 Td
76
+ /F1.0 10 Tf
77
+ [<41> 74 <7620646120536175646164652031313235202d2053616c612030312065203032>] TJ
78
+ ET
79
+
80
+ 295.0866 549.0709 122.7402 22.6772 re
81
+ S
82
+
83
+ BT
84
+ 297.0866 565.65 Td
85
+ /F1.0 6 Tf
86
+ [<42> 35 <41495252> 40 <4f>] TJ
87
+ ET
88
+
89
+
90
+ BT
91
+ 297.0866 551.918 Td
92
+ /F1.0 10 Tf
93
+ [<46727574616c>] TJ
94
+ ET
95
+
96
+ 417.8268 549.0709 62.3622 22.6772 re
97
+ S
98
+
99
+ BT
100
+ 419.8268 565.65 Td
101
+ /F1.0 6 Tf
102
+ [<434550>] TJ
103
+ ET
104
+
105
+
106
+ BT
107
+ 419.8268 551.918 Td
108
+ /F1.0 10 Tf
109
+ [<31332e3137312d333230>] TJ
110
+ ET
111
+
112
+ 21.2598 526.3937 187.3701 22.6772 re
113
+ S
114
+
115
+ BT
116
+ 23.2598 542.9729 Td
117
+ /F1.0 6 Tf
118
+ [<4d554e4943cd50494f>] TJ
119
+ ET
120
+
121
+
122
+ BT
123
+ 23.2598 529.2409 Td
124
+ /F1.0 10 Tf
125
+ [<53554d415245>] TJ
126
+ ET
127
+
128
+ 208.6299 526.3937 115.0866 22.6772 re
129
+ S
130
+
131
+ BT
132
+ 210.6299 542.9729 Td
133
+ /F1.0 6 Tf
134
+ [<464f4e452f46> 74 <4158>] TJ
135
+ ET
136
+
137
+
138
+ BT
139
+ 210.6299 529.2409 Td
140
+ /F1.0 10 Tf
141
+ [<2831392920323130342d36333030>] TJ
142
+ ET
143
+
144
+ 323.7165 526.3937 32.315 22.6772 re
145
+ S
146
+
147
+ BT
148
+ 325.7165 542.9729 Td
149
+ /F1.0 6 Tf
150
+ [<5546>] TJ
151
+ ET
152
+
153
+
154
+ BT
155
+ 325.7165 529.2409 Td
156
+ /F1.0 10 Tf
157
+ [<5350>] TJ
158
+ ET
159
+
160
+ 356.0315 526.3937 124.1575 22.6772 re
161
+ S
162
+
163
+ BT
164
+ 358.0315 542.9729 Td
165
+ /F1.0 6 Tf
166
+ [<494e53435249c7c3> 55 <4f20455354> 93 <414455> 40 <414c>] TJ
167
+ ET
168
+
169
+
170
+ BT
171
+ 358.0315 529.2409 Td
172
+ /F1.0 10 Tf
173
+ [<3637312e3030382e3337352e313130>] TJ
174
+ ET
175
+
176
+ 493.2283 571.748 82.7717 22.6772 re
177
+ S
178
+
179
+ BT
180
+ 495.2283 588.3272 Td
181
+ /F1.0 6 Tf
182
+ [<44> 40 <41> 111 <54> 93 <412044> 40 <4120454d495353c3> 55 <4f>] TJ
183
+ ET
184
+
185
+
186
+ BT
187
+ 528.44 574.5952 Td
188
+ /F1.0 10 Tf
189
+ [<33302f30372f32303138>] TJ
190
+ ET
191
+
192
+ 493.2283 549.0709 82.7717 22.6772 re
193
+ S
194
+
195
+ BT
196
+ 495.2283 565.65 Td
197
+ /F1.0 6 Tf
198
+ [<44> 40 <41> 111 <54> 93 <412044> 40 <4120454e54524144> 40 <412f5341cd44> 40 <41>] TJ
199
+ ET
200
+
201
+
202
+ BT
203
+ 528.44 551.918 Td
204
+ /F1.0 10 Tf
205
+ [<33302f30372f32303138>] TJ
206
+ ET
207
+
208
+ 493.2283 526.3937 82.7717 22.6772 re
209
+ S
210
+
211
+ BT
212
+ 495.2283 542.9729 Td
213
+ /F1.0 6 Tf
214
+ [<484f524120444520454e54524144> 40 <412f5341cd44> 40 <41>] TJ
215
+ ET
216
+
217
+
218
+ BT
219
+ 538.44 529.2409 Td
220
+ /F1.0 10 Tf
221
+ [<31343a33323a3435>] TJ
222
+ ET
223
+
224
+ Q
225
+
226
+ endstream
227
+ endobj
228
+ 5 0 obj
229
+ << /Type /Page
230
+ /Parent 3 0 R
231
+ /MediaBox [0 0 595.28 841.89]
232
+ /Contents 4 0 R
233
+ /Resources << /ProcSet [/PDF /Text /ImageB /ImageC /ImageI]
234
+ /Font << /F2.0 6 0 R
235
+ /F1.0 7 0 R
236
+ >>
237
+ >>
238
+ >>
239
+ endobj
240
+ 6 0 obj
241
+ << /Type /Font
242
+ /Subtype /Type1
243
+ /BaseFont /Times-Bold
244
+ /Encoding /WinAnsiEncoding
245
+ >>
246
+ endobj
247
+ 7 0 obj
248
+ << /Type /Font
249
+ /Subtype /Type1
250
+ /BaseFont /Times-Roman
251
+ /Encoding /WinAnsiEncoding
252
+ >>
253
+ endobj
254
+ xref
255
+ 0 8
256
+ 0000000000 65535 f
257
+ 0000000015 00000 n
258
+ 0000000109 00000 n
259
+ 0000000158 00000 n
260
+ 0000000215 00000 n
261
+ 0000002718 00000 n
262
+ 0000002910 00000 n
263
+ 0000003008 00000 n
264
+ trailer
265
+ << /Size 8
266
+ /Root 2 0 R
267
+ /Info 1 0 R
268
+ >>
269
+ startxref
270
+ 3107
271
+ %%EOF
@@ -1,8 +1,7 @@
1
1
  require "spec_helper"
2
2
 
3
3
  describe BrDanfe::DanfeLib::Dest do
4
- let(:base_dir) { "./spec/fixtures/nfe/lib/" }
5
- let(:output_pdf) { "#{base_dir}output.pdf" }
4
+ let(:path_of_expected_pdf) { "./spec/fixtures/nfe/lib/output.pdf" }
6
5
 
7
6
  let(:pdf) { BrDanfe::DanfeLib::Document.new }
8
7
  let(:xml) { BrDanfe::DanfeLib::XML.new(xml_as_string) }
@@ -11,8 +10,8 @@ describe BrDanfe::DanfeLib::Dest do
11
10
 
12
11
  describe "#render" do
13
12
  before do
13
+ File.delete(path_of_expected_pdf) if File.exist?(path_of_expected_pdf)
14
14
  subject.render
15
- File.delete(output_pdf) if File.exist?(output_pdf)
16
15
  end
17
16
 
18
17
  context "when nf-e's version is 2.00" do
@@ -49,11 +48,11 @@ describe BrDanfe::DanfeLib::Dest do
49
48
  end
50
49
 
51
50
  it "renders xml to the pdf" do
52
- expect(File.exist?(output_pdf)).to be_falsey
51
+ expect(File.exist?(path_of_expected_pdf)).to eql false
53
52
 
54
- pdf.render_file output_pdf
53
+ pdf.render_file path_of_expected_pdf
55
54
 
56
- expect("#{base_dir}dest#render-v2.00.pdf").to have_same_content_of file: output_pdf
55
+ expect("./spec/fixtures/nfe/lib/dest#render-v2.00.pdf").to have_same_content_of file: path_of_expected_pdf
57
56
  end
58
57
  end
59
58
 
@@ -90,11 +89,52 @@ describe BrDanfe::DanfeLib::Dest do
90
89
  end
91
90
 
92
91
  it "renders xml to the pdf" do
93
- expect(File.exist?(output_pdf)).to be_falsey
92
+ expect(File.exist?(path_of_expected_pdf)).to eql false
94
93
 
95
- pdf.render_file output_pdf
94
+ pdf.render_file path_of_expected_pdf
96
95
 
97
- expect("#{base_dir}dest#render-v3.10.pdf").to have_same_content_of file: output_pdf
96
+ expect("./spec/fixtures/nfe/lib/dest#render-v3.10.pdf").to have_same_content_of file: path_of_expected_pdf
97
+ end
98
+ end
99
+
100
+ context "when nf-e's version is 4.00" do
101
+ let(:xml_as_string) do
102
+ <<-eos
103
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
104
+ <infNFe Id="NFe25111012345678901234550020000134151000134151" versao="4.00">
105
+ <ide>
106
+ <dhEmi>2018-07-30T13:30:59+00:00</dhEmi>
107
+ <dhSaiEnt>2018-07-30T14:32:45-03:00</dhSaiEnt>
108
+ </ide>
109
+ <dest>
110
+ <CNPJ>82743287000880</CNPJ>
111
+ <xNome>Schneider Electric Brasil Ltda</xNome>
112
+ <enderDest>
113
+ <xLgr>Av da Saudade</xLgr>
114
+ <nro>1125</nro>
115
+ <xBairro>Frutal</xBairro>
116
+ <xCpl>Sala 01 e 02</xCpl>
117
+ <cMun>3552403</cMun>
118
+ <xMun>SUMARE</xMun>
119
+ <UF>SP</UF>
120
+ <CEP>13171320</CEP>
121
+ <cPais>1058</cPais>
122
+ <xPais>BRASIL</xPais>
123
+ <fone>1921046300</fone>
124
+ </enderDest>
125
+ <IE>671008375110</IE>
126
+ </dest>
127
+ </infNFe>
128
+ </NFe>
129
+ eos
130
+ end
131
+
132
+ it "renders xml to the pdf" do
133
+ expect(File.exist?(path_of_expected_pdf)).to eql false
134
+
135
+ pdf.render_file path_of_expected_pdf
136
+
137
+ expect("./spec/fixtures/nfe/lib/dest#render-v4.00.pdf").to have_same_content_of file: path_of_expected_pdf
98
138
  end
99
139
  end
100
140
 
@@ -112,11 +152,11 @@ describe BrDanfe::DanfeLib::Dest do
112
152
  end
113
153
 
114
154
  it "renders xml to the pdf" do
115
- expect(File.exist?(output_pdf)).to be_falsey
155
+ expect(File.exist?(path_of_expected_pdf)).to eql false
116
156
 
117
- pdf.render_file output_pdf
157
+ pdf.render_file path_of_expected_pdf
118
158
 
119
- expect("#{base_dir}dest#render-with_cnpj.pdf").to have_same_content_of file: output_pdf
159
+ expect("./spec/fixtures/nfe/lib/dest#render-with_cnpj.pdf").to have_same_content_of file: path_of_expected_pdf
120
160
  end
121
161
  end
122
162
 
@@ -134,11 +174,11 @@ describe BrDanfe::DanfeLib::Dest do
134
174
  end
135
175
 
136
176
  it "renders xml to the pdf" do
137
- expect(File.exist?(output_pdf)).to be_falsey
177
+ expect(File.exist?(path_of_expected_pdf)).to eql false
138
178
 
139
- pdf.render_file output_pdf
179
+ pdf.render_file path_of_expected_pdf
140
180
 
141
- expect("#{base_dir}dest#render-with_cpf.pdf").to have_same_content_of file: output_pdf
181
+ expect("./spec/fixtures/nfe/lib/dest#render-with_cpf.pdf").to have_same_content_of file: path_of_expected_pdf
142
182
  end
143
183
  end
144
184
 
@@ -159,11 +199,11 @@ describe BrDanfe::DanfeLib::Dest do
159
199
  end
160
200
 
161
201
  it "renders xml to the pdf" do
162
- expect(File.exist?(output_pdf)).to be_falsey
202
+ expect(File.exist?(path_of_expected_pdf)).to eql false
163
203
 
164
- pdf.render_file output_pdf
204
+ pdf.render_file path_of_expected_pdf
165
205
 
166
- expect("#{base_dir}dest#render-with_ie.pdf").to have_same_content_of file: output_pdf
206
+ expect("./spec/fixtures/nfe/lib/dest#render-with_ie.pdf").to have_same_content_of file: path_of_expected_pdf
167
207
  end
168
208
  end
169
209
 
@@ -199,11 +239,12 @@ describe BrDanfe::DanfeLib::Dest do
199
239
  end
200
240
 
201
241
  it "renders xml to the pdf" do
202
- expect(File.exist?(output_pdf)).to be_falsey
242
+ expect(File.exist?(path_of_expected_pdf)).to eql false
203
243
 
204
- pdf.render_file output_pdf
244
+ pdf.render_file path_of_expected_pdf
205
245
 
206
- expect("#{base_dir}dest#render-without-address-complement.pdf").to have_same_content_of file: output_pdf
246
+ expect("./spec/fixtures/nfe/lib/dest#render-without-address-complement.pdf")
247
+ .to have_same_content_of file: path_of_expected_pdf
207
248
  end
208
249
  end
209
250
 
@@ -239,12 +280,13 @@ describe BrDanfe::DanfeLib::Dest do
239
280
  eos
240
281
  end
241
282
 
242
- it "it renders xml to pdf trimming the address of after 63 characters" do
243
- expect(File.exist?(output_pdf)).to be_falsey
283
+ it "renders xml to pdf discarding the address of after 63 characters" do
284
+ expect(File.exist?(path_of_expected_pdf)).to eql false
244
285
 
245
- pdf.render_file output_pdf
286
+ pdf.render_file path_of_expected_pdf
246
287
 
247
- expect("#{base_dir}dest#render-with-address-bigger.pdf").to have_same_content_of file: output_pdf
288
+ expect("./spec/fixtures/nfe/lib/dest#render-with-address-bigger.pdf")
289
+ .to have_same_content_of file: path_of_expected_pdf
248
290
  end
249
291
  end
250
292
  end
@@ -3,8 +3,8 @@ require "spec_helper"
3
3
  describe BrDanfe::DanfeLib::XML do
4
4
  subject { BrDanfe::DanfeLib::XML.new(xml_as_string) }
5
5
 
6
- describe "#version_310?" do
7
- describe "when xml's version is 3.10" do
6
+ describe "#version_is_310_or_newer?" do
7
+ describe "when xml's version is equal 3.10" do
8
8
  let(:xml_as_string) do
9
9
  <<-eos
10
10
  <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
@@ -14,12 +14,27 @@ describe BrDanfe::DanfeLib::XML do
14
14
  eos
15
15
  end
16
16
 
17
- it "is true" do
18
- expect(subject.version_310?).to be_truthy
17
+ it "returns true" do
18
+ expect(subject.version_is_310_or_newer?).to eql true
19
19
  end
20
20
  end
21
21
 
22
- describe "when xml's version isn't 3.10" do
22
+ describe "when xml's version is greather 3.10" do
23
+ let(:xml_as_string) do
24
+ <<-eos
25
+ <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
26
+ <infNFe versao="4.00" Id="NFe35150162013294000143550010000000011000000017">
27
+ </infNFe>
28
+ </NFe>
29
+ eos
30
+ end
31
+
32
+ it "returns true" do
33
+ expect(subject.version_is_310_or_newer?).to eql true
34
+ end
35
+ end
36
+
37
+ describe "when xml's version is minor that 3.10" do
23
38
  let(:xml_as_string) do
24
39
  <<-eos
25
40
  <NFe xmlns="http://www.portalfiscal.inf.br/nfe">
@@ -29,8 +44,8 @@ describe BrDanfe::DanfeLib::XML do
29
44
  eos
30
45
  end
31
46
 
32
- it "is false" do
33
- expect(subject.version_310?).to be_falsey
47
+ it "returns false" do
48
+ expect(subject.version_is_310_or_newer?).to eql false
34
49
  end
35
50
  end
36
51
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: br_danfe
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.7.1
4
+ version: 0.7.2
5
5
  platform: ruby
6
6
  authors:
7
7
  - ASSEINFO
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2017-09-28 00:00:00.000000000 Z
11
+ date: 2018-07-31 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: nokogiri
@@ -220,6 +220,7 @@ files:
220
220
  - spec/fixtures/logo.png
221
221
  - spec/fixtures/nfe/lib/dest#render-v2.00.pdf
222
222
  - spec/fixtures/nfe/lib/dest#render-v3.10.pdf
223
+ - spec/fixtures/nfe/lib/dest#render-v4.00.pdf
223
224
  - spec/fixtures/nfe/lib/dest#render-with-address-bigger.pdf
224
225
  - spec/fixtures/nfe/lib/dest#render-with_cnpj.pdf
225
226
  - spec/fixtures/nfe/lib/dest#render-with_cpf.pdf
@@ -336,7 +337,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
336
337
  version: '0'
337
338
  requirements: []
338
339
  rubyforge_project:
339
- rubygems_version: 2.4.8
340
+ rubygems_version: 2.4.5.1
340
341
  signing_key:
341
342
  specification_version: 4
342
343
  summary: DANFE pdf generator for Brazilian invoices.
@@ -361,6 +362,7 @@ test_files:
361
362
  - spec/fixtures/logo.png
362
363
  - spec/fixtures/nfe/lib/dest#render-v2.00.pdf
363
364
  - spec/fixtures/nfe/lib/dest#render-v3.10.pdf
365
+ - spec/fixtures/nfe/lib/dest#render-v4.00.pdf
364
366
  - spec/fixtures/nfe/lib/dest#render-with-address-bigger.pdf
365
367
  - spec/fixtures/nfe/lib/dest#render-with_cnpj.pdf
366
368
  - spec/fixtures/nfe/lib/dest#render-with_cpf.pdf