pdfkit 0.4.6 → 0.5.0
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.
- data/.gitignore +1 -0
- data/Gemfile +2 -8
- data/Gemfile.lock +20 -23
- data/History.md +9 -0
- data/POST_INSTALL +11 -5
- data/README.md +51 -13
- data/Rakefile +1 -22
- data/lib/pdfkit.rb +1 -2
- data/lib/pdfkit/configuration.rb +10 -8
- data/lib/pdfkit/middleware.rb +61 -45
- data/lib/pdfkit/pdfkit.rb +39 -34
- data/lib/pdfkit/source.rb +2 -6
- data/lib/pdfkit/version.rb +3 -0
- data/pdfkit.gemspec +18 -76
- data/spec/middleware_spec.rb +127 -21
- data/spec/pdfkit_spec.rb +49 -39
- data/spec/source_spec.rb +5 -0
- data/spec/spec_helper.rb +3 -7
- metadata +42 -55
- data/VERSION +0 -1
- data/bin/pdfkit +0 -72
data/spec/source_spec.rb
CHANGED
@@ -17,6 +17,11 @@ describe PDFKit::Source do
|
|
17
17
|
source = PDFKit::Source.new('<blink>Oh Hai!</blink>')
|
18
18
|
source.should_not be_url
|
19
19
|
end
|
20
|
+
|
21
|
+
it "should return false if passed HTML with embedded urls at the beginning of a line" do
|
22
|
+
source = PDFKit::Source.new("<blink>Oh Hai!</blink>\nhttp://www.google.com")
|
23
|
+
source.should_not be_url
|
24
|
+
end
|
20
25
|
end
|
21
26
|
|
22
27
|
describe "#file?" do
|
data/spec/spec_helper.rb
CHANGED
@@ -6,13 +6,9 @@ require 'rspec'
|
|
6
6
|
require 'rspec/autorun'
|
7
7
|
require 'mocha'
|
8
8
|
require 'rack'
|
9
|
+
require 'rack/test'
|
10
|
+
require 'custom_wkhtmltopdf_path' if File.exists?(File.join(SPEC_ROOT, 'custom_wkhtmltopdf_path.rb'))
|
9
11
|
|
10
12
|
RSpec.configure do |config|
|
11
|
-
|
12
|
-
config.before do
|
13
|
-
PDFKit.any_instance.stubs(:wkhtmltopdf).returns(
|
14
|
-
File.join(SPEC_ROOT,'..','bin','wkhtmltopdf-proxy')
|
15
|
-
)
|
16
|
-
end
|
17
|
-
|
13
|
+
include Rack::Test::Methods
|
18
14
|
end
|
metadata
CHANGED
@@ -1,99 +1,94 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pdfkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
hash: 3
|
5
4
|
prerelease: false
|
6
5
|
segments:
|
7
6
|
- 0
|
8
|
-
-
|
9
|
-
-
|
10
|
-
version: 0.
|
7
|
+
- 5
|
8
|
+
- 0
|
9
|
+
version: 0.5.0
|
11
10
|
platform: ruby
|
12
11
|
authors:
|
13
|
-
-
|
12
|
+
- Jared Pace
|
13
|
+
- Relevance
|
14
14
|
autorequire:
|
15
15
|
bindir: bin
|
16
16
|
cert_chain: []
|
17
17
|
|
18
|
-
date: 2010-
|
19
|
-
default_executable:
|
18
|
+
date: 2010-12-27 00:00:00 -05:00
|
19
|
+
default_executable:
|
20
20
|
dependencies:
|
21
21
|
- !ruby/object:Gem::Dependency
|
22
|
-
prerelease: false
|
23
|
-
type: :development
|
24
22
|
name: rspec
|
25
|
-
|
23
|
+
prerelease: false
|
24
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
26
25
|
none: false
|
27
26
|
requirements:
|
28
27
|
- - ~>
|
29
28
|
- !ruby/object:Gem::Version
|
30
|
-
hash: 62196467
|
31
29
|
segments:
|
32
30
|
- 2
|
31
|
+
- 2
|
33
32
|
- 0
|
34
|
-
|
35
|
-
|
36
|
-
|
37
|
-
version: 2.0.0.beta.8
|
38
|
-
requirement: *id001
|
33
|
+
version: 2.2.0
|
34
|
+
type: :development
|
35
|
+
version_requirements: *id001
|
39
36
|
- !ruby/object:Gem::Dependency
|
37
|
+
name: mocha
|
40
38
|
prerelease: false
|
41
|
-
|
42
|
-
name: rspec-core
|
43
|
-
version_requirements: &id002 !ruby/object:Gem::Requirement
|
39
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
44
40
|
none: false
|
45
41
|
requirements:
|
46
|
-
- -
|
42
|
+
- - ">="
|
47
43
|
- !ruby/object:Gem::Version
|
48
|
-
hash: 62196467
|
49
44
|
segments:
|
50
|
-
- 2
|
51
45
|
- 0
|
52
|
-
-
|
53
|
-
-
|
54
|
-
|
55
|
-
|
56
|
-
|
46
|
+
- 9
|
47
|
+
- 10
|
48
|
+
version: 0.9.10
|
49
|
+
type: :development
|
50
|
+
version_requirements: *id002
|
57
51
|
- !ruby/object:Gem::Dependency
|
52
|
+
name: rack-test
|
58
53
|
prerelease: false
|
59
|
-
|
60
|
-
name: mocha
|
61
|
-
version_requirements: &id003 !ruby/object:Gem::Requirement
|
54
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
62
55
|
none: false
|
63
56
|
requirements:
|
64
57
|
- - ">="
|
65
58
|
- !ruby/object:Gem::Version
|
66
|
-
hash: 3
|
67
59
|
segments:
|
68
60
|
- 0
|
69
|
-
|
70
|
-
|
61
|
+
- 5
|
62
|
+
- 6
|
63
|
+
version: 0.5.6
|
64
|
+
type: :development
|
65
|
+
version_requirements: *id003
|
71
66
|
description: Uses wkhtmltopdf to create PDFs using HTML
|
72
|
-
email:
|
73
|
-
|
74
|
-
|
67
|
+
email:
|
68
|
+
- jared@codewordstudios.com
|
69
|
+
executables: []
|
70
|
+
|
75
71
|
extensions: []
|
76
72
|
|
77
|
-
extra_rdoc_files:
|
78
|
-
|
79
|
-
- README.md
|
73
|
+
extra_rdoc_files: []
|
74
|
+
|
80
75
|
files:
|
81
76
|
- .document
|
82
77
|
- .gitignore
|
83
78
|
- .rspec
|
84
79
|
- Gemfile
|
85
80
|
- Gemfile.lock
|
81
|
+
- History.md
|
86
82
|
- LICENSE
|
87
83
|
- POST_INSTALL
|
88
84
|
- README.md
|
89
85
|
- Rakefile
|
90
|
-
- VERSION
|
91
|
-
- bin/pdfkit
|
92
86
|
- lib/pdfkit.rb
|
93
87
|
- lib/pdfkit/configuration.rb
|
94
88
|
- lib/pdfkit/middleware.rb
|
95
89
|
- lib/pdfkit/pdfkit.rb
|
96
90
|
- lib/pdfkit/source.rb
|
91
|
+
- lib/pdfkit/version.rb
|
97
92
|
- pdfkit.gemspec
|
98
93
|
- spec/fixtures/example.css
|
99
94
|
- spec/fixtures/example.html
|
@@ -105,17 +100,9 @@ has_rdoc: true
|
|
105
100
|
homepage: http://github.com/jdpace/PDFKit
|
106
101
|
licenses: []
|
107
102
|
|
108
|
-
post_install_message:
|
109
|
-
|
110
|
-
|
111
|
-
Now install wkhtmltopdf binaries:
|
112
|
-
Global: sudo `which pdfkit` --install-wkhtmltopdf
|
113
|
-
or inside RVM folder: export TO=`which pdfkit | sed 's:/pdfkit:/wkhtmltopdf:'` && pdfkit --install-wkhtmltopdf
|
114
|
-
(run pdfkit --help to see more options)
|
115
|
-
|
116
|
-
******************************************************************
|
117
|
-
rdoc_options:
|
118
|
-
- --charset=UTF-8
|
103
|
+
post_install_message:
|
104
|
+
rdoc_options: []
|
105
|
+
|
119
106
|
require_paths:
|
120
107
|
- lib
|
121
108
|
required_ruby_version: !ruby/object:Gem::Requirement
|
@@ -123,7 +110,6 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
123
110
|
requirements:
|
124
111
|
- - ">="
|
125
112
|
- !ruby/object:Gem::Version
|
126
|
-
hash: 3
|
127
113
|
segments:
|
128
114
|
- 0
|
129
115
|
version: "0"
|
@@ -132,18 +118,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
132
118
|
requirements:
|
133
119
|
- - ">="
|
134
120
|
- !ruby/object:Gem::Version
|
135
|
-
hash: 3
|
136
121
|
segments:
|
137
122
|
- 0
|
138
123
|
version: "0"
|
139
124
|
requirements: []
|
140
125
|
|
141
|
-
rubyforge_project:
|
126
|
+
rubyforge_project: pdfkit
|
142
127
|
rubygems_version: 1.3.7
|
143
128
|
signing_key:
|
144
129
|
specification_version: 3
|
145
130
|
summary: HTML+CSS -> PDF
|
146
131
|
test_files:
|
132
|
+
- spec/fixtures/example.css
|
133
|
+
- spec/fixtures/example.html
|
147
134
|
- spec/middleware_spec.rb
|
148
135
|
- spec/pdfkit_spec.rb
|
149
136
|
- spec/source_spec.rb
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
0.4.6
|
data/bin/pdfkit
DELETED
@@ -1,72 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
require 'rubygems'
|
3
|
-
require 'optparse'
|
4
|
-
require 'rbconfig'
|
5
|
-
require 'open-uri'
|
6
|
-
require 'pdfkit/configuration'
|
7
|
-
|
8
|
-
def detect_architecture
|
9
|
-
case Config::CONFIG['host_os']
|
10
|
-
when /x86_64-linux/i
|
11
|
-
'amd64'
|
12
|
-
when /linux/i
|
13
|
-
'i386'
|
14
|
-
when /darwin/i
|
15
|
-
'OS-X.i368'
|
16
|
-
else
|
17
|
-
raise "No binaries found for your system. Please install wkhtmltopdf by hand."
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def cleanup(install_to)
|
22
|
-
`rm -rf wkhtmltopdf*`
|
23
|
-
`rm #{install_to}`
|
24
|
-
end
|
25
|
-
|
26
|
-
def download_wkhtmltopdf(arch)
|
27
|
-
page = open("http://code.google.com/p/wkhtmltopdf/downloads/list").read
|
28
|
-
download = page.match(/href=".*name=(.*wkhtmltopdf-.*#{arch}.*?)&/) || raise("File not found..")
|
29
|
-
download = download[1]
|
30
|
-
url = "http://wkhtmltopdf.googlecode.com/files/#{download}"
|
31
|
-
puts "Downloading #{download} from #{url}"
|
32
|
-
|
33
|
-
`curl #{url} > #{download}`
|
34
|
-
download
|
35
|
-
end
|
36
|
-
|
37
|
-
def install(download, arch, install_to)
|
38
|
-
puts "Installing #{download} to #{install_to}"
|
39
|
-
if download =~ /.tar.bz2$/
|
40
|
-
`tar xjvf #{download}`
|
41
|
-
`mv wkhtmltopdf-#{arch} #{install_to}`
|
42
|
-
elsif download =~ /.tar.lzma$/
|
43
|
-
raise "couldn't extract archive: lzcat not found" unless system("which lzcat > /dev/null 2>/dev/null")
|
44
|
-
`lzcat #{download} | tar x`
|
45
|
-
`mv wkhtmltopdf-#{arch} #{install_to}`
|
46
|
-
else
|
47
|
-
`mv #{download} #{install_to}`
|
48
|
-
end
|
49
|
-
`sudo chmod +x #{install_to}`
|
50
|
-
end
|
51
|
-
|
52
|
-
OptionParser.new do |parser|
|
53
|
-
parser.banner = "PDFKit\n\nOptions are:"
|
54
|
-
|
55
|
-
parser.on("--install-wkhtmltopdf", "Install wkhtmltopdf binaries (TO=/usr/local/bin ARCHITECTURE=i386)") do
|
56
|
-
architecture = ENV['ARCHITECTURE'] || detect_architecture
|
57
|
-
install_to = ENV['TO'] || PDFKit.configuration.wkhtmltopdf
|
58
|
-
|
59
|
-
Dir.chdir '/tmp'
|
60
|
-
|
61
|
-
cleanup(install_to)
|
62
|
-
download = download_wkhtmltopdf(architecture)
|
63
|
-
install(download, architecture, install_to)
|
64
|
-
end
|
65
|
-
|
66
|
-
parser.on("--version", "Show Version.") do
|
67
|
-
root = File.dirname(File.dirname(__FILE__))
|
68
|
-
puts File.read(File.join(root, 'VERSION'))
|
69
|
-
end
|
70
|
-
|
71
|
-
parser.on("-h", "--help", "Show this.") { puts parser; exit }
|
72
|
-
end.parse!
|