html2pdf-rails 0.2.0 → 0.3.0

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: b22eda92269c6803fe795dc243de5bbfa03ca708ca3ce4080512ffbf6c04af07
4
- data.tar.gz: 752a299df7c7e9fb3dec6b8f2632d4c6479ff250b40837aa95069b112dcb55c5
3
+ metadata.gz: 44f0e15ca57d6f2925db42486dee5ce6520c70f31c6ab16a7d5b2c1ba328f71e
4
+ data.tar.gz: a453b32763147459affa45f9f45ad6ede5e562c1c76d5afe60dce6b03cf008ac
5
5
  SHA512:
6
- metadata.gz: e269c0797a13770bb3f0924fa0e1192d68b0643d6d155a02c80c628d1a49bfbf8d0ab4834b7a5a88569e0f7e7108f1c4cb6d3487a321ffe0ee2da25949d4e572
7
- data.tar.gz: 673e12fb52ab924da0dfa3e4cc8069d328b5235420a1db440372f5ee1854ec799b760e9e0ed9f061ad08fc9a913bce23a1f53f1eb9ad0a61f5c8114c121b2c38
6
+ metadata.gz: 968683b734f24fe5eb62218f6698b61f04bdda767fb8a274648430b21a5979f537a4b762c1b8ff84917c6ec5e44c1e58325a7d03911031b27a47b4b24581f840
7
+ data.tar.gz: 6b1be8598fdd6df2adf8bb8154fc528f55a82c96412293be9407dd3ba1a20c8a32bfb4fae537e5da2c9285ecdea88e77bee8036c6e78f96efe55e970ed796777
@@ -24,6 +24,7 @@ Gem::Specification.new do |spec|
24
24
  spec.require_paths = ["lib"]
25
25
 
26
26
  spec.add_dependency "rails", ">= 5.2.0"
27
+ spec.add_dependency "retryable"
27
28
  spec.add_development_dependency "bundler"
28
29
  spec.add_development_dependency "rake"
29
30
  spec.add_development_dependency "rspec"
@@ -23,7 +23,16 @@ module Html2Pdf
23
23
  responseDisposition: disposition,
24
24
  pdfOptions: pdf_options
25
25
  }.to_json
26
- http.request(request)
26
+ response = http.request(request)
27
+
28
+ case response.code
29
+ when '200'
30
+ response.body
31
+ when '503'
32
+ raise Html2Pdf::Rails::ServiceUnavailableError.new(response)
33
+ else
34
+ raise Html2Pdf::Rails::RequestError.new(response)
35
+ end
27
36
  rescue Net::ReadTimeout
28
37
  raise Html2Pdf::Rails::NetworkError
29
38
  end
@@ -12,5 +12,8 @@ module Html2Pdf
12
12
  @response = response
13
13
  end
14
14
  end
15
+
16
+ class ServiceUnavailableError < RequestError
17
+ end
15
18
  end
16
19
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'retryable'
3
4
  require 'html2pdf/rails/client'
4
5
 
5
6
  module Html2Pdf
@@ -28,7 +29,7 @@ module Html2Pdf
28
29
  def _html2_pdf_render_pdf_and_get_url(pdf_name, options = {})
29
30
  options = _html2pdf_default_options(pdf_name, options)
30
31
  options[:put_to_storage] = true
31
- json = JSON.parse _html2pdf_make_pdf(options)
32
+ json = JSON.parse(_html2pdf_make_pdf(options))
32
33
  json['url']
33
34
  end
34
35
 
@@ -47,18 +48,15 @@ module Html2Pdf
47
48
  def _html2pdf_make_pdf(options = {})
48
49
  render_opts = options.slice(:template, :layout, :formats, :handlers)
49
50
  html = render_to_string(render_opts)
50
- response = Client.post(
51
- html: html,
52
- put_to_storage: options[:put_to_storage],
53
- file_name: options[:file_name],
54
- disposition: options[:disposition],
55
- pdf_options: options[:pdf_options]
56
- )
57
- case response.code
58
- when '200'
59
- response.body
60
- else
61
- raise Html2Pdf::Rails::RequestError.new(response)
51
+
52
+ Retryable.retryable(tries: 3, on: Html2Pdf::Rails::ServiceUnavailableError) do
53
+ Client.post(
54
+ html: html,
55
+ put_to_storage: options[:put_to_storage],
56
+ file_name: options[:file_name],
57
+ disposition: options[:disposition],
58
+ pdf_options: options[:pdf_options]
59
+ )
62
60
  end
63
61
  end
64
62
  end
@@ -2,6 +2,6 @@
2
2
 
3
3
  module Html2Pdf
4
4
  module Rails
5
- VERSION = '0.2.0'
5
+ VERSION = '0.3.0'
6
6
  end
7
7
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: html2pdf-rails
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.0
4
+ version: 0.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - aki77
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2020-06-05 00:00:00.000000000 Z
11
+ date: 2020-07-01 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rails
@@ -24,6 +24,20 @@ dependencies:
24
24
  - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: 5.2.0
27
+ - !ruby/object:Gem::Dependency
28
+ name: retryable
29
+ requirement: !ruby/object:Gem::Requirement
30
+ requirements:
31
+ - - ">="
32
+ - !ruby/object:Gem::Version
33
+ version: '0'
34
+ type: :runtime
35
+ prerelease: false
36
+ version_requirements: !ruby/object:Gem::Requirement
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ version: '0'
27
41
  - !ruby/object:Gem::Dependency
28
42
  name: bundler
29
43
  requirement: !ruby/object:Gem::Requirement