html2pdf-rails 0.2.0 → 0.3.0

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