invoice_printer 1.3.0 → 2.0.0.alpha1

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.
@@ -16,21 +16,11 @@ module InvoicePrinterHelpers
16
16
  provider_name: 'Business s.r.o.',
17
17
  provider_tax_id: '56565656',
18
18
  provider_tax_id2: '465454',
19
- provider_street: 'Rolnicka',
20
- provider_street_number: '1',
21
- provider_postcode: '747 05',
22
- provider_city: 'Opava',
23
- provider_city_part: 'Katerinky',
24
- provider_extra_address_line: 'Czech Republic',
19
+ provider_lines: default_provider_address,
25
20
  purchaser_name: 'Adam',
26
21
  purchaser_tax_id: nil,
27
22
  purchaser_tax_id2: nil,
28
- purchaser_street: 'Ostravska',
29
- purchaser_street_number: '1',
30
- purchaser_postcode: '747 70',
31
- purchaser_city: 'Opava',
32
- purchaser_city_part: '',
33
- purchaser_extra_address_line: '',
23
+ purchaser_lines: default_purchaser_address,
34
24
  issue_date: '19/03/3939',
35
25
  due_date: '19/03/3939',
36
26
  subtotal: '175',
@@ -49,6 +39,22 @@ module InvoicePrinterHelpers
49
39
  }
50
40
  end
51
41
 
42
+ def default_provider_address
43
+ <<~ADDRESS
44
+ Rolnicka 1
45
+ 747 05 Opava
46
+ Katerinky
47
+ Czech Republic
48
+ ADDRESS
49
+ end
50
+
51
+ def default_purchaser_address
52
+ <<~ADDRESS
53
+ Ostravska 1
54
+ 747 70 Opava
55
+ ADDRESS
56
+ end
57
+
52
58
  def default_document_item_params
