imgkit 1.3.7 → 1.3.8
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.
- data/Gemfile.lock +1 -1
- data/lib/imgkit/configuration.rb +5 -5
- data/lib/imgkit/imgkit.rb +19 -19
- data/lib/imgkit/version.rb +1 -1
- data/spec/imgkit_spec.rb +6 -1
- metadata +5 -5
data/Gemfile.lock
CHANGED
data/lib/imgkit/configuration.rb
CHANGED
@@ -5,7 +5,7 @@ class IMGKit
|
|
5
5
|
def initialize
|
6
6
|
@meta_tag_prefix = 'imgkit-'
|
7
7
|
@wkhtmltoimage = '/usr/local/bin/wkhtmltoimage'
|
8
|
-
@default_options = {}
|
8
|
+
@default_options = {:height => 1000}
|
9
9
|
@default_format = :jpg
|
10
10
|
end
|
11
11
|
end
|
@@ -21,14 +21,14 @@ class IMGKit
|
|
21
21
|
# IMGKit.configure do |config|
|
22
22
|
# config.wkhtmltoimage = '/usr/bin/wkhtmltoimage'
|
23
23
|
# end
|
24
|
-
|
24
|
+
|
25
25
|
def self.configuration
|
26
26
|
@configuration ||= Configuration.new
|
27
27
|
end
|
28
|
-
|
29
|
-
|
28
|
+
|
29
|
+
|
30
30
|
def self.configure
|
31
|
-
self.configuration
|
31
|
+
self.configuration
|
32
32
|
yield(configuration)
|
33
33
|
end
|
34
34
|
end
|
data/lib/imgkit/imgkit.rb
CHANGED
@@ -8,7 +8,7 @@ class IMGKit
|
|
8
8
|
super(msg)
|
9
9
|
end
|
10
10
|
end
|
11
|
-
|
11
|
+
|
12
12
|
class ImproperSourceError < StandardError
|
13
13
|
def initialize(msg)
|
14
14
|
super("Improper Source: #{msg}")
|
@@ -29,31 +29,31 @@ class IMGKit
|
|
29
29
|
super("Unknown Format: #{format}")
|
30
30
|
end
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
attr_accessor :source, :stylesheets
|
34
34
|
attr_reader :options
|
35
|
-
|
35
|
+
|
36
36
|
def initialize(url_file_or_html, options = {})
|
37
37
|
@source = Source.new(url_file_or_html)
|
38
|
-
|
38
|
+
|
39
39
|
@stylesheets = []
|
40
40
|
|
41
41
|
@options = IMGKit.configuration.default_options.merge(options)
|
42
42
|
@options.merge! find_options_in_meta(url_file_or_html) unless source.url?
|
43
|
-
|
43
|
+
|
44
44
|
raise NoExecutableError.new unless File.exists?(IMGKit.configuration.wkhtmltoimage)
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
def command
|
48
48
|
args = [executable]
|
49
49
|
args += normalize_options(@options).to_a.flatten.compact
|
50
|
-
|
50
|
+
|
51
51
|
if @source.html?
|
52
52
|
args << '-' # Get HTML from stdin
|
53
53
|
else
|
54
54
|
args << @source.to_s
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
57
|
args << '-' # Read IMG from stdout
|
58
58
|
args
|
59
59
|
end
|
@@ -68,7 +68,7 @@ class IMGKit
|
|
68
68
|
end
|
69
69
|
end
|
70
70
|
|
71
|
-
if Open3.
|
71
|
+
if Open3.respond_to? :capture3
|
72
72
|
def capture3(*opts)
|
73
73
|
Open3.capture3 *opts
|
74
74
|
end
|
@@ -99,7 +99,7 @@ class IMGKit
|
|
99
99
|
}
|
100
100
|
end
|
101
101
|
end
|
102
|
-
|
102
|
+
|
103
103
|
def to_img(format = nil)
|
104
104
|
append_stylesheets
|
105
105
|
set_format(format)
|
@@ -107,11 +107,11 @@ class IMGKit
|
|
107
107
|
opts = @source.html? ? {:stdin_data => @source.to_s} : {}
|
108
108
|
result, stderr = capture3(*(command + [opts]))
|
109
109
|
result.force_encoding("ASCII-8BIT") if result.respond_to? :force_encoding
|
110
|
-
|
110
|
+
|
111
111
|
raise CommandFailedError.new(command.join(' '), stderr) if result.size == 0
|
112
112
|
result
|
113
113
|
end
|
114
|
-
|
114
|
+
|
115
115
|
def to_file(path)
|
116
116
|
format = File.extname(path).gsub(/^\./,'').to_sym
|
117
117
|
set_format(format)
|
@@ -125,7 +125,7 @@ class IMGKit
|
|
125
125
|
super
|
126
126
|
end
|
127
127
|
end
|
128
|
-
|
128
|
+
|
129
129
|
protected
|
130
130
|
|
131
131
|
def find_options_in_meta(body)
|
@@ -146,14 +146,14 @@ class IMGKit
|
|
146
146
|
rescue # rexml random crash on invalid xml
|
147
147
|
[]
|
148
148
|
end
|
149
|
-
|
149
|
+
|
150
150
|
def style_tag_for(stylesheet)
|
151
151
|
"<style>#{stylesheet.respond_to?(:read) ? stylesheet.read : File.read(stylesheet)}</style>"
|
152
152
|
end
|
153
|
-
|
153
|
+
|
154
154
|
def append_stylesheets
|
155
155
|
raise ImproperSourceError.new('Stylesheets may only be added to an HTML source') if stylesheets.any? && !@source.html?
|
156
|
-
|
156
|
+
|
157
157
|
stylesheets.each do |stylesheet|
|
158
158
|
if @source.to_s.match(/<\/head>/)
|
159
159
|
@source.to_s.gsub!(/(<\/head>)/, style_tag_for(stylesheet)+'\1')
|
@@ -162,7 +162,7 @@ class IMGKit
|
|
162
162
|
end
|
163
163
|
end
|
164
164
|
end
|
165
|
-
|
165
|
+
|
166
166
|
def normalize_options(options)
|
167
167
|
normalized_options = {}
|
168
168
|
|
@@ -173,11 +173,11 @@ class IMGKit
|
|
173
173
|
end
|
174
174
|
normalized_options
|
175
175
|
end
|
176
|
-
|
176
|
+
|
177
177
|
def normalize_arg(arg)
|
178
178
|
arg.to_s.downcase.gsub(/[^a-z0-9]/,'-')
|
179
179
|
end
|
180
|
-
|
180
|
+
|
181
181
|
def normalize_value(value)
|
182
182
|
case value
|
183
183
|
when TrueClass
|
data/lib/imgkit/version.rb
CHANGED
data/spec/imgkit_spec.rb
CHANGED
@@ -22,10 +22,15 @@ describe IMGKit do
|
|
22
22
|
end
|
23
23
|
|
24
24
|
it "should provide no default options" do
|
25
|
+
end
|
26
|
+
|
27
|
+
it "should set a default height" do
|
25
28
|
imgkit = IMGKit.new('<h1>Oh Hai</h1>')
|
26
|
-
imgkit.options.should
|
29
|
+
imgkit.options.length.should be 1
|
30
|
+
imgkit.options[:height].should be 1000
|
27
31
|
end
|
28
32
|
|
33
|
+
|
29
34
|
=begin
|
30
35
|
it "should default to 'UTF-8' encoding" do
|
31
36
|
imgkit = IMGKit.new('Captación')
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: imgkit
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.3.
|
4
|
+
version: 1.3.8
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-21 00:00:00.000000000 Z
|
13
13
|
dependencies: []
|
14
14
|
description: Uses wkhtmltoimage to create Images using HTML
|
15
15
|
email: christopher.continanza@gmail.com
|
@@ -61,7 +61,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
61
61
|
version: '0'
|
62
62
|
segments:
|
63
63
|
- 0
|
64
|
-
hash:
|
64
|
+
hash: 1349900022860754797
|
65
65
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
66
66
|
none: false
|
67
67
|
requirements:
|
@@ -70,10 +70,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
70
70
|
version: '0'
|
71
71
|
segments:
|
72
72
|
- 0
|
73
|
-
hash:
|
73
|
+
hash: 1349900022860754797
|
74
74
|
requirements: []
|
75
75
|
rubyforge_project: imgkit
|
76
|
-
rubygems_version: 1.8.
|
76
|
+
rubygems_version: 1.8.23
|
77
77
|
signing_key:
|
78
78
|
specification_version: 3
|
79
79
|
summary: HTML+CSS -> JPG
|