breezy_pdf_lite 0.0.4 → 0.0.6

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
  SHA256:
3
- metadata.gz: 40266147ffd92d25f60f08c896f6b3f95a8c432eb499f2492c6c3231bb5e53bc
4
- data.tar.gz: 5aea50edbb6cca732e9ab83a83d4308b6c97f08334793762fac094bf8f213765
3
+ metadata.gz: f28aeb4e848ca5fdd4e627b2afc3407ac16f0592c0452f5334a02fb685558adf
4
+ data.tar.gz: fdfafe6f87e2228b496655b3d5ec49496f93c56eb73a6528bba09310196feb81
5
5
  SHA512:
6
- metadata.gz: 4e7908ac77b5d0c58c704ccc0e7fec73ef00ebcdf2dc9ef1bb2ff2f9c4309f96f55c5774f8ecba78dbdc13a33c35c42ec2820f46d84e9cf1f06a1e4d3ef9f83f
7
- data.tar.gz: c73b331c1405586145adea06741e447da75a85937222fc760e6f6c80b860934c976021f673197cdac928dd6a184df28a71b8c9e191dae6e34eba700fd7a157ff
6
+ metadata.gz: c6a78e463d423ba56d8c5f74e8d1800417fbdb31df21e6d9983c01590d6cbaa2a56b787614f516a5c35c56db06f22db31ab5d9a5e9ea9c7dd0e236c7eba3eb9f
7
+ data.tar.gz: f966e01f7eb6ec9aeb1236f7fbd8073d78ba8dd58167294b2b1971557d54245a7ab50008da6e86f728a363f6b71933062c5cf7452dda2342072b1f42bcdfbdb0
@@ -1,5 +1,9 @@
1
1
  sudo: false
2
2
  language: ruby
3
3
  rvm:
4
- - 2.4.2
4
+ - 2.7
5
+ - 2.6
6
+ - 2.5
7
+ - jruby
5
8
  before_install: gem install bundler
9
+ install: bundle install --jobs=3 --retry=3
@@ -11,7 +11,7 @@ Gem::Specification.new do |spec|
11
11
  spec.email = ["daniel@prowestech.com"]
12
12
 
13
13
  spec.summary = "Ruby/rack middleware for BreezyPDF Lite. HTML to PDF."
14
- spec.license = "GPLv3"
14
+ spec.license = "GPL-3.0"
15
15
 
16
16
  spec.files = `git ls-files -z`.split("\x0").reject do |f|
17
17
  f.match(%r{^(test|spec|features)/})
@@ -17,7 +17,8 @@ module BreezyPDFLite
17
17
  autoload :Middleware, "breezy_pdf_lite/middleware"
18
18
  autoload :RenderRequest, "breezy_pdf_lite/render_request"
19
19
 
20
- BreezyPDFLiteError = Class.new(StandardError)
20
+ Error = Class.new(StandardError)
21
+ RenderError = Class.new(Error)
21
22
 
22
23
  mattr_accessor :secret_api_key
23
24
  @@secret_api_key = nil
@@ -3,7 +3,7 @@
3
3
  module BreezyPDFLite
4
4
  # :nodoc
5
5
  module Intercept
6
- UnRenderable = Class.new(BreezyPDFLiteError)
6
+ UnRenderable = Class.new(BreezyPDFLite::Error)
7
7
  autoload :Base, "breezy_pdf_lite/intercept/base"
8
8
  autoload :HTML, "breezy_pdf_lite/intercept/html"
9
9
  end
@@ -8,6 +8,10 @@ module BreezyPDFLite::Intercept
8
8
 
9
9
  render_request = BreezyPDFLite::RenderRequest.new(body).submit
10
10
 
11
+ if render_request.code != "201"
12
+ raise BreezyPDFLite::RenderError, "Status: #{render_request.status} body: #{render_request.body}"
13
+ end
14
+
11
15
  [
12
16
  201,
13
17
  {
@@ -32,7 +36,16 @@ module BreezyPDFLite::Intercept
32
36
  end
33
37
 
34
38
  def body
35
- @body ||= response[2].respond_to?(:body) ? response[2].body : response[2].join
39
+ case response[2].class.name
40
+ when "ActionDispatch::Response::RackBody"
41
+ response[2].body
42
+ else
43
+ if response[2].respond_to?(:join)
44
+ response[2].join
45
+ else
46
+ response[2]
47
+ end
48
+ end
36
49
  end
37
50
 
38
51
  def response
@@ -12,7 +12,7 @@ module BreezyPDFLite
12
12
  end
13
13
 
14
14
  def to_file
15
- raise BreezyPDFLiteError, "#{response.code}: #{response.body}" if response.code != "201"
15
+ raise RenderError, "#{response.code}: #{response.body}" if response.code != "201"
16
16
 
17
17
  @to_file ||= Tempfile.new(%w[response .pdf]).tap do |file|
18
18
  file.binmode
@@ -0,0 +1,40 @@
1
+ # frozen_string_literal: true
2
+
3
+ module BreezyPDFLite
4
+ # RenderRequest -> Net::HTTPResponse wrapper that is streaming compatable
5
+ class Response
6
+ def initialize(response)
7
+ @response = response
8
+ end
9
+
10
+ def status
11
+ @status ||= @response.code.to_i
12
+ end
13
+
14
+ def headers
15
+ {
16
+ "Content-Type" => "application/pdf",
17
+ "Content-Length" => @response.header["Content-Length"],
18
+ "Content-Disposition" => @response.header["Content-Disposition"]
19
+ }
20
+ end
21
+
22
+ def each(&blk)
23
+ @response.read_body(&blk)
24
+ end
25
+
26
+ def body
27
+ io = StringIO.new
28
+ io.binmode
29
+
30
+ each do |chunk|
31
+ io.write chunk
32
+ end
33
+
34
+ io.flush
35
+ io.rewind
36
+
37
+ io
38
+ end
39
+ end
40
+ end
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module BreezyPDFLite
4
- VERSION = "0.0.4"
4
+ VERSION = "0.0.6"
5
5
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: breezy_pdf_lite
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.4
4
+ version: 0.0.6
5
5
  platform: ruby
6
6
  authors:
7
7
  - Daniel Westendorf
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-01-16 00:00:00.000000000 Z
11
+ date: 2020-01-20 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -111,11 +111,12 @@ files:
111
111
  - lib/breezy_pdf_lite/interceptor.rb
112
112
  - lib/breezy_pdf_lite/middleware.rb
113
113
  - lib/breezy_pdf_lite/render_request.rb
114
+ - lib/breezy_pdf_lite/response.rb
114
115
  - lib/breezy_pdf_lite/util.rb
115
116
  - lib/breezy_pdf_lite/version.rb
116
117
  homepage:
117
118
  licenses:
118
- - GPLv3
119
+ - GPL-3.0
119
120
  metadata: {}
120
121
  post_install_message:
121
122
  rdoc_options: []