scrapinghub-client 0.0.1
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.
- checksums.yaml +7 -0
- data/.gitignore +1 -0
- data/.rspec +3 -0
- data/.travis.yml +6 -0
- data/Gemfile +5 -0
- data/LICENSE +21 -0
- data/README.md +46 -0
- data/Rakefile +22 -0
- data/lib/scrapinghub-client.rb +3 -0
- data/lib/scrapinghub/jobs.rb +175 -0
- data/lib/scrapinghub/version.rb +3 -0
- data/scrapinghub.gemspec +26 -0
- data/spec/fixtures/vcr_cassettes/jobs/delete/bad_auth.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/delete/job/invalid.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/delete/job/multiple.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/delete/job/single.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/delete/project/invalid.yml +39 -0
- data/spec/fixtures/vcr_cassettes/jobs/delete/project/valid.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/bad_auth.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/count/3.yml +53 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/has_tag/invalid.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/has_tag/multiple.yml +53 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/has_tag/single.yml +48 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/job/invalid.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/job/multiple.yml +48 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/job/single.yml +43 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/lacks_tag/invalid.yml +81 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/lacks_tag/multiple.yml +67 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/lacks_tag/single.yml +72 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/project/invalid.yml +39 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/project/valid.yml +81 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/spider/invalid.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/spider/valid.yml +62 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/state/finished.yml +81 -0
- data/spec/fixtures/vcr_cassettes/jobs/list/state/pending.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/schedule/bad_auth.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/schedule/project/invalid.yml +39 -0
- data/spec/fixtures/vcr_cassettes/jobs/schedule/spider/add_tag.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/schedule/spider/already-running.yml +39 -0
- data/spec/fixtures/vcr_cassettes/jobs/schedule/spider/extra.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/schedule/spider/minimal.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/schedule/spider/priority.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/stop/bad_auth.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/stop/job/already-stopped.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/stop/job/invalid.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/stop/job/valid.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/stop/project/invalid.yml +39 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/bad_auth.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/has_tag.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/job.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/lacks_tag.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/no-query-filters.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/no-update-params.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/project/invalid.yml +39 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/spider.yml +38 -0
- data/spec/fixtures/vcr_cassettes/jobs/update/state.yml +38 -0
- data/spec/integration/jobs_spec.rb +567 -0
- data/spec/spec_helper.rb +22 -0
- data/spec/unit/jobs_spec.rb +188 -0
- data/spec/unit/scrapinghub_spec.rb +8 -0
- metadata +200 -0
data/spec/spec_helper.rb
ADDED
@@ -0,0 +1,22 @@
|
|
1
|
+
if ENV['CODECLIMATE_REPO_TOKEN']
|
2
|
+
require "codeclimate-test-reporter"
|
3
|
+
CodeClimate::TestReporter.start
|
4
|
+
end
|
5
|
+
require "rspec"
|
6
|
+
require "webmock/rspec"
|
7
|
+
require "vcr"
|
8
|
+
require "scrapinghub-client"
|
9
|
+
|
10
|
+
RSpec::Expectations.configuration.warn_about_potential_false_positives = false
|
11
|
+
|
12
|
+
VCR.configure do |config|
|
13
|
+
config.cassette_library_dir = "spec/fixtures/vcr_cassettes"
|
14
|
+
config.configure_rspec_metadata!
|
15
|
+
config.hook_into :webmock
|
16
|
+
# allow code coverage reports to be sent to Code Climate
|
17
|
+
config.ignore_hosts "codeclimate.com"
|
18
|
+
end
|
19
|
+
|
20
|
+
RSpec.configure do |c|
|
21
|
+
c.extend VCR::RSpec::Macros
|
22
|
+
end
|
@@ -0,0 +1,188 @@
|
|
1
|
+
require File.dirname(__FILE__) + "/../spec_helper"
|
2
|
+
require "rspec/autorun"
|
3
|
+
|
4
|
+
shared_examples "disallows_unknown_keys" do
|
5
|
+
it "disallows unknown keys" do
|
6
|
+
expect{jobs.send(action, args.merge(foo: "blah"))}.to raise_error ParamContractError
|
7
|
+
end
|
8
|
+
end
|
9
|
+
|
10
|
+
describe Scrapinghub::Jobs do
|
11
|
+
let(:jobs) { Scrapinghub::Jobs.new(api_key: 'XXX') }
|
12
|
+
|
13
|
+
context "initialization" do
|
14
|
+
context "api_key" do
|
15
|
+
it "is required" do
|
16
|
+
expect{Scrapinghub::Jobs.new}.to raise_error ParamContractError
|
17
|
+
expect{Scrapinghub::Jobs.new({})}.to raise_error ParamContractError
|
18
|
+
end
|
19
|
+
|
20
|
+
it "must be a String" do
|
21
|
+
expect{Scrapinghub::Jobs.new(api_key: nil)}.to raise_error ParamContractError
|
22
|
+
expect{Scrapinghub::Jobs.new(api_key: 1)}.to raise_error ParamContractError
|
23
|
+
expect(Scrapinghub::Jobs.new(api_key: "foo")).to be_a Scrapinghub::Jobs
|
24
|
+
end
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
context "#list" do
|
29
|
+
let(:action) { :list }
|
30
|
+
let(:args) { {project: 1} }
|
31
|
+
|
32
|
+
it_behaves_like "disallows_unknown_keys"
|
33
|
+
|
34
|
+
context "valid arguments" do
|
35
|
+
it "passes argument validation" do
|
36
|
+
expect{jobs.send(action, args)}.not_to raise_error ParamContractError
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
context "project" do
|
41
|
+
it "is required" do
|
42
|
+
expect{jobs.send(action, args.reject{|k,_| k == :project})}.to raise_error ParamContractError
|
43
|
+
end
|
44
|
+
|
45
|
+
it "must be a natural number" do
|
46
|
+
expect{jobs.send(action, args.merge(project: nil))}.to raise_error ParamContractError
|
47
|
+
expect{jobs.send(action, args.merge(project: "foo"))}.to raise_error ParamContractError
|
48
|
+
expect{jobs.send(action, args.merge(project: 1.234))}.to raise_error ParamContractError
|
49
|
+
expect{jobs.send(action, args.merge(project: -1))}.to raise_error ParamContractError
|
50
|
+
expect{jobs.send(action, args.merge(project: 1))}.not_to raise_error ParamContractError
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
context "job" do
|
55
|
+
it "must be a String or Array[String]" do
|
56
|
+
expect{jobs.send(action, args.merge(job: nil))}.to raise_error ParamContractError
|
57
|
+
expect{jobs.send(action, args.merge(job: 1.234))}.to raise_error ParamContractError
|
58
|
+
expect{jobs.send(action, args.merge(job: -1))}.to raise_error ParamContractError
|
59
|
+
expect{jobs.send(action, args.merge(job: 1))}.to raise_error ParamContractError
|
60
|
+
expect{jobs.send(action, args.merge(job: "foo"))}.not_to raise_error ParamContractError
|
61
|
+
expect{jobs.send(action, args.merge(job: ["foo", "bar"]))}.not_to raise_error ParamContractError
|
62
|
+
end
|
63
|
+
end
|
64
|
+
|
65
|
+
context "spider" do
|
66
|
+
it "must be a String" do
|
67
|
+
expect{jobs.send(action, args.merge(spider: nil))}.to raise_error ParamContractError
|
68
|
+
expect{jobs.send(action, args.merge(spider: 1.234))}.to raise_error ParamContractError
|
69
|
+
expect{jobs.send(action, args.merge(spider: -1))}.to raise_error ParamContractError
|
70
|
+
expect{jobs.send(action, args.merge(spider: 1))}.to raise_error ParamContractError
|
71
|
+
expect{jobs.send(action, args.merge(spider: "foo"))}.not_to raise_error ParamContractError
|
72
|
+
end
|
73
|
+
end
|
74
|
+
|
75
|
+
context "state" do
|
76
|
+
it "must be 'pending', 'running', or 'finished'" do
|
77
|
+
expect{jobs.send(action, args.merge(state: nil))}.to raise_error ParamContractError
|
78
|
+
expect{jobs.send(action, args.merge(state: []))}.to raise_error ParamContractError
|
79
|
+
expect{jobs.send(action, args.merge(state: "foo"))}.to raise_error ParamContractError
|
80
|
+
expect{jobs.send(action, args.merge(state: "pending"))}.not_to raise_error ParamContractError
|
81
|
+
expect{jobs.send(action, args.merge(state: "running"))}.not_to raise_error ParamContractError
|
82
|
+
expect{jobs.send(action, args.merge(state: "finished"))}.not_to raise_error ParamContractError
|
83
|
+
end
|
84
|
+
end
|
85
|
+
|
86
|
+
context "has_tag" do
|
87
|
+
it "must be a String or Array[String]" do
|
88
|
+
expect{jobs.send(action, args.merge(has_tag: nil))}.to raise_error ParamContractError
|
89
|
+
expect{jobs.send(action, args.merge(has_tag: 1.234))}.to raise_error ParamContractError
|
90
|
+
expect{jobs.send(action, args.merge(has_tag: -1))}.to raise_error ParamContractError
|
91
|
+
expect{jobs.send(action, args.merge(has_tag: 1))}.to raise_error ParamContractError
|
92
|
+
expect{jobs.send(action, args.merge(has_tag: [1,2,3]))}.to raise_error ParamContractError
|
93
|
+
expect{jobs.send(action, args.merge(has_tag: "foo"))}.not_to raise_error ParamContractError
|
94
|
+
expect{jobs.send(action, args.merge(has_tag: ["foo", "bar"]))}.not_to raise_error ParamContractError
|
95
|
+
end
|
96
|
+
end
|
97
|
+
|
98
|
+
context "lacks_tag" do
|
99
|
+
it "must be a String or Array[String]" do
|
100
|
+
expect{jobs.send(action, args.merge(lacks_tag: nil))}.to raise_error ParamContractError
|
101
|
+
expect{jobs.send(action, args.merge(lacks_tag: 1.234))}.to raise_error ParamContractError
|
102
|
+
expect{jobs.send(action, args.merge(lacks_tag: -1))}.to raise_error ParamContractError
|
103
|
+
expect{jobs.send(action, args.merge(lacks_tag: 1))}.to raise_error ParamContractError
|
104
|
+
expect{jobs.send(action, args.merge(lacks_tag: [1,2,3]))}.to raise_error ParamContractError
|
105
|
+
expect{jobs.send(action, args.merge(lacks_tag: "foo"))}.not_to raise_error ParamContractError
|
106
|
+
expect{jobs.send(action, args.merge(lacks_tag: ["foo", "bar"]))}.not_to raise_error ParamContractError
|
107
|
+
end
|
108
|
+
end
|
109
|
+
end
|
110
|
+
|
111
|
+
context "#schedule" do
|
112
|
+
let(:action) { :schedule }
|
113
|
+
let(:args) { {project: 1, spider: "foo"} }
|
114
|
+
|
115
|
+
it_behaves_like "disallows_unknown_keys"
|
116
|
+
|
117
|
+
context "valid arguments" do
|
118
|
+
it "passes argument validation" do
|
119
|
+
expect{jobs.send(action, args)}.not_to raise_error ParamContractError
|
120
|
+
end
|
121
|
+
end
|
122
|
+
|
123
|
+
context "project" do
|
124
|
+
it "is required" do
|
125
|
+
expect{jobs.send(action, args.reject{|k,_| k == :project})}.to raise_error ParamContractError
|
126
|
+
end
|
127
|
+
|
128
|
+
it "must be a natural number" do
|
129
|
+
expect{jobs.send(action, args.merge(project: nil))}.to raise_error ParamContractError
|
130
|
+
expect{jobs.send(action, args.merge(project: "foo"))}.to raise_error ParamContractError
|
131
|
+
expect{jobs.send(action, args.merge(project: 1.234))}.to raise_error ParamContractError
|
132
|
+
expect{jobs.send(action, args.merge(project: -1))}.to raise_error ParamContractError
|
133
|
+
expect{jobs.send(action, args.merge(project: 1))}.not_to raise_error ParamContractError
|
134
|
+
end
|
135
|
+
end
|
136
|
+
|
137
|
+
context "spider" do
|
138
|
+
it "is required" do
|
139
|
+
expect{jobs.send(action, args.reject{|k,_| k == :spider})}.to raise_error ParamContractError
|
140
|
+
end
|
141
|
+
|
142
|
+
it "must be a String" do
|
143
|
+
expect{jobs.send(action, args.merge(spider: nil))}.to raise_error ParamContractError
|
144
|
+
expect{jobs.send(action, args.merge(spider: 1.234))}.to raise_error ParamContractError
|
145
|
+
expect{jobs.send(action, args.merge(spider: -1))}.to raise_error ParamContractError
|
146
|
+
expect{jobs.send(action, args.merge(spider: 1))}.to raise_error ParamContractError
|
147
|
+
expect{jobs.send(action, args.merge(spider: "foo"))}.not_to raise_error ParamContractError
|
148
|
+
end
|
149
|
+
end
|
150
|
+
|
151
|
+
context "add_tag" do
|
152
|
+
it "must be a String or Array[String]" do
|
153
|
+
expect{jobs.send(action, args.merge(add_tag: nil))}.to raise_error ParamContractError
|
154
|
+
expect{jobs.send(action, args.merge(add_tag: 1.234))}.to raise_error ParamContractError
|
155
|
+
expect{jobs.send(action, args.merge(add_tag: -1))}.to raise_error ParamContractError
|
156
|
+
expect{jobs.send(action, args.merge(add_tag: 1))}.to raise_error ParamContractError
|
157
|
+
expect{jobs.send(action, args.merge(add_tag: [1,2,3]))}.to raise_error ParamContractError
|
158
|
+
expect{jobs.send(action, args.merge(add_tag: "foo"))}.not_to raise_error ParamContractError
|
159
|
+
expect{jobs.send(action, args.merge(add_tag: ["foo", "bar"]))}.not_to raise_error ParamContractError
|
160
|
+
end
|
161
|
+
end
|
162
|
+
|
163
|
+
context "priority" do
|
164
|
+
it "must be 0, 1, 2, 3, or 4" do
|
165
|
+
expect{jobs.send(action, args.merge(priority: nil))}.to raise_error ParamContractError
|
166
|
+
expect{jobs.send(action, args.merge(priority: 1.234))}.to raise_error ParamContractError
|
167
|
+
expect{jobs.send(action, args.merge(priority: -1))}.to raise_error ParamContractError
|
168
|
+
expect{jobs.send(action, args.merge(priority: 5))}.to raise_error ParamContractError
|
169
|
+
expect{jobs.send(action, args.merge(priority: "foo"))}.to raise_error ParamContractError
|
170
|
+
expect{jobs.send(action, args.merge(priority: []))}.to raise_error ParamContractError
|
171
|
+
end
|
172
|
+
end
|
173
|
+
|
174
|
+
context "extra" do
|
175
|
+
it "must be a HashOf[Symbol => String]" do
|
176
|
+
expect{jobs.send(action, args.merge(extra: nil))}.to raise_error ParamContractError
|
177
|
+
expect{jobs.send(action, args.merge(extra: 1.234))}.to raise_error ParamContractError
|
178
|
+
expect{jobs.send(action, args.merge(extra: -1))}.to raise_error ParamContractError
|
179
|
+
expect{jobs.send(action, args.merge(extra: 5))}.to raise_error ParamContractError
|
180
|
+
expect{jobs.send(action, args.merge(extra: "foo"))}.to raise_error ParamContractError
|
181
|
+
expect{jobs.send(action, args.merge(extra: []))}.to raise_error ParamContractError
|
182
|
+
expect{jobs.send(action, args.merge(extra: {"foo" => "bar"}))}.to raise_error ParamContractError
|
183
|
+
expect{jobs.send(action, args.merge(extra: {foo: 1}))}.to raise_error ParamContractError
|
184
|
+
end
|
185
|
+
end
|
186
|
+
end
|
187
|
+
|
188
|
+
end
|
metadata
ADDED
@@ -0,0 +1,200 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: scrapinghub-client
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.1
|
5
|
+
platform: ruby
|
6
|
+
authors:
|
7
|
+
- Abe Voelker
|
8
|
+
autorequire:
|
9
|
+
bindir: bin
|
10
|
+
cert_chain: []
|
11
|
+
date: 2015-07-30 00:00:00.000000000 Z
|
12
|
+
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: contracts
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - "~>"
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '0.11'
|
20
|
+
type: :runtime
|
21
|
+
prerelease: false
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
23
|
+
requirements:
|
24
|
+
- - "~>"
|
25
|
+
- !ruby/object:Gem::Version
|
26
|
+
version: '0.11'
|
27
|
+
- !ruby/object:Gem::Dependency
|
28
|
+
name: kleisli
|
29
|
+
requirement: !ruby/object:Gem::Requirement
|
30
|
+
requirements:
|
31
|
+
- - ">="
|
32
|
+
- !ruby/object:Gem::Version
|
33
|
+
version: '0'
|
34
|
+
type: :runtime
|
35
|
+
prerelease: false
|
36
|
+
version_requirements: !ruby/object:Gem::Requirement
|
37
|
+
requirements:
|
38
|
+
- - ">="
|
39
|
+
- !ruby/object:Gem::Version
|
40
|
+
version: '0'
|
41
|
+
- !ruby/object:Gem::Dependency
|
42
|
+
name: httparty
|
43
|
+
requirement: !ruby/object:Gem::Requirement
|
44
|
+
requirements:
|
45
|
+
- - ">="
|
46
|
+
- !ruby/object:Gem::Version
|
47
|
+
version: '0'
|
48
|
+
type: :runtime
|
49
|
+
prerelease: false
|
50
|
+
version_requirements: !ruby/object:Gem::Requirement
|
51
|
+
requirements:
|
52
|
+
- - ">="
|
53
|
+
- !ruby/object:Gem::Version
|
54
|
+
version: '0'
|
55
|
+
- !ruby/object:Gem::Dependency
|
56
|
+
name: rake
|
57
|
+
requirement: !ruby/object:Gem::Requirement
|
58
|
+
requirements:
|
59
|
+
- - ">="
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '0'
|
62
|
+
type: :development
|
63
|
+
prerelease: false
|
64
|
+
version_requirements: !ruby/object:Gem::Requirement
|
65
|
+
requirements:
|
66
|
+
- - ">="
|
67
|
+
- !ruby/object:Gem::Version
|
68
|
+
version: '0'
|
69
|
+
- !ruby/object:Gem::Dependency
|
70
|
+
name: rspec
|
71
|
+
requirement: !ruby/object:Gem::Requirement
|
72
|
+
requirements:
|
73
|
+
- - ">="
|
74
|
+
- !ruby/object:Gem::Version
|
75
|
+
version: '0'
|
76
|
+
type: :development
|
77
|
+
prerelease: false
|
78
|
+
version_requirements: !ruby/object:Gem::Requirement
|
79
|
+
requirements:
|
80
|
+
- - ">="
|
81
|
+
- !ruby/object:Gem::Version
|
82
|
+
version: '0'
|
83
|
+
- !ruby/object:Gem::Dependency
|
84
|
+
name: webmock
|
85
|
+
requirement: !ruby/object:Gem::Requirement
|
86
|
+
requirements:
|
87
|
+
- - ">="
|
88
|
+
- !ruby/object:Gem::Version
|
89
|
+
version: '0'
|
90
|
+
type: :development
|
91
|
+
prerelease: false
|
92
|
+
version_requirements: !ruby/object:Gem::Requirement
|
93
|
+
requirements:
|
94
|
+
- - ">="
|
95
|
+
- !ruby/object:Gem::Version
|
96
|
+
version: '0'
|
97
|
+
- !ruby/object:Gem::Dependency
|
98
|
+
name: vcr
|
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'
|
111
|
+
description: Ruby client for Scrapinghub API
|
112
|
+
email: abe@abevoelker.com
|
113
|
+
executables: []
|
114
|
+
extensions: []
|
115
|
+
extra_rdoc_files: []
|
116
|
+
files:
|
117
|
+
- ".gitignore"
|
118
|
+
- ".rspec"
|
119
|
+
- ".travis.yml"
|
120
|
+
- Gemfile
|
121
|
+
- LICENSE
|
122
|
+
- README.md
|
123
|
+
- Rakefile
|
124
|
+
- lib/scrapinghub-client.rb
|
125
|
+
- lib/scrapinghub/jobs.rb
|
126
|
+
- lib/scrapinghub/version.rb
|
127
|
+
- scrapinghub.gemspec
|
128
|
+
- spec/fixtures/vcr_cassettes/jobs/delete/bad_auth.yml
|
129
|
+
- spec/fixtures/vcr_cassettes/jobs/delete/job/invalid.yml
|
130
|
+
- spec/fixtures/vcr_cassettes/jobs/delete/job/multiple.yml
|
131
|
+
- spec/fixtures/vcr_cassettes/jobs/delete/job/single.yml
|
132
|
+
- spec/fixtures/vcr_cassettes/jobs/delete/project/invalid.yml
|
133
|
+
- spec/fixtures/vcr_cassettes/jobs/delete/project/valid.yml
|
134
|
+
- spec/fixtures/vcr_cassettes/jobs/list/bad_auth.yml
|
135
|
+
- spec/fixtures/vcr_cassettes/jobs/list/count/3.yml
|
136
|
+
- spec/fixtures/vcr_cassettes/jobs/list/has_tag/invalid.yml
|
137
|
+
- spec/fixtures/vcr_cassettes/jobs/list/has_tag/multiple.yml
|
138
|
+
- spec/fixtures/vcr_cassettes/jobs/list/has_tag/single.yml
|
139
|
+
- spec/fixtures/vcr_cassettes/jobs/list/job/invalid.yml
|
140
|
+
- spec/fixtures/vcr_cassettes/jobs/list/job/multiple.yml
|
141
|
+
- spec/fixtures/vcr_cassettes/jobs/list/job/single.yml
|
142
|
+
- spec/fixtures/vcr_cassettes/jobs/list/lacks_tag/invalid.yml
|
143
|
+
- spec/fixtures/vcr_cassettes/jobs/list/lacks_tag/multiple.yml
|
144
|
+
- spec/fixtures/vcr_cassettes/jobs/list/lacks_tag/single.yml
|
145
|
+
- spec/fixtures/vcr_cassettes/jobs/list/project/invalid.yml
|
146
|
+
- spec/fixtures/vcr_cassettes/jobs/list/project/valid.yml
|
147
|
+
- spec/fixtures/vcr_cassettes/jobs/list/spider/invalid.yml
|
148
|
+
- spec/fixtures/vcr_cassettes/jobs/list/spider/valid.yml
|
149
|
+
- spec/fixtures/vcr_cassettes/jobs/list/state/finished.yml
|
150
|
+
- spec/fixtures/vcr_cassettes/jobs/list/state/pending.yml
|
151
|
+
- spec/fixtures/vcr_cassettes/jobs/schedule/bad_auth.yml
|
152
|
+
- spec/fixtures/vcr_cassettes/jobs/schedule/project/invalid.yml
|
153
|
+
- spec/fixtures/vcr_cassettes/jobs/schedule/spider/add_tag.yml
|
154
|
+
- spec/fixtures/vcr_cassettes/jobs/schedule/spider/already-running.yml
|
155
|
+
- spec/fixtures/vcr_cassettes/jobs/schedule/spider/extra.yml
|
156
|
+
- spec/fixtures/vcr_cassettes/jobs/schedule/spider/minimal.yml
|
157
|
+
- spec/fixtures/vcr_cassettes/jobs/schedule/spider/priority.yml
|
158
|
+
- spec/fixtures/vcr_cassettes/jobs/stop/bad_auth.yml
|
159
|
+
- spec/fixtures/vcr_cassettes/jobs/stop/job/already-stopped.yml
|
160
|
+
- spec/fixtures/vcr_cassettes/jobs/stop/job/invalid.yml
|
161
|
+
- spec/fixtures/vcr_cassettes/jobs/stop/job/valid.yml
|
162
|
+
- spec/fixtures/vcr_cassettes/jobs/stop/project/invalid.yml
|
163
|
+
- spec/fixtures/vcr_cassettes/jobs/update/bad_auth.yml
|
164
|
+
- spec/fixtures/vcr_cassettes/jobs/update/has_tag.yml
|
165
|
+
- spec/fixtures/vcr_cassettes/jobs/update/job.yml
|
166
|
+
- spec/fixtures/vcr_cassettes/jobs/update/lacks_tag.yml
|
167
|
+
- spec/fixtures/vcr_cassettes/jobs/update/no-query-filters.yml
|
168
|
+
- spec/fixtures/vcr_cassettes/jobs/update/no-update-params.yml
|
169
|
+
- spec/fixtures/vcr_cassettes/jobs/update/project/invalid.yml
|
170
|
+
- spec/fixtures/vcr_cassettes/jobs/update/spider.yml
|
171
|
+
- spec/fixtures/vcr_cassettes/jobs/update/state.yml
|
172
|
+
- spec/integration/jobs_spec.rb
|
173
|
+
- spec/spec_helper.rb
|
174
|
+
- spec/unit/jobs_spec.rb
|
175
|
+
- spec/unit/scrapinghub_spec.rb
|
176
|
+
homepage: https://github.com/abevoelker/scrapinghub-client
|
177
|
+
licenses:
|
178
|
+
- MIT
|
179
|
+
metadata: {}
|
180
|
+
post_install_message:
|
181
|
+
rdoc_options: []
|
182
|
+
require_paths:
|
183
|
+
- lib
|
184
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
185
|
+
requirements:
|
186
|
+
- - ">="
|
187
|
+
- !ruby/object:Gem::Version
|
188
|
+
version: '0'
|
189
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
190
|
+
requirements:
|
191
|
+
- - ">="
|
192
|
+
- !ruby/object:Gem::Version
|
193
|
+
version: '0'
|
194
|
+
requirements: []
|
195
|
+
rubyforge_project:
|
196
|
+
rubygems_version: 2.4.5
|
197
|
+
signing_key:
|
198
|
+
specification_version: 4
|
199
|
+
summary: Ruby client for Scrapinghub API
|
200
|
+
test_files: []
|