browshot 1.14.0 → 1.29.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/Gemfile +4 -0
- data/Rakefile +11 -1
- data/lib/browshot.rb +49 -24
- data/test/helper.rb +5 -1
- data/test/test_browshot.rb +66 -66
- metadata +18 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 14957db7ed4c0e0a8e8374a6e437c3aa27c00ea20371aeef6029401bbacaa4dc
|
4
|
+
data.tar.gz: 61eb5c503f0caa0d984ba91061b7d0310fb15116ccde26ac8db4f5215b4ff589
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 2c26bc76264c9ac15e6600d50ce1e8d5ab3e3cb0f1d091d7deadb6b015bff81972397ec3f94229f9fc55d93133da8018add4b400db42d141c88387a704a823fe
|
7
|
+
data.tar.gz: 0472af3d9e3d98fc8074349675a7f8b82934fa5f4eb18f2222e2ed35e548f9ef54aa2293313d02596d99a0c5e7d0552d507da60cc49de8fe14641ca54af46bdd
|
data/Gemfile
CHANGED
data/Rakefile
CHANGED
@@ -5,4 +5,14 @@ Rake::TestTask.new do |t|
|
|
5
5
|
end
|
6
6
|
|
7
7
|
desc "Run tests"
|
8
|
-
task :default => :test
|
8
|
+
task :default => :test
|
9
|
+
|
10
|
+
require 'rdoc/task'
|
11
|
+
Rake::RDocTask.new do |rdoc|
|
12
|
+
version = File.exist?('VERSION') ? File.read('VERSION') : ""
|
13
|
+
|
14
|
+
rdoc.rdoc_dir = 'rdoc'
|
15
|
+
rdoc.title = "browshot #{version}"
|
16
|
+
rdoc.rdoc_files.include('README*')
|
17
|
+
rdoc.rdoc_files.include('lib/**/*.rb')
|
18
|
+
end
|
data/lib/browshot.rb
CHANGED
@@ -5,7 +5,7 @@
|
|
5
5
|
# and this library.
|
6
6
|
#
|
7
7
|
# @author Julien Sobrier (mailto:jsobrier@browshot.com)
|
8
|
-
# Copyright:: Copyright (c)
|
8
|
+
# Copyright:: Copyright (c) 2016 Browshot
|
9
9
|
# License:: Distributes under the same terms as Ruby
|
10
10
|
|
11
11
|
require 'rubygems'
|
@@ -13,6 +13,7 @@ require 'url'
|
|
13
13
|
require 'json'
|
14
14
|
require 'net/http'
|
15
15
|
require 'net/https'
|
16
|
+
require "cgi"
|
16
17
|
|
17
18
|
class Browshot
|
18
19
|
# @!attribute [r]
|
@@ -28,17 +29,17 @@ class Browshot
|
|
28
29
|
# New client
|
29
30
|
#
|
30
31
|
# @param key [String] API key
|
31
|
-
# @param base [String] Base URL for all API requests. You should use the default base provided by the library. Be careful if you decide to use HTTP instead of HTTPS as your API key could be sniffed and your account could be used without your consent.
|
32
32
|
# @param debug [Boolean] Set to true to print debug output to the standard output. false (disabled) by default.
|
33
|
-
|
33
|
+
# @param base [String] Base URL for all API requests. You should use the default base provided by the library. Be careful if you decide to use HTTP instead of HTTPS as your API key could be sniffed and your account could be used without your consent.
|
34
|
+
def initialize(key='', debug=false, base='https://api.browshot.com/api/v1/')
|
34
35
|
@key = key || ''
|
35
|
-
@base = base || '
|
36
|
+
@base = base || 'https://api.browshot.com/api/v1/'
|
36
37
|
@debug = debug || false
|
37
38
|
end
|
38
39
|
|
39
40
|
# Return the API version handled by the library. Note that this library can usually handle new arguments in requests without requiring an update.
|
40
41
|
def api_version()
|
41
|
-
return "1.
|
42
|
+
return "1.29"
|
42
43
|
end
|
43
44
|
|
44
45
|
# Retrieve a screenshot with one call. See {https://browshot.com/api/documentation#simple} for the full list of possible arguments.
|
@@ -87,10 +88,6 @@ class Browshot
|
|
87
88
|
return return_reply('instance/info', { 'id' => id })
|
88
89
|
end
|
89
90
|
|
90
|
-
# Create a private instance. See http://browshot.com/api/documentation#instance_create for the response format.
|
91
|
-
def instance_create(parameters={})
|
92
|
-
return return_reply('instance/create', parameters)
|
93
|
-
end
|
94
91
|
|
95
92
|
# Return the list of browsers. See http://browshot.com/api/documentation#browser_list for the response format.
|
96
93
|
def browser_list()
|
@@ -104,10 +101,6 @@ class Browshot
|
|
104
101
|
return return_reply('browser/info', { 'id' => id })
|
105
102
|
end
|
106
103
|
|
107
|
-
# Create a custom browser. See http://browshot.com/api/documentation#browser_create for the response format.
|
108
|
-
def browser_create(parameters={})
|
109
|
-
return return_reply('browser/create', parameters)
|
110
|
-
end
|
111
104
|
|
112
105
|
# Request a screenshot. See http://browshot.com/api/documentation#screenshot_create for the response format.
|
113
106
|
#
|
@@ -221,11 +214,7 @@ class Browshot
|
|
221
214
|
# Request multiple screenshots. See http://browshot.com/api/documentation#screenshot_multiple for the response format.
|
222
215
|
#
|
223
216
|
# See http://browshot.com/api/documentation#screenshot_multiple for the full list of possible arguments.
|
224
|
-
|
225
|
-
# @param url [String] URL of the website to create a screenshot of
|
226
|
-
def screenshot_multiple(url='', parameters={})
|
227
|
-
parameters[:url] = url
|
228
|
-
|
217
|
+
def screenshot_multiple(parameters={})
|
229
218
|
return return_reply('screenshot/multiple', parameters)
|
230
219
|
end
|
231
220
|
|
@@ -236,7 +225,7 @@ class Browshot
|
|
236
225
|
# @param id [Integer] Instance ID
|
237
226
|
# @param file [String] Path to the text file which contains the list of URLs
|
238
227
|
def batch_create(id=0, file='', parameters={})
|
239
|
-
parameters[:
|
228
|
+
parameters[:instance_id] = id
|
240
229
|
parameters[:file] = file
|
241
230
|
|
242
231
|
return return_post_reply('batch/create', parameters)
|
@@ -253,6 +242,32 @@ class Browshot
|
|
253
242
|
return return_reply('batch/info', parameters)
|
254
243
|
end
|
255
244
|
|
245
|
+
#Crawl a domain. See http://browshot.com/api/documentation#bcrawl_create for the response format.
|
246
|
+
#
|
247
|
+
# See http://browshot.com/api/documentation#crawl_create for the full list of possible arguments.
|
248
|
+
#
|
249
|
+
# @param id [Integer] Instance ID
|
250
|
+
# @param domain [String] Domain to crawl
|
251
|
+
# @param url [String] URL to start with
|
252
|
+
def crawl_create(id=0, file='', parameters={})
|
253
|
+
parameters[:instance_id] = id
|
254
|
+
parameters[:domain] = domain
|
255
|
+
parameters[:url] = url
|
256
|
+
|
257
|
+
return return_reply('crawl/create', parameters)
|
258
|
+
end
|
259
|
+
|
260
|
+
# Get information about a screenshot crawl requested previously. See {https://browshot.com/api/documentation#crawl_info} for the response format.
|
261
|
+
#
|
262
|
+
# See http://browshot.com/api/documentation#crawl_info for the full list of possible arguments.
|
263
|
+
#
|
264
|
+
# @param id [Integer] Crawl ID
|
265
|
+
def crawl_info(id=0, parameters={})
|
266
|
+
parameters[:id] = id
|
267
|
+
|
268
|
+
return return_reply('crawl/info', parameters)
|
269
|
+
end
|
270
|
+
|
256
271
|
|
257
272
|
# Return information about the user account. See {https://browshot.com/api/documentation#account_info} for the response format.
|
258
273
|
def account_info(parameters={})
|
@@ -262,11 +277,21 @@ class Browshot
|
|
262
277
|
private
|
263
278
|
|
264
279
|
def make_url(action='', parameters={})
|
265
|
-
url =
|
280
|
+
url = "#{@base}#{action}?key=#{@key}"
|
266
281
|
|
267
282
|
|
268
283
|
parameters.each_pair do |key, value|
|
269
|
-
|
284
|
+
if (key == 'urls')
|
285
|
+
value.each { |val|
|
286
|
+
url += '&url=' + CGI::escape(val.to_s)
|
287
|
+
}
|
288
|
+
elsif (key == 'instances')
|
289
|
+
value.each { |instance|
|
290
|
+
url += '&instance_id=' + CGI::escape(instance.to_s)
|
291
|
+
}
|
292
|
+
else
|
293
|
+
url += "&#{key}=" + CGI::escape(value.to_s)
|
294
|
+
end
|
270
295
|
end
|
271
296
|
|
272
297
|
puts "#{url}" if (@debug)
|
@@ -302,9 +327,9 @@ class Browshot
|
|
302
327
|
begin
|
303
328
|
url = make_url(action, parameters)
|
304
329
|
|
305
|
-
response = url
|
330
|
+
response = Net::HTTP.get_response(URI(url))
|
306
331
|
|
307
|
-
if (response.
|
332
|
+
if (response.code == 200)
|
308
333
|
puts "Error from #{url}: #{response.code}" if (@debug)
|
309
334
|
end
|
310
335
|
return response.response.body
|
@@ -320,7 +345,7 @@ class Browshot
|
|
320
345
|
parameters.delete(:file)
|
321
346
|
url = make_url(action, parameters)
|
322
347
|
|
323
|
-
response = post(url
|
348
|
+
response = post(url,file)
|
324
349
|
|
325
350
|
case response
|
326
351
|
when Net::HTTPSuccess then
|
data/test/helper.rb
CHANGED
@@ -1,5 +1,7 @@
|
|
1
1
|
require 'rubygems'
|
2
|
+
require 'shoulda'
|
2
3
|
require 'bundler'
|
4
|
+
|
3
5
|
begin
|
4
6
|
Bundler.setup(:default, :development)
|
5
7
|
rescue Bundler::BundlerError => e
|
@@ -7,8 +9,10 @@ rescue Bundler::BundlerError => e
|
|
7
9
|
$stderr.puts "Run `bundle install` to install missing gems"
|
8
10
|
exit e.status_code
|
9
11
|
end
|
12
|
+
|
13
|
+
require 'rubygems'
|
10
14
|
require 'test/unit'
|
11
|
-
require 'shoulda'
|
15
|
+
# require 'shoulda'
|
12
16
|
|
13
17
|
$LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
|
14
18
|
$LOAD_PATH.unshift(File.dirname(__FILE__))
|
data/test/test_browshot.rb
CHANGED
@@ -14,7 +14,7 @@ class TestBrowshot < Test::Unit::TestCase
|
|
14
14
|
end
|
15
15
|
|
16
16
|
should "get the API version" do
|
17
|
-
assert_equal '1.
|
17
|
+
assert_equal '1.29', @browshot.api_version()
|
18
18
|
end
|
19
19
|
|
20
20
|
should "get a screenshot with the simple method" do
|
@@ -32,17 +32,17 @@ class TestBrowshot < Test::Unit::TestCase
|
|
32
32
|
should "get the list of instances available" do
|
33
33
|
# assert_equal 10, @calculator.product(2, 5)
|
34
34
|
instances = @browshot.instance_list()
|
35
|
-
assert_equal false, instances['free'].nil?,
|
36
|
-
assert_equal true, instances['free'].kind_of?(Array),
|
37
|
-
assert_equal true, instances['free'].length > 0,
|
35
|
+
assert_equal false, instances['free'].nil?, "List of free instances is missing"
|
36
|
+
assert_equal true, instances['free'].kind_of?(Array), "List of free instances is incorrect"
|
37
|
+
assert_equal true, instances['free'].length > 0, "There should be at least 1 free instance"
|
38
38
|
|
39
|
-
assert_equal false, instances['shared'].nil?,
|
40
|
-
assert_equal true, instances['shared'].kind_of?(Array),
|
41
|
-
assert_equal true, instances['shared'].length > 0,
|
39
|
+
assert_equal false, instances['shared'].nil?, "List of shared instances is missing"
|
40
|
+
assert_equal true, instances['shared'].kind_of?(Array), "List of shared instances is incorrect"
|
41
|
+
assert_equal true, instances['shared'].length > 0, "There should be at least 1 shared instance"
|
42
42
|
|
43
|
-
assert_equal false, instances['private'].nil?,
|
44
|
-
assert_equal true, instances['private'].kind_of?(Array),
|
45
|
-
assert_equal true, instances['private'].length ==
|
43
|
+
assert_equal false, instances['private'].nil?, "List of private instances is missing"
|
44
|
+
assert_equal true, instances['private'].kind_of?(Array), "List of private instances is incorrect"
|
45
|
+
assert_equal true, instances['private'].length == 1, "There should be at least no private instance"
|
46
46
|
|
47
47
|
free = instances['free'][0]
|
48
48
|
assert_equal false, free['id'].nil?, "Missing instance ID"
|
@@ -50,14 +50,14 @@ class TestBrowshot < Test::Unit::TestCase
|
|
50
50
|
assert_equal false, free['height'].nil?, "Missing instance screen height"
|
51
51
|
assert_equal false, free['load'].nil?, "Missing instance load"
|
52
52
|
assert_equal false, free['browser'].nil?, "Missing instance browser"
|
53
|
-
assert_equal false, free['browser']['id'].nil?,
|
54
|
-
assert_equal false, free['browser']['name'].nil?,
|
55
|
-
assert_equal false, free['browser']['javascript'].nil?,
|
56
|
-
assert_equal false, free['browser']['flash'].nil?,
|
57
|
-
assert_equal false, free['browser']['mobile'].nil?,
|
53
|
+
assert_equal false, free['browser']['id'].nil?, "Missing instance browser ID"
|
54
|
+
assert_equal false, free['browser']['name'].nil?, "Missing instance browser name"
|
55
|
+
assert_equal false, free['browser']['javascript'].nil?, "Missing instance browser javascript capability"
|
56
|
+
assert_equal false, free['browser']['flash'].nil?, "Missing instance browser flash capability"
|
57
|
+
assert_equal false, free['browser']['mobile'].nil?, "Missing instance browser mobile capability"
|
58
58
|
assert_equal false, free['type'].nil?, "Missing instance type"
|
59
|
-
assert_equal false, free['screenshot_cost'].nil?,
|
60
|
-
assert_equal 0, free['screenshot_cost'].to_i,
|
59
|
+
assert_equal false, free['screenshot_cost'].nil?, "Missing instance cost"
|
60
|
+
assert_equal 0, free['screenshot_cost'].to_i, "Cost should be 0"
|
61
61
|
end
|
62
62
|
|
63
63
|
should "get an instance information" do
|
@@ -65,17 +65,17 @@ class TestBrowshot < Test::Unit::TestCase
|
|
65
65
|
free = instances['free'][0]
|
66
66
|
|
67
67
|
instance = @browshot.instance_info(free['id'])
|
68
|
-
assert_equal free['id'], instance['id'],
|
69
|
-
assert_equal free['width'], instance['width'],
|
70
|
-
assert_equal free['height'], instance['height'],
|
71
|
-
# assert_equal free['load'], instance['load'],
|
72
|
-
assert_equal free['browser']['id'], instance['browser']['id'],
|
73
|
-
assert_equal free['browser']['name'], instance['browser']['name'],
|
68
|
+
assert_equal free['id'], instance['id'], "Mismatch instance ID"
|
69
|
+
assert_equal free['width'], instance['width'], "Mismatch instance screen width"
|
70
|
+
assert_equal free['height'], instance['height'], "Mismatch instance screen height"
|
71
|
+
# assert_equal free['load'], instance['load'], "Mismatch instance load"
|
72
|
+
assert_equal free['browser']['id'], instance['browser']['id'], "Mismatch instance browser ID"
|
73
|
+
assert_equal free['browser']['name'], instance['browser']['name'], "Mismatch instance browser name"
|
74
74
|
assert_equal free['browser']['javascript'], instance['browser']['javascript'],"Mismatch instance browser javascript capability"
|
75
|
-
assert_equal free['browser']['flash'], instance['browser']['flash'],
|
76
|
-
assert_equal free['browser']['mobile'], instance['browser']['mobile'],
|
77
|
-
assert_equal free['type'], instance['type'],
|
78
|
-
assert_equal free['screenshot_cost'], instance['screenshot_cost'],
|
75
|
+
assert_equal free['browser']['flash'], instance['browser']['flash'], "Mismatch instance browser flash capability"
|
76
|
+
assert_equal free['browser']['mobile'].to_i, instance['browser']['mobile'].to_i, "Mismatch instance browser mobile capability"
|
77
|
+
assert_equal free['type'], instance['type'], "Mismatch instance type"
|
78
|
+
assert_equal free['screenshot_cost'].to_i, instance['screenshot_cost'].to_i, "Mismatch instance cost"
|
79
79
|
end
|
80
80
|
|
81
81
|
should "send an error for the wrong instance ID" do
|
@@ -85,29 +85,29 @@ class TestBrowshot < Test::Unit::TestCase
|
|
85
85
|
assert_equal false, instance['status'].nil?, "Instance should not be found"
|
86
86
|
end
|
87
87
|
|
88
|
-
|
89
|
-
|
90
|
-
|
91
|
-
|
92
|
-
|
93
|
-
|
94
|
-
|
95
|
-
|
96
|
-
|
97
|
-
|
88
|
+
# should "send an errror when creating a instance with ivalid arguments" do
|
89
|
+
# instance = @browshot.instance_create({'width' => 3000})
|
90
|
+
# assert_equal false, instance['error'].nil?, "Instance width should be too large"
|
91
|
+
#
|
92
|
+
# instance = @browshot.instance_create({'height' => 3000})
|
93
|
+
# assert_equal false, instance['error'].nil?, "Instance width should be too large"
|
94
|
+
#
|
95
|
+
# instance = @browshot.instance_create({'browser_id' => -1})
|
96
|
+
# assert_equal false, instance['error'].nil?, "Instance browser ID should be invalid"
|
97
|
+
# end
|
98
98
|
|
99
|
-
|
100
|
-
# Option disabled for most accounts
|
101
|
-
|
102
|
-
|
103
|
-
|
104
|
-
# assert_equal false, instance['id'].nil?, "Instance ID should be present"
|
105
|
-
# assert_equal false, instance['width'].nil?, "Instance screen width should be present"
|
106
|
-
# assert_equal false, instance['height'].nil?, "Instance screen height should be present"
|
107
|
-
# assert_equal 1, instance['active'].to_i, "Instance should be active"
|
108
|
-
# assert_equal false, instance['browser'].nil?, "Instance browser should be present"
|
109
|
-
# assert_equal false, instance['browser']['id'].nil?, "Instance browser ID should be present"
|
110
|
-
|
99
|
+
# should "create a new instance" do
|
100
|
+
# # Option disabled for most accounts
|
101
|
+
# instance = @browshot.instance_create()
|
102
|
+
#
|
103
|
+
# assert_equal false, instance['error'].nil?, "Instance cannot be created for this account"
|
104
|
+
# # assert_equal false, instance['id'].nil?, "Instance ID should be present"
|
105
|
+
# # assert_equal false, instance['width'].nil?, "Instance screen width should be present"
|
106
|
+
# # assert_equal false, instance['height'].nil?, "Instance screen height should be present"
|
107
|
+
# # assert_equal 1, instance['active'].to_i, "Instance should be active"
|
108
|
+
# # assert_equal false, instance['browser'].nil?, "Instance browser should be present"
|
109
|
+
# # assert_equal false, instance['browser']['id'].nil?, "Instance browser ID should be present"
|
110
|
+
# end
|
111
111
|
|
112
112
|
should "get the list of browsers" do
|
113
113
|
browsers = @browshot.browser_list()
|
@@ -135,23 +135,23 @@ class TestBrowshot < Test::Unit::TestCase
|
|
135
135
|
assert_equal false, browser['flash'].nil?, "Browser flash capability should be present"
|
136
136
|
end
|
137
137
|
|
138
|
-
|
139
|
-
|
140
|
-
|
141
|
-
|
142
|
-
|
143
|
-
# assert_equal false, browser['name'].nil?, "Browser name should be present"
|
144
|
-
# assert_equal false, browser['user_agent'].nil?, "Browser user_agent should be present"
|
145
|
-
# assert_equal false, browser['appname'].nil?, "Browser appname should be present"
|
146
|
-
# assert_equal false, browser['vendorsub'].nil?, "Browser vendorsub should be present"
|
147
|
-
# assert_equal false, browser['appcodename'].nil?, "Browser appcodename should be present"
|
148
|
-
# assert_equal false, browser['platform'].nil?, "Browser platform should be present"
|
149
|
-
# assert_equal false, browser['vendor'].nil?, "Browser vendor should be present"
|
150
|
-
# assert_equal false, browser['appversion'].nil?, "Browser appversion should be present"
|
151
|
-
# assert_equal false, browser['javascript'].nil?, "Browser javascript capability should be present"
|
152
|
-
# assert_equal false, browser['mobile'].nil?, "Browser mobile capability should be present"
|
153
|
-
# assert_equal false, browser['flash'].nil?, "Browser flash capability should be present"
|
154
|
-
|
138
|
+
# should "create a browser" do
|
139
|
+
# # Option disabled for most accounts
|
140
|
+
# browser = @browshot.browser_create({'mobile' => 1, 'flash' => 1, 'user_agent' => 'test'})
|
141
|
+
#
|
142
|
+
# assert_equal false, browser['error'].nil?, "Browser cannot be created for this account"
|
143
|
+
# # assert_equal false, browser['name'].nil?, "Browser name should be present"
|
144
|
+
# # assert_equal false, browser['user_agent'].nil?, "Browser user_agent should be present"
|
145
|
+
# # assert_equal false, browser['appname'].nil?, "Browser appname should be present"
|
146
|
+
# # assert_equal false, browser['vendorsub'].nil?, "Browser vendorsub should be present"
|
147
|
+
# # assert_equal false, browser['appcodename'].nil?, "Browser appcodename should be present"
|
148
|
+
# # assert_equal false, browser['platform'].nil?, "Browser platform should be present"
|
149
|
+
# # assert_equal false, browser['vendor'].nil?, "Browser vendor should be present"
|
150
|
+
# # assert_equal false, browser['appversion'].nil?, "Browser appversion should be present"
|
151
|
+
# # assert_equal false, browser['javascript'].nil?, "Browser javascript capability should be present"
|
152
|
+
# # assert_equal false, browser['mobile'].nil?, "Browser mobile capability should be present"
|
153
|
+
# # assert_equal false, browser['flash'].nil?, "Browser flash capability should be present"
|
154
|
+
# end
|
155
155
|
|
156
156
|
should "fail to create screenshot" do
|
157
157
|
screenshot = @browshot.screenshot_create()
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: browshot
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.
|
4
|
+
version: 1.29.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Julien Sobrier
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-11-22 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: json
|
@@ -94,6 +94,20 @@ dependencies:
|
|
94
94
|
- - ">="
|
95
95
|
- !ruby/object:Gem::Version
|
96
96
|
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: test-unit
|
99
|
+
requirement: !ruby/object:Gem::Requirement
|
100
|
+
requirements:
|
101
|
+
- - ">="
|
102
|
+
- !ruby/object:Gem::Version
|
103
|
+
version: '0'
|
104
|
+
type: :development
|
105
|
+
prerelease: false
|
106
|
+
version_requirements: !ruby/object:Gem::Requirement
|
107
|
+
requirements:
|
108
|
+
- - ">="
|
109
|
+
- !ruby/object:Gem::Version
|
110
|
+
version: '0'
|
97
111
|
description: Library for the Browshot API
|
98
112
|
email: julien@sobrier.net
|
99
113
|
executables: []
|
@@ -125,11 +139,10 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
125
139
|
version: '0'
|
126
140
|
requirements: []
|
127
141
|
rubyforge_project:
|
128
|
-
rubygems_version: 2.
|
142
|
+
rubygems_version: 2.7.6.3
|
129
143
|
signing_key:
|
130
144
|
specification_version: 4
|
131
|
-
summary: Take website
|
145
|
+
summary: Take website screenshots with Browshot
|
132
146
|
test_files:
|
133
147
|
- test/helper.rb
|
134
148
|
- test/test_browshot.rb
|
135
|
-
has_rdoc:
|