br_invoices_pdf 0.1.5.alpha.7 → 0.1.5.alpha.10

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: ccb15f25be1a035a5d0c977b44620ba0de93085c
4
- data.tar.gz: 3a2d44ec2611281ef3be5ef153438e2ff598df0a
3
+ metadata.gz: e60b13d124206032481d35bba049029bc2a7608a
4
+ data.tar.gz: 60f33f0d85ee2ac193e4c607c1f04366e4819715
5
5
  SHA512:
6
- metadata.gz: c61f2392e7309bd109741645a9dd60a8c7eef7cb0d7475a4c77aa4450bd3194185aa4564d1feec66c136871fb6d49d245c98e2316a2668d9e3d3dc7b64071f89
7
- data.tar.gz: 84bb490d507346e1c46403cf46cb6de0507d268accea9636d46a404555fb75f3947341ab188e32b25437d061255922cfc07b5ac13cf724dd244643bfb32e7f70
6
+ metadata.gz: 3b3f59820cb77078dcd30c2025ad547bd5c657d1d538e0b5aa5ab6b7dc1cfb91e5536e9e33504cb17215bbde435367d2ce445762873dd7341b6b3fad1f49f8dc
7
+ data.tar.gz: 62062b04d4df73a04c5e088ade33b92962c4f2541f2968a1863d2b29e8d5fa55d9a6a6079dc5ba7a064c78564a7c69c33a73513acaf99aecfc5d711b40d56a2a
data/.gitignore CHANGED
@@ -1,2 +1,4 @@
1
1
  *.gem
2
+ *.pdf
2
3
  Gemfile.lock
4
+ coverage
@@ -10,6 +10,12 @@ Metrics/ClassLength:
10
10
  Metrics/MethodLength:
11
11
  Max: 15
12
12
 
13
+ Layout/IndentArray:
14
+ Enabled: false
15
+
16
+ Layout/IndentHash:
17
+ Enabled: false
18
+
13
19
  AllCops:
14
20
  Exclude:
15
21
  - 'spec/factories/*.rb'
@@ -3,8 +3,20 @@
3
3
  ## CHANGELOG
4
4
 
5
5
  ### Unreleased
6
+ - [Modificado] Atualizando versões das dependências
7
+ - [Adicionado] Estrutura de Generator/Parser/Renderer
6
8
 
9
+ ### 0.1.5 [2017-05-29]
10
+ - [Adicionado] Docs
11
+ - [Adicionado] Integração contínua
12
+ - [Adicionado] Estrutura inicial do projeto
7
13
 
8
14
  ## Informações adicionais
9
15
  - Todas as mudanças notáveis neste projeto serão documentadas neste arquivo.