53
59
  {
54
60
  name: 'Web consultation',
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: invoice_printer
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.3.0
4
+ version: 2.0.0.alpha1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Josef Strzibny
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2019-01-31 00:00:00.000000000 Z
11
+ date: 2019-07-04 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: json
@@ -24,88 +24,60 @@ dependencies:
24
24
  - - "~>"
25
25
  - !ruby/object:Gem::Version
26
26
  version: '2.1'
27
- - !ruby/object:Gem::Dependency
28
- name: roda
29
- requirement: !ruby/object:Gem::Requirement
30
- requirements:
31
- - - '='
32
- - !ruby/object:Gem::Version
33
- version: 3.5.0
34
- type: :runtime
35
- prerelease: false
36
- version_requirements: !ruby/object:Gem::Requirement
37
- requirements:
38
- - - '='
39
- - !ruby/object:Gem::Version
40
- version: 3.5.0
41
- - !ruby/object:Gem::Dependency
42
- name: puma
43
- requirement: !ruby/object:Gem::Requirement
44
- requirements:
45
- - - "~>"
46
- - !ruby/object:Gem::Version
47
- version: '3.9'
48
- type: :runtime
49
- prerelease: false
50
- version_requirements: !ruby/object:Gem::Requirement
51
- requirements:
52
- - - "~>"
53
- - !ruby/object:Gem::Version
54
- version: '3.9'
55
27
  - !ruby/object:Gem::Dependency
56
28
  name: prawn
57
29
  requirement: !ruby/object:Gem::Requirement
58
30
  requirements:
59
- - - '='
31
+ - - "~>"
60
32
  - !ruby/object:Gem::Version
61
33
  version: 2.1.0
62
34
  type: :runtime
63
35
  prerelease: false
64
36
  version_requirements: !ruby/object:Gem::Requirement
65
37
  requirements:
66
- - - '='
38
+ - - "~>"
67
39
  - !ruby/object:Gem::Version
68
40
  version: 2.1.0
69
41
  - !ruby/object:Gem::Dependency
70
42
  name: prawn-layout
71
43
  requirement: !ruby/object:Gem::Requirement
72
44
  requirements:
73
- - - '='
45
+ - - "~>"
74
46
  - !ruby/object:Gem::Version
75
47
  version: 0.8.4
76
48
  type: :runtime
77
49
  prerelease: false
78
50
  version_requirements: !ruby/object:Gem::Requirement
79
51
  requirements:
80
- - - '='
52
+ - - "~>"
81
53
  - !ruby/object:Gem::Version
82
54
  version: 0.8.4
83
55
  - !ruby/object:Gem::Dependency
84
56
  name: bundler
85
57
  requirement: !ruby/object:Gem::Requirement
86
58
  requirements:
87
- - - "~>"
59
+ - - ">="
88
60
  - !ruby/object:Gem::Version
89
61
  version: '1.7'
90
62
  type: :development
91
63
  prerelease: false
92
64
  version_requirements: !ruby/object:Gem::Requirement
93
65
  requirements:
94
- - - "~>"
66
+ - - ">="
95
67
  - !ruby/object:Gem::Version
96
68
  version: '1.7'
97
69
  - !ruby/object:Gem::Dependency
98
70
  name: rake
99
71
  requirement: !ruby/object:Gem::Requirement
100
72
  requirements:
101
- - - "~>"
73
+ - - ">="
102
74
  - !ruby/object:Gem::Version
103
75
  version: '10.0'
104
76
  type: :development
105
77
  prerelease: false
106
78
  version_requirements: !ruby/object:Gem::Requirement
107
79
  requirements:
108
- - - "~>"
80
+ - - ">="
109
81
  - !ruby/object:Gem::Version
110
82
  version: '10.0'
111
83
  description: Super simple and fast PDF invoicing in pure Ruby (based on Prawn library).
@@ -113,7 +85,6 @@ email:
113
85
  - strzibny@strzibny.name
114
86
  executables:
115
87
  - invoice_printer
116
- - invoice_printer_server
117
88
  extensions: []
118
89
  extra_rdoc_files: []
119
90
  files:
@@ -126,7 +97,6 @@ files:
126
97
  - assets/logo.png
127
98
  - benchmarks/render.yml
128
99
  - bin/invoice_printer
129
- - bin/invoice_printer_server
130
100
  - docs/COMMAND_LINE.md
131
101
  - docs/INSTALLATION.md
132
102
  - docs/LIBRARY.md
@@ -142,14 +112,15 @@ files:
142
112
  - examples/picture.jpg
143
113
  - examples/prawn.png
144
114
  - examples/promo.rb
115
+ - examples/provider_purchaser_lines.rb
145
116
  - examples/simple_invoice.rb
146
117
  - examples/stamp.png
147
118
  - invoice_printer.gemspec
119
+ - invoice_printer_server.gemspec
148
120
  - lib/invoice_printer.rb
149
121
  - lib/invoice_printer/document.rb
150
122
  - lib/invoice_printer/document/item.rb
151
123
  - lib/invoice_printer/pdf_document.rb
152
- - lib/invoice_printer/server.rb
153
124
  - lib/invoice_printer/version.rb
154
125
  - test/api_test.rb
155
126
  - test/background_test.rb
@@ -180,12 +151,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
180
151
  version: '0'
181
152
  required_rubygems_version: !ruby/object:Gem::Requirement
182
153
  requirements:
183
- - - ">="
154
+ - - ">"
184
155
  - !ruby/object:Gem::Version
185
- version: '0'
156
+ version: 1.3.1
186
157
  requirements: []
187
- rubyforge_project:
188
- rubygems_version: 2.6.14.1
158
+ rubygems_version: 3.0.3
189
159
  signing_key:
190
160
  specification_version: 4
191
161
  summary: Super simple PDF invoicing in pure Ruby
@@ -1,69 +0,0 @@
1
- #!/usr/bin/env ruby
2
- $LOAD_PATH << File.expand_path('lib')
3
-
4
- require 'optparse'
5
- require 'rack/handler/puma'
6
- require 'invoice_printer/server'
7
-
8
- def show_version
9
- puts "InvoicePrinter v#{InvoicePrinter::VERSION}"
10
-
11
- exit 0
12
- end
13
-
14
- def show_help
15
- puts <<~HELP
16
- Usage: invoice_printer_server [options]
17
-
18
- Options:
19
-
20
- -h, --host hostname to listen on (default is 0.0.0.0)
21
- -p, --port port to listen on (default is 9393)
22
- -w, --workers number of Puma workers (default is 2)
23
-
24
- HELP
25
-
26
- exit 0
27
- end
28
-
29
- options = {}
30
-
31
- parser = OptionParser.new do|opts|
32
- opts.on('-h', '--hostname ADDRESS') do |address|
33
- options[:Host] = address
34
- end
35
-
36
- opts.on('-p', '--port NUMBER') do |number|
37
- options[:Port] = number
38
- end
39
-
40
- opts.on('-w', '--workers NUMBER') do |number|
41
- options[:workers] = number.to_i
42
- end
43
-
44
- opts.on('--debug') do
45
- options[:debug] = true
46
- end
47
-
48
- opts.on('-h', '--help') do
49
- show_help
50
- end
51
- end
52
-
53
- parser.parse!
54
-
55
- puma_options = { :Host => '0.0.0.0', :Port => 9393, :workers => 2 }.merge(options)
56
-
57
- begin
58
- puts 'Starting InvoicePrinter Server...'
59
- Rack::Handler::Puma.run(InvoicePrinter::Server.freeze.app, puma_options)
60
- rescue => e
61
- STDERR.puts "ERROR: #{e.message}"
62
-
63
- if options[:debug]
64
- STDERR.puts
65
- STDERR.puts e.backtrace
66
- end
67
-
68
- exit 1
69
- end
@@ -1,90 +0,0 @@
1
- require 'base64'
2
- require 'roda'
3
- require 'invoice_printer'
4
-
5
- class InvoicePrinter::Server < Roda
6
- route do |r|
7
- response['Content-Type'] = 'application/json'
8
-
9
- # Assign params
10
- if r.content_type == 'application/json'
11
- begin
12
- params = JSON.parse(r.body.read, symbolize_names: true)
13
- rescue => e
14
- response.status = 400
15
- response.write({ result: 'error', error: 'Invalid JSON.' }.to_json)
16
- r.halt
17
- end
18
-
19
- document = params[:document]
20
- labels = params[:labels]
21
- font = params[:font]
22
- stamp = params[:stamp]
23
- logo = params[:logo]
24
- background = params[:background]
25
- page_size = params[:page_size]
26
- else
27
- response.status = 400
28
- response.write({ result: 'error', error: 'No JSON. Did you set Content-Type to application/json?' }.to_json)
29
- r.halt
30
- end
31
-
32
- # Initialize InvoicePrinter::Document from given JSON
33
- begin
34
- document[:items] ||= []
35
- items = document[:items].map { |item| InvoicePrinter::Document::Item.new(**item) }
36
- document[:items] = items
37
-
38
- document = InvoicePrinter::Document.new(**document)
39
- rescue => e
40
- response.status = 400
41
- response.write({ result: 'error', error: 'Invalid JSON document.' }.to_json)
42
- r.halt
43
- end
44
-
45
- # POST /print
46
- r.post 'print' do
47
- filename = params[:filename] || 'document.pdf'
48
-
49
- begin
50
- InvoicePrinter.print(
51
- document: document,
52
- labels: labels,
53
- font: font,
54
- stamp: stamp,
55
- logo: logo,
56
- background: background,
57
- page_size: page_size,
58
- file_name: filename
59
- )
60
-
61
- { result: 'ok', path: filename }.to_json
62
- rescue => e
63
- response.status = 400
64
- response.write({ result: 'error', error: e.message }.to_json)
65
- r.halt
66
- end
67
- end
68
-
69
- # POST /render
70
- r.post 'render' do
71
- begin
72
- stream = InvoicePrinter.render(
73
- document: document,
74
- labels: labels,
75
- font: font,
76
- stamp: stamp,
77
- logo: logo,
78
- background: background,
79
- page_size: page_size
80
- )
81
-
82
- { result: 'ok', data: Base64.encode64(stream) }.to_json
83
- rescue => e
84
- response.status = 400
85
- response.write({ result: 'error', error: e.message }.to_json)
86
- r.halt
87
- end
88
- end
89
- end
90
- end