breezy_pdf_lite 0.0.4 → 0.0.6

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
  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: []