10
16
  - Este projeto adere a [Semantic Versioning](http://semver.org/) e às guidelines [Keep-a-Changelog](https://github.com/olivierlacan/keep-a-changelog).
17
+ - [Adicionado] Para novas funcionalidades
18
+ - [Modificado] Para mudanças nas funcionalidades existentes.
19
+ - [Deprecado] Para funcionalidades que serão removidas no futuro.
20
+ - [Removido] Para funcionalidades removidas.
21
+ - [Corrigido] Para quaisquer correções de bugs.
22
+ - [Segurança] Para correções de vulnerabilidades.
@@ -1,4 +1,6 @@
1
- require "bundler/setup"
2
- require "br_invoices_pdf"
3
- require "irb"
1
+ #!/usr/bin/env ruby
2
+
3
+ require 'bundler/setup'
4
+ require 'br_invoices_pdf'
5
+ require 'irb'
4
6
  IRB.start
@@ -6,12 +6,8 @@ require 'br_invoices_pdf/version'
6
6
 
7
7
  Gem::Specification.new do |spec|
8
8
  spec.name = 'br_invoices_pdf'
9
- spec.version = BrInvoicesPdf::VERSION
10
- if ENV['SEMAPHORE'] && ENV['PRE_RELEASE']
11
- spec.version = "#{BrInvoicesPdf::VERSION}.alpha.#{ENV['SEMAPHORE_DEPLOY_NUMBER']}"
12
- else
13
- spec.version = BrInvoicesPdf::VERSION
14
- end
9
+ pre_release = ENV['SEMAPHORE'] && ENV['PRE_RELEASE']
10
+ spec.version = BrInvoicesPdf::VERSION + (pre_release ? ".alpha.#{ENV['SEMAPHORE_DEPLOY_NUMBER']}" : '')
15
11
  spec.authors = ['Thiago Ribeiro', 'Gabriel Teles']
16
12
  spec.email = ['thiago@pdvend.com.br', 'gabriel@pdvend.com.br']
17
13
 
@@ -30,9 +26,10 @@ Gem::Specification.new do |spec|
30
26
  spec.add_dependency 'ox', '~> 2.5.0'
31
27
 
32
28
  spec.add_development_dependency 'bundler', '~> 1.13'
33
- spec.add_development_dependency 'rake', '~> 10.0'
29
+ spec.add_development_dependency 'rake', '~> 12.0'
34
30
  spec.add_development_dependency 'rspec', '~> 3.0'
35
31
  spec.add_development_dependency 'simplecov', '~> 0.14'
36
32
  spec.add_development_dependency 'coveralls'
37
-
33
+ spec.add_development_dependency 'rubocop'
34
+ spec.add_development_dependency 'reek'
38
35
  end
@@ -1,4 +1,28 @@
1
+ require 'ox'
2
+ require 'prawn'
3
+
1
4
  require 'br_invoices_pdf/version'
5
+ require 'br_invoices_pdf/generator'
6
+ require 'br_invoices_pdf/errors/invalid_document_type'
2
7
 
3
8
  module BrInvoicesPdf
9
+ @generators = {}
10
+
11
+ module_function
12
+
13
+ def generate(type, xml, options = {})
14
+ generator = @generators[type]
15
+ raise(Errors::InvalidDocumentType, type) unless generator
16
+ generator.generate(xml, options)
17
+ end
18
+
19
+ def register(type, renderer, parser)
20
+ @generators[type.to_sym] = Generator.new(renderer, parser)
21
+ end
22
+
23
+ def supported_document_types
24
+ @generators.keys
25
+ end
4
26
  end
27
+
28
+ require 'br_invoices_pdf/cfe'
@@ -0,0 +1,8 @@
1
+ require 'br_invoices_pdf/cfe/parser'
2
+ require 'br_invoices_pdf/cfe/renderer'
3
+
4
+ module BrInvoicesPdf
5
+ module Cfe
6
+ BrInvoicesPdf.register(:cfe, Cfe::Renderer, Cfe::Parser)
7
+ end
8
+ end
@@ -0,0 +1,26 @@
1
+ module BrInvoicesPdf
2
+ module Cfe
3
+ module Parser
4
+ module_function
5
+
6
+ # atributos
7
+ # company_name -> emit,xNome
8
+ # trading_name -> emit,xFant
9
+ # company_address -> emit,enderEmit
10
+ # city -> emit,enderEmit
11
+ # company_state -> ?
12
+ # company_zipcode -> emit,enderEmit,CEP
13
+ # cnpj -> ide,Cnpj
14
+ # IE (numero do estado) -> emit,IE
15
+ # cfe_number -> ide,NFCE
16
+ # cpf -> ide,NFCE
17
+
18
+ def parse(_xml)
19
+ # Retornar uma hash com todos os atributos necessarios
20
+ {
21
+
22
+ }
23
+ end
24
+ end
25
+ end
26
+ end
@@ -0,0 +1,14 @@
1
+ module BrInvoicesPdf
2
+ module Cfe
3
+ module Renderer
4
+ module_function
5
+
6
+ def pdf(data, options)
7
+ Prawn::Document.new(options) do |pdf|
8
+ ## constroi o pdf
9
+ pdf.text data.to_s
10
+ end
11
+ end
12
+ end
13
+ end
14
+ end
@@ -0,0 +1,12 @@
1
+ module BrInvoicesPdf
2
+ module Errors
3
+ class InvalidDocumentType < StandardError
4
+ attr_reader :type
5
+
6
+ def initialize(type)
7
+ super("`#{type.inspect}` is not supported. Must be one of #{BrInvoicesPdf.supported_document_types}")
8
+ @type = type
9
+ end
10
+ end
11
+ end
12
+ end
@@ -0,0 +1,17 @@
1
+ module BrInvoicesPdf
2
+ class Generator
3
+ PDF_OPTIONS = { page_size: 'A4', margin: [40, 75] }.freeze
4
+
5
+ def initialize(renderer, parser)
6
+ @renderer = renderer
7
+ @parser = parser
8
+ end
9
+
10
+ def generate(xml, options)
11
+ parsed_xml = Ox.parse(xml)
12
+ data = @parser.parse(parsed_xml)
13
+ opts = PDF_OPTIONS.merge(options)
14
+ @renderer.pdf(data, opts).render
15
+ end
16
+ end
17
+ end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: br_invoices_pdf
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.5.alpha.7
4
+ version: 0.1.5.alpha.10
5
5
  platform: ruby
6
6
  authors:
7
7
  - Thiago Ribeiro
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: exe
11
11
  cert_chain: []
12
- date: 2017-06-29 00:00:00.000000000 Z
12
+ date: 2017-06-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: prawn
@@ -59,14 +59,14 @@ dependencies:
59
59
  requirements:
60
60
  - - "~>"
61
61
  - !ruby/object:Gem::Version
62
- version: '10.0'
62
+ version: '12.0'
63
63
  type: :development
64
64
  prerelease: false
65
65
  version_requirements: !ruby/object:Gem::Requirement
66
66
  requirements:
67
67
  - - "~>"
68
68
  - !ruby/object:Gem::Version
69
- version: '10.0'
69
+ version: '12.0'
70
70
  - !ruby/object:Gem::Dependency
71
71
  name: rspec
72
72
  requirement: !ruby/object:Gem::Requirement
@@ -109,6 +109,34 @@ dependencies:
109
109
  - - ">="
110
110
  - !ruby/object:Gem::Version
111
111
  version: '0'
112
+ - !ruby/object:Gem::Dependency
113
+ name: rubocop
114
+ requirement: !ruby/object:Gem::Requirement
115
+ requirements:
116
+ - - ">="
117
+ - !ruby/object:Gem::Version
118
+ version: '0'
119
+ type: :development
120
+ prerelease: false
121
+ version_requirements: !ruby/object:Gem::Requirement
122
+ requirements:
123
+ - - ">="
124
+ - !ruby/object:Gem::Version
125
+ version: '0'
126
+ - !ruby/object:Gem::Dependency
127
+ name: reek
128
+ requirement: !ruby/object:Gem::Requirement
129
+ requirements:
130
+ - - ">="
131
+ - !ruby/object:Gem::Version
132
+ version: '0'
133
+ type: :development
134
+ prerelease: false
135
+ version_requirements: !ruby/object:Gem::Requirement
136
+ requirements:
137
+ - - ">="
138
+ - !ruby/object:Gem::Version
139
+ version: '0'
112
140
  description:
113
141
  email:
114
142
  - thiago@pdvend.com.br
@@ -131,6 +159,11 @@ files:
131
159
  - bin/setup
132
160
  - br_invoices_pdf.gemspec
133
161
  - lib/br_invoices_pdf.rb
162
+ - lib/br_invoices_pdf/cfe.rb
163
+ - lib/br_invoices_pdf/cfe/parser.rb
164
+ - lib/br_invoices_pdf/cfe/renderer.rb
165
+ - lib/br_invoices_pdf/errors/invalid_document_type.rb
166
+ - lib/br_invoices_pdf/generator.rb
134
167
  - lib/br_invoices_pdf/version.rb
135
168
  homepage: https://github.com/pdvend/br_invoices_pdf
136
169
  licenses: