websnap 0.1.3 → 0.1.4
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/README.md +3 -3
- data/Rakefile +1 -1
- data/lib/websnap/websnap.rb +21 -5
- data/spec/spec_helper.rb +1 -1
- data/spec/websnap_spec.rb +1 -1
- data/websnap.gemspec +9 -9
- metadata +47 -75
data/README.md
CHANGED
@@ -20,7 +20,7 @@ Create snapshot of webpage. Uses [wkhtmltoimage](http://github.com/antialize/wkh
|
|
20
20
|
|
21
21
|
# WebSnap.new takes the HTML and any options for wkhtmltoimage
|
22
22
|
# run `wkhtmltoimage -H` for a full list of options
|
23
|
-
snap = WebSnap.new('http://google.com', :format => 'png')
|
23
|
+
snap = WebSnap::Snapper.new('http://google.com', :format => 'png')
|
24
24
|
|
25
25
|
# Get the binary image data
|
26
26
|
png = snap.to_bytes
|
@@ -29,8 +29,8 @@ Create snapshot of webpage. Uses [wkhtmltoimage](http://github.com/antialize/wkh
|
|
29
29
|
file = snap.to_file('/path/to/save/png')
|
30
30
|
|
31
31
|
# WebSnap.new can optionally accept a URL or a File.
|
32
|
-
kit = WebSnap.new('http://google.com')
|
33
|
-
kit = WebSnap.new(File.new('/path/to/html'))
|
32
|
+
kit = WebSnap::Snapper.new('http://google.com')
|
33
|
+
kit = WebSnap::Snapper.new(File.new('/path/to/html'))
|
34
34
|
|
35
35
|
## Attributions
|
36
36
|
|
data/Rakefile
CHANGED
@@ -4,7 +4,7 @@ require 'echoe'
|
|
4
4
|
require 'rake'
|
5
5
|
require 'rspec/core/rake_task'
|
6
6
|
|
7
|
-
Echoe.new("websnap", "0.1.
|
7
|
+
Echoe.new("websnap", "0.1.4") do |p|
|
8
8
|
p.author = "Francis Chong"
|
9
9
|
p.description = "Create snapshot of webpage"
|
10
10
|
p.url = "http://github.com/siuying/websnap"
|
data/lib/websnap/websnap.rb
CHANGED
@@ -22,10 +22,6 @@ module WebSnap
|
|
22
22
|
@stylesheets = []
|
23
23
|
|
24
24
|
default_options = {
|
25
|
-
:'crop-h' => '768',
|
26
|
-
:'crop-w' => '1024',
|
27
|
-
:'crop-x' => '0',
|
28
|
-
:'crop-y' => '0',
|
29
25
|
:'format' => 'jpg'
|
30
26
|
}
|
31
27
|
@options = normalize_options(default_options.merge(options))
|
@@ -56,10 +52,30 @@ module WebSnap
|
|
56
52
|
return result
|
57
53
|
end
|
58
54
|
|
59
|
-
def to_file(path)
|
55
|
+
def to_file(path, image_path=nil)
|
56
|
+
append_stylesheets
|
57
|
+
path = File.expand_path(path)
|
58
|
+
|
59
|
+
@source = Source.new(@source.to_s.gsub(/images\//, image_path)) unless image_path.nil?
|
60
60
|
File.open(path,'w') {|file| file << self.to_bytes}
|
61
61
|
end
|
62
62
|
|
63
|
+
def append_stylesheets
|
64
|
+
raise ImproperSourceError.new('Stylesheets may only be added to an HTML source') if stylesheets.any? && !@source.html?
|
65
|
+
|
66
|
+
stylesheets.each do |stylesheet|
|
67
|
+
if @source.to_s.match(/<\/head>/)
|
68
|
+
@source = Source.new(@source.to_s.gsub(/(<\/head>)/, style_tag_for(stylesheet)+'\1'))
|
69
|
+
else
|
70
|
+
@source.to_s.insert(0, style_tag_for(stylesheet))
|
71
|
+
end
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
def style_tag_for(stylesheet)
|
76
|
+
"<style>#{File.read(stylesheet)}</style>"
|
77
|
+
end
|
78
|
+
|
63
79
|
protected
|
64
80
|
|
65
81
|
def wkhtmltoimage
|
data/spec/spec_helper.rb
CHANGED
data/spec/websnap_spec.rb
CHANGED
@@ -29,7 +29,7 @@ describe WebSnap::Snapper do
|
|
29
29
|
|
30
30
|
it "should provide default options" do
|
31
31
|
websnap = WebSnap::Snapper.new('<h1>Oh Hai</h1>')
|
32
|
-
['--crop-w', '--crop-h', '--
|
32
|
+
['--crop-w', '--crop-h', '--crop-x', '--crop-y', '--format'].each do |option|
|
33
33
|
websnap.options.should have_key(option)
|
34
34
|
end
|
35
35
|
end
|
data/websnap.gemspec
CHANGED
@@ -1,23 +1,23 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
2
|
|
3
3
|
Gem::Specification.new do |s|
|
4
|
-
s.name =
|
5
|
-
s.version = "0.1.
|
4
|
+
s.name = "websnap"
|
5
|
+
s.version = "0.1.4"
|
6
6
|
|
7
7
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
|
8
8
|
s.authors = ["Francis Chong"]
|
9
|
-
s.date =
|
10
|
-
s.description =
|
11
|
-
s.email =
|
9
|
+
s.date = "2011-11-24"
|
10
|
+
s.description = "Create snapshot of webpage"
|
11
|
+
s.email = ""
|
12
12
|
s.executables = ["wkhtmltoimage-linux-i386-0.10.0", "wkhtmltoimage-osx-i386-0.10.0", "wkhtmltoimage-proxy"]
|
13
13
|
s.extra_rdoc_files = ["LICENSE", "README.md", "bin/wkhtmltoimage-linux-i386-0.10.0", "bin/wkhtmltoimage-osx-i386-0.10.0", "bin/wkhtmltoimage-proxy", "lib/websnap.rb", "lib/websnap/source.rb", "lib/websnap/websnap.rb"]
|
14
14
|
s.files = ["LICENSE", "Manifest", "README.md", "Rakefile", "bin/wkhtmltoimage-linux-i386-0.10.0", "bin/wkhtmltoimage-osx-i386-0.10.0", "bin/wkhtmltoimage-proxy", "lib/websnap.rb", "lib/websnap/source.rb", "lib/websnap/websnap.rb", "spec/fixtures/google.html", "spec/source_spec.rb", "spec/spec_helper.rb", "spec/websnap_spec.rb", "websnap.gemspec"]
|
15
|
-
s.homepage =
|
15
|
+
s.homepage = "http://github.com/siuying/websnap"
|
16
16
|
s.rdoc_options = ["--line-numbers", "--inline-source", "--title", "Websnap", "--main", "README.md"]
|
17
17
|
s.require_paths = ["lib"]
|
18
|
-
s.rubyforge_project =
|
19
|
-
s.rubygems_version =
|
20
|
-
s.summary =
|
18
|
+
s.rubyforge_project = "websnap"
|
19
|
+
s.rubygems_version = "1.8.10"
|
20
|
+
s.summary = "Create snapshot of webpage"
|
21
21
|
|
22
22
|
if s.respond_to? :specification_version then
|
23
23
|
s.specification_version = 3
|
metadata
CHANGED
@@ -1,74 +1,57 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: websnap
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.1.4
|
5
5
|
prerelease:
|
6
|
-
segments:
|
7
|
-
- 0
|
8
|
-
- 1
|
9
|
-
- 3
|
10
|
-
version: 0.1.3
|
11
6
|
platform: ruby
|
12
|
-
authors:
|
7
|
+
authors:
|
13
8
|
- Francis Chong
|
14
9
|
autorequire:
|
15
10
|
bindir: bin
|
16
11
|
cert_chain: []
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
dependencies:
|
21
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2011-11-24 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
22
15
|
name: rspec
|
23
|
-
|
24
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: &70282342064160 !ruby/object:Gem::Requirement
|
25
17
|
none: false
|
26
|
-
requirements:
|
27
|
-
- -
|
28
|
-
- !ruby/object:Gem::Version
|
29
|
-
|
30
|
-
segments:
|
31
|
-
- 0
|
32
|
-
version: "0"
|
18
|
+
requirements:
|
19
|
+
- - ! '>='
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0'
|
33
22
|
type: :development
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: echoe
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: *70282342064160
|
25
|
+
- !ruby/object:Gem::Dependency
|
26
|
+
name: echoe
|
27
|
+
requirement: &70282342062620 !ruby/object:Gem::Requirement
|
39
28
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
segments:
|
45
|
-
- 0
|
46
|
-
version: "0"
|
29
|
+
requirements:
|
30
|
+
- - ! '>='
|
31
|
+
- !ruby/object:Gem::Version
|
32
|
+
version: '0'
|
47
33
|
type: :development
|
48
|
-
version_requirements: *id002
|
49
|
-
- !ruby/object:Gem::Dependency
|
50
|
-
name: mocha
|
51
34
|
prerelease: false
|
52
|
-
|
35
|
+
version_requirements: *70282342062620
|
36
|
+
- !ruby/object:Gem::Dependency
|
37
|
+
name: mocha
|
38
|
+
requirement: &70282342083920 !ruby/object:Gem::Requirement
|
53
39
|
none: false
|
54
|
-
requirements:
|
55
|
-
- -
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
|
58
|
-
segments:
|
59
|
-
- 0
|
60
|
-
version: "0"
|
40
|
+
requirements:
|
41
|
+
- - ! '>='
|
42
|
+
- !ruby/object:Gem::Version
|
43
|
+
version: '0'
|
61
44
|
type: :development
|
62
|
-
|
45
|
+
prerelease: false
|
46
|
+
version_requirements: *70282342083920
|
63
47
|
description: Create snapshot of webpage
|
64
|
-
email:
|
65
|
-
executables:
|
48
|
+
email: ''
|
49
|
+
executables:
|
66
50
|
- wkhtmltoimage-linux-i386-0.10.0
|
67
51
|
- wkhtmltoimage-osx-i386-0.10.0
|
68
52
|
- wkhtmltoimage-proxy
|
69
53
|
extensions: []
|
70
|
-
|
71
|
-
extra_rdoc_files:
|
54
|
+
extra_rdoc_files:
|
72
55
|
- LICENSE
|
73
56
|
- README.md
|
74
57
|
- bin/wkhtmltoimage-linux-i386-0.10.0
|
@@ -77,7 +60,7 @@ extra_rdoc_files:
|
|
77
60
|
- lib/websnap.rb
|
78
61
|
- lib/websnap/source.rb
|
79
62
|
- lib/websnap/websnap.rb
|
80
|
-
files:
|
63
|
+
files:
|
81
64
|
- LICENSE
|
82
65
|
- Manifest
|
83
66
|
- README.md
|
@@ -93,45 +76,34 @@ files:
|
|
93
76
|
- spec/spec_helper.rb
|
94
77
|
- spec/websnap_spec.rb
|
95
78
|
- websnap.gemspec
|
96
|
-
has_rdoc: true
|
97
79
|
homepage: http://github.com/siuying/websnap
|
98
80
|
licenses: []
|
99
|
-
|
100
81
|
post_install_message:
|
101
|
-
rdoc_options:
|
82
|
+
rdoc_options:
|
102
83
|
- --line-numbers
|
103
84
|
- --inline-source
|
104
85
|
- --title
|
105
86
|
- Websnap
|
106
87
|
- --main
|
107
88
|
- README.md
|
108
|
-
require_paths:
|
89
|
+
require_paths:
|
109
90
|
- lib
|
110
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
91
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
111
92
|
none: false
|
112
|
-
requirements:
|
113
|
-
- -
|
114
|
-
- !ruby/object:Gem::Version
|
115
|
-
|
116
|
-
|
117
|
-
- 0
|
118
|
-
version: "0"
|
119
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ! '>='
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
120
98
|
none: false
|
121
|
-
requirements:
|
122
|
-
- -
|
123
|
-
- !ruby/object:Gem::Version
|
124
|
-
|
125
|
-
segments:
|
126
|
-
- 1
|
127
|
-
- 2
|
128
|
-
version: "1.2"
|
99
|
+
requirements:
|
100
|
+
- - ! '>='
|
101
|
+
- !ruby/object:Gem::Version
|
102
|
+
version: '1.2'
|
129
103
|
requirements: []
|
130
|
-
|
131
104
|
rubyforge_project: websnap
|
132
|
-
rubygems_version: 1.
|
105
|
+
rubygems_version: 1.8.10
|
133
106
|
signing_key:
|
134
107
|
specification_version: 3
|
135
108
|
summary: Create snapshot of webpage
|
136
109
|
test_files: []
|
137
|
-
|