pdfkit 0.8.4 → 0.8.4.1

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of pdfkit might be problematic. Click here for more details.

checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: de215391f5d6f31b3bb381eca4662d19fda9c628d582862388e5d8180b10c73e
4
- data.tar.gz: 402ec1719d3548fce4550ae150d48090951c1597b7b0ac7f8482682aadacf381
3
+ metadata.gz: dc5beb396f2168a0c0ca91ee77bba2af22421d445ea05bbb5f57f687957b75e1
4
+ data.tar.gz: 96505e77627a3655edfd2c91c5ad190faea49fa7df184d456d838fa3ec620b08
5
5
  SHA512:
6
- metadata.gz: 48e4d2d1460b51560536001e7e9c7874e297b8d365ec4b3c57bf8831d0becbc8f6b381d876ca64f8ae8066084f94db50ddc1289b22f0218e396da8c918289638
7
- data.tar.gz: c785e6cde8040feb20c5d48fa94dc7e736b1d8350441c7418fc542a233b08d92031d00608f0bac47d4d230fb5bed84b4b70fe16b085bfae1c96cc6a90e92746a
6
+ metadata.gz: b07cf202025b2f252250d76be4b293c2cb3a0ec1b89666d5aec74dafa377e675190074f7dd2e2eba7ea2d6744e1f31be75ecf632827ce27dc209fbf9f137e564
7
+ data.tar.gz: 86c5e37ed66290882d4e7e0c7d7c7fb2b378068e9d1b28a4837acbc6268ee0da60819c5efdafc2c1ad0940adf30cbd084219fd3413efb1f9b4feefb5105dc55f
@@ -1,7 +1,15 @@
1
+ 2019-02-22
2
+ =================
3
+ * Bump to 0.8.4.1
4
+ * Make PDFkit threadsafe (#377)
5
+ * Update activesupport (#434)
6
+
1
7
  2019-02-21
2
8
  =================
3
9
  * Bump to 0.8.4
4
10
  * Removed support for Ruby < 2.2
11
+ * Xvfb support (#277)
12
+ * Remove 'config.protocol' from the README (#389)
5
13
 
6
14
  2015-08-26
7
15
  =================
data/Gemfile CHANGED
@@ -1,7 +1,7 @@
1
1
  source 'https://rubygems.org'
2
2
 
3
3
  group :test do
4
- gem 'activesupport', '~> 3.0'
4
+ gem 'activesupport', '~> 4.1'
5
5
  gem 'simplecov', require: false
6
6
  end
7
7
 
@@ -9,6 +9,10 @@ class PDFKit
9
9
  end
10
10
 
11
11
  def call(env)
12
+ dup._call(env)
13
+ end
14
+
15
+ def _call(env)
12
16
  @request = Rack::Request.new(env)
13
17
  @render_pdf = false
14
18
 
@@ -1,3 +1,3 @@
1
1
  class PDFKit
2
- VERSION = '0.8.4'
2
+ VERSION = '0.8.4.1'
3
3
  end
@@ -23,10 +23,9 @@ Gem::Specification.new do |s|
23
23
  s.requirements << "wkhtmltopdf"
24
24
 
25
25
  # Development Dependencies
26
- s.add_development_dependency(%q<activesupport>, [">= 3.0.8"])
26
+ s.add_development_dependency(%q<activesupport>, [">= 4.1.11"])
27
27
  s.add_development_dependency(%q<mocha>, [">= 0.9.10"])
28
28
  s.add_development_dependency(%q<rack-test>, [">= 0.5.6"])
29
- s.add_development_dependency(%q<i18n>, ["~>0.6.11"]) # Ruby 1.9.2 compatibility
30
29
  s.add_development_dependency(%q<rake>, ["~>0.9.2"])
31
30
  s.add_development_dependency(%q<rdoc>, ["~> 4.0.1"])
32
31
  s.add_development_dependency(%q<rspec>, ["~> 3.0"])
@@ -21,6 +21,35 @@ describe PDFKit::Middleware do
21
21
  end
22
22
 
23
23
  describe "#call" do
24
+
25
+ describe 'threadsafety' do
26
+ before { mock_app }
27
+ it 'is threadsafe' do
28
+ n = 30
29
+ extensions = Array.new(n) { rand > 0.5 ? 'html' : 'pdf' }
30
+ actual_content_types = Hash.new
31
+
32
+ threads = (0...n).map { |i|
33
+ Thread.new do
34
+ resp = get("http://www.example.org/public/test.#{extensions[i]}")
35
+ actual_content_types[i] = resp.content_type
36
+ end
37
+ }
38
+
39
+ threads.each(&:join)
40
+
41
+ extensions.each_with_index do |extension, index|
42
+ result = actual_content_types[index]
43
+ case extension
44
+ when 'html', 'txt', 'csv'
45
+ expect(result).to eq("text/#{extension}")
46
+ when 'pdf'
47
+ expect(result).to eq('application/pdf')
48
+ end
49
+ end
50
+ end
51
+ end
52
+
24
53
  describe "caching" do
25
54
  let(:headers) do
26
55
  {
@@ -397,22 +426,4 @@ describe PDFKit::Middleware do
397
426
  end
398
427
  end
399
428
  end
400
-
401
- it "does not get stuck rendering each request as pdf" do
402
- mock_app
403
- # false by default. No requests.
404
- expect(@app.send(:rendering_pdf?)).to eq(false)
405
-
406
- # Remain false on a normal request
407
- get 'http://www.example.org/public/file'
408
- expect(@app.send(:rendering_pdf?)).to eq(false)
409
-
410
- # Return true on a pdf request.
411
- get 'http://www.example.org/public/file.pdf'
412
- expect(@app.send(:rendering_pdf?)).to eq(true)
413
-
414
- # Restore to false on any non-pdf request.
415
- get 'http://www.example.org/public/file'
416
- expect(@app.send(:rendering_pdf?)).to eq(false)
417
- end
418
429
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pdfkit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.4
4
+ version: 0.8.4.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Jared Pace
@@ -17,14 +17,14 @@ dependencies:
17
17
  requirements:
18
18
  - - ">="
19
19
  - !ruby/object:Gem::Version
20
- version: 3.0.8
20
+ version: 4.1.11
21
21
  type: :development
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - ">="
26
26
  - !ruby/object:Gem::Version
27
- version: 3.0.8
27
+ version: 4.1.11
28
28
  - !ruby/object:Gem::Dependency
29
29
  name: mocha
30
30
  requirement: !ruby/object:Gem::Requirement
@@ -53,20 +53,6 @@ dependencies:
53
53
  - - ">="
54
54
  - !ruby/object:Gem::Version
55
55
  version: 0.5.6
56
- - !ruby/object:Gem::Dependency
57
- name: i18n
58
- requirement: !ruby/object:Gem::Requirement
59
- requirements:
60
- - - "~>"
61
- - !ruby/object:Gem::Version
62
- version: 0.6.11
63
- type: :development
64
- prerelease: false
65
- version_requirements: !ruby/object:Gem::Requirement
66
- requirements:
67
- - - "~>"
68
- - !ruby/object:Gem::Version
69
- version: 0.6.11
70
56
  - !ruby/object:Gem::Dependency
71
57
  name: rake
72
58
  requirement: !ruby/object:Gem::Requirement