leggy 0.1.3 → 0.2.0
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 +4 -4
- data/.travis.yml +7 -0
- data/Gemfile +4 -0
- data/README.md +195 -2
- data/Rakefile +4 -0
- data/leggy.gemspec +2 -2
- data/lib/leggy.rb +14 -5
- data/lib/leggy/app.rb +1 -2
- data/lib/leggy/crawl.rb +1 -2
- data/lib/leggy/crawl_options.rb +1 -2
- data/lib/leggy/error.rb +4 -0
- data/lib/leggy/error_handler.rb +30 -0
- data/lib/leggy/exceptions.rb +30 -0
- data/lib/leggy/mapping/app.rb +1 -6
- data/lib/leggy/mapping/crawl.rb +1 -1
- data/lib/leggy/mapping/crawl_options.rb +1 -1
- data/lib/leggy/mapping/url.rb +1 -1
- data/lib/leggy/mapping/user.rb +1 -1
- data/lib/leggy/resource/app.rb +3 -6
- data/lib/leggy/resource/crawl.rb +9 -12
- data/lib/leggy/resource/result.rb +20 -0
- data/lib/leggy/resource/url.rb +3 -6
- data/lib/leggy/resource/user.rb +1 -4
- data/lib/leggy/url.rb +1 -2
- data/lib/leggy/user.rb +1 -2
- data/lib/leggy/version.rb +1 -1
- data/spec/cassettes/{leggy.yml → leggy_app.yml} +106 -822
- data/spec/cassettes/leggy_crawl_all.yml +39 -0
- data/spec/cassettes/leggy_crawl_cancel.yml +147 -0
- data/spec/cassettes/leggy_crawl_start.yml +147 -0
- data/spec/cassettes/leggy_crawl_status.yml +183 -0
- data/spec/cassettes/leggy_exception.yml +38 -0
- data/spec/cassettes/leggy_result.yml +147 -0
- data/spec/cassettes/leggy_url.yml +373 -0
- data/spec/cassettes/leggy_user.yml +38 -0
- data/spec/leggy/exceptions_spec.rb +25 -0
- data/spec/leggy/leggy_spec.rb +1 -162
- data/spec/leggy/resource/app_spec.rb +64 -0
- data/spec/leggy/resource/crawl_spec.rb +88 -0
- data/spec/leggy/resource/result_spec.rb +46 -0
- data/spec/leggy/resource/url_spec.rb +59 -0
- data/spec/leggy/resource/user_spec.rb +22 -0
- data/spec/spec_helper.rb +37 -31
- data/spec/support/helpers.rb +26 -0
- data/spec/support/vcr.rb +12 -0
- metadata +48 -11
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
RSpec.describe Leggy::Resource::User, vcr: { cassette_name: 'leggy_user', record: :none } do
|
4
|
+
|
5
|
+
it "includes Leggy::ErrorHandler" do
|
6
|
+
expect(described_class.ancestors).to include Leggy::ErrorHandler
|
7
|
+
end
|
8
|
+
|
9
|
+
context ".users" do
|
10
|
+
|
11
|
+
context ".find" do
|
12
|
+
|
13
|
+
it "returns a single user" do
|
14
|
+
user = Leggy.users.find(api_token: Leggy.configuration.api_token)
|
15
|
+
expect(user.first_name).to eq 'Matt'
|
16
|
+
end
|
17
|
+
|
18
|
+
end
|
19
|
+
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -1,48 +1,54 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
require
|
4
|
-
|
5
|
-
|
1
|
+
$LOAD_PATH.unshift File.expand_path('../../lib', __FILE__)
|
2
|
+
|
3
|
+
require 'codeclimate-test-reporter'
|
4
|
+
CodeClimate::TestReporter.start
|
5
|
+
|
6
|
+
require 'rspec'
|
7
|
+
require 'dotenv'
|
6
8
|
|
7
9
|
Dotenv.load
|
8
10
|
|
11
|
+
ENV['80_LEGS_API_TOKEN'] ||= 'Fake80LegsToken'
|
12
|
+
|
9
13
|
begin
|
10
|
-
require
|
14
|
+
require 'pry'
|
11
15
|
rescue LoadError; end
|
12
16
|
|
13
|
-
require
|
17
|
+
require 'leggy'
|
14
18
|
|
15
|
-
# This file was generated by the `rspec --init` command. Conventionally, all
|
16
|
-
# specs live under a `spec` directory, which RSpec adds to the `$LOAD_PATH`.
|
17
|
-
# Require this file using `require "spec_helper"` to ensure that it is only
|
18
|
-
# loaded once.
|
19
|
-
#
|
20
19
|
# See http://rubydoc.info/gems/rspec-core/RSpec/Core/Configuration
|
21
20
|
RSpec.configure do |config|
|
22
|
-
config.run_all_when_everything_filtered = true
|
23
21
|
config.filter_run :focus
|
22
|
+
config.run_all_when_everything_filtered = true
|
23
|
+
|
24
|
+
# rspec-expectations config goes here. You can use an alternate
|
25
|
+
# assertion/expectation library such as wrong or the stdlib/minitest
|
26
|
+
# assertions if you prefer.
|
27
|
+
config.expect_with :rspec do |expectations|
|
28
|
+
# This option will default to `true` in RSpec 4. It makes the `description`
|
29
|
+
# and `failure_message` of custom matchers include text for helper methods
|
30
|
+
# defined using `chain`, e.g.:
|
31
|
+
# be_bigger_than(2).and_smaller_than(4).description
|
32
|
+
# # => "be bigger than 2 and smaller than 4"
|
33
|
+
# ...rather than:
|
34
|
+
# # => "be bigger than 2"
|
35
|
+
expectations.include_chain_clauses_in_custom_matcher_descriptions = true
|
36
|
+
end
|
37
|
+
|
38
|
+
# rspec-mocks config goes here. You can use an alternate test double
|
39
|
+
# library (such as bogus or mocha) by changing the `mock_with` option here.
|
40
|
+
config.mock_with :rspec do |mocks|
|
41
|
+
# Prevents you from mocking or stubbing a method that does not exist on
|
42
|
+
# a real object. This is generally recommended, and will default to
|
43
|
+
# `true` in RSpec 4.
|
44
|
+
mocks.verify_partial_doubles = true
|
45
|
+
end
|
24
46
|
|
25
47
|
# Run specs in random order to surface order dependencies. If you find an
|
26
48
|
# order dependency and want to debug it, you can fix the order by providing
|
27
49
|
# the seed, which is printed after each run.
|
28
50
|
# --seed 1234
|
29
|
-
config.order = 'random'
|
51
|
+
# config.order = 'random'
|
30
52
|
end
|
31
53
|
|
32
|
-
|
33
|
-
c.ignore_localhost = true
|
34
|
-
c.cassette_library_dir = 'spec/cassettes'
|
35
|
-
c.hook_into :webmock #:typhoeus, :faraday, :fakeweb, or :webmock
|
36
|
-
c.default_cassette_options = { :record => :new_episodes }
|
37
|
-
c.configure_rspec_metadata!
|
38
|
-
c.filter_sensitive_data('<TOKEN>') { Leggy.configuration.api_token }
|
39
|
-
c.filter_sensitive_data('<BASE64_TOKEN>') { Leggy.api_token }
|
40
|
-
end
|
41
|
-
|
42
|
-
def body(url)
|
43
|
-
Faraday.get(url).body
|
44
|
-
end
|
45
|
-
|
46
|
-
def fixture(name)
|
47
|
-
File.dirname(__FILE__) + '/fixtures/' + name
|
48
|
-
end
|
54
|
+
Dir[File.dirname(__FILE__) + "/support/**/*.rb"].each {|f| require f }
|
@@ -0,0 +1,26 @@
|
|
1
|
+
require 'faraday'
|
2
|
+
require 'faraday_middleware'
|
3
|
+
|
4
|
+
module Helpers
|
5
|
+
|
6
|
+
def get(url)
|
7
|
+
Faraday.get(url).body
|
8
|
+
end
|
9
|
+
|
10
|
+
def post(*args)
|
11
|
+
Faraday.post(*args).body
|
12
|
+
end
|
13
|
+
|
14
|
+
def fixtures(file_name)
|
15
|
+
File.expand_path("../fixtures/#{file_name}", File.dirname(__FILE__))
|
16
|
+
end
|
17
|
+
|
18
|
+
def fixture(file_name)
|
19
|
+
File.read(fixtures(file_name))
|
20
|
+
end
|
21
|
+
|
22
|
+
end
|
23
|
+
|
24
|
+
RSpec.configure do |config|
|
25
|
+
config.include Helpers
|
26
|
+
end
|
data/spec/support/vcr.rb
ADDED
@@ -0,0 +1,12 @@
|
|
1
|
+
require 'webmock/rspec'
|
2
|
+
require 'vcr'
|
3
|
+
|
4
|
+
VCR.configure do |c|
|
5
|
+
c.ignore_localhost = true
|
6
|
+
c.cassette_library_dir = File.join(File.dirname(__FILE__), '..', 'cassettes')
|
7
|
+
c.hook_into :webmock #:typhoeus, :faraday, :fakeweb, or :webmock
|
8
|
+
c.default_cassette_options = { :record => :new_episodes }
|
9
|
+
c.configure_rspec_metadata!
|
10
|
+
c.filter_sensitive_data('<TOKEN>') { Leggy.configuration.api_token }
|
11
|
+
c.filter_sensitive_data('<BASE64_TOKEN>') { Leggy.api_token }
|
12
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: leggy
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.2.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Solt
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-12-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: bundler
|
@@ -126,14 +126,14 @@ dependencies:
|
|
126
126
|
name: gem_config
|
127
127
|
requirement: !ruby/object:Gem::Requirement
|
128
128
|
requirements:
|
129
|
-
- - "
|
129
|
+
- - "~>"
|
130
130
|
- !ruby/object:Gem::Version
|
131
131
|
version: '0.3'
|
132
132
|
type: :runtime
|
133
133
|
prerelease: false
|
134
134
|
version_requirements: !ruby/object:Gem::Requirement
|
135
135
|
requirements:
|
136
|
-
- - "
|
136
|
+
- - "~>"
|
137
137
|
- !ruby/object:Gem::Version
|
138
138
|
version: '0.3'
|
139
139
|
- !ruby/object:Gem::Dependency
|
@@ -182,16 +182,16 @@ dependencies:
|
|
182
182
|
name: kartograph
|
183
183
|
requirement: !ruby/object:Gem::Requirement
|
184
184
|
requirements:
|
185
|
-
- - "
|
185
|
+
- - "~>"
|
186
186
|
- !ruby/object:Gem::Version
|
187
|
-
version: 0.
|
187
|
+
version: '0.2'
|
188
188
|
type: :runtime
|
189
189
|
prerelease: false
|
190
190
|
version_requirements: !ruby/object:Gem::Requirement
|
191
191
|
requirements:
|
192
|
-
- - "
|
192
|
+
- - "~>"
|
193
193
|
- !ruby/object:Gem::Version
|
194
|
-
version: 0.
|
194
|
+
version: '0.2'
|
195
195
|
- !ruby/object:Gem::Dependency
|
196
196
|
name: activesupport
|
197
197
|
requirement: !ruby/object:Gem::Requirement
|
@@ -215,6 +215,7 @@ extra_rdoc_files: []
|
|
215
215
|
files:
|
216
216
|
- ".gitignore"
|
217
217
|
- ".rspec"
|
218
|
+
- ".travis.yml"
|
218
219
|
- Gemfile
|
219
220
|
- Guardfile
|
220
221
|
- LICENSE.txt
|
@@ -226,6 +227,9 @@ files:
|
|
226
227
|
- lib/leggy/app.rb
|
227
228
|
- lib/leggy/crawl.rb
|
228
229
|
- lib/leggy/crawl_options.rb
|
230
|
+
- lib/leggy/error.rb
|
231
|
+
- lib/leggy/error_handler.rb
|
232
|
+
- lib/leggy/exceptions.rb
|
229
233
|
- lib/leggy/helpers.rb
|
230
234
|
- lib/leggy/mapping/app.rb
|
231
235
|
- lib/leggy/mapping/crawl.rb
|
@@ -234,16 +238,33 @@ files:
|
|
234
238
|
- lib/leggy/mapping/user.rb
|
235
239
|
- lib/leggy/resource/app.rb
|
236
240
|
- lib/leggy/resource/crawl.rb
|
241
|
+
- lib/leggy/resource/result.rb
|
237
242
|
- lib/leggy/resource/url.rb
|
238
243
|
- lib/leggy/resource/user.rb
|
239
244
|
- lib/leggy/url.rb
|
240
245
|
- lib/leggy/user.rb
|
241
246
|
- lib/leggy/version.rb
|
242
|
-
- spec/cassettes/
|
247
|
+
- spec/cassettes/leggy_app.yml
|
248
|
+
- spec/cassettes/leggy_crawl_all.yml
|
249
|
+
- spec/cassettes/leggy_crawl_cancel.yml
|
250
|
+
- spec/cassettes/leggy_crawl_start.yml
|
251
|
+
- spec/cassettes/leggy_crawl_status.yml
|
252
|
+
- spec/cassettes/leggy_exception.yml
|
253
|
+
- spec/cassettes/leggy_result.yml
|
254
|
+
- spec/cassettes/leggy_url.yml
|
255
|
+
- spec/cassettes/leggy_user.yml
|
243
256
|
- spec/fixtures/sample_app.js
|
244
257
|
- spec/fixtures/urls.json
|
258
|
+
- spec/leggy/exceptions_spec.rb
|
245
259
|
- spec/leggy/leggy_spec.rb
|
260
|
+
- spec/leggy/resource/app_spec.rb
|
261
|
+
- spec/leggy/resource/crawl_spec.rb
|
262
|
+
- spec/leggy/resource/result_spec.rb
|
263
|
+
- spec/leggy/resource/url_spec.rb
|
264
|
+
- spec/leggy/resource/user_spec.rb
|
246
265
|
- spec/spec_helper.rb
|
266
|
+
- spec/support/helpers.rb
|
267
|
+
- spec/support/vcr.rb
|
247
268
|
homepage: https://github.com/activefx/leggy
|
248
269
|
licenses:
|
249
270
|
- MIT
|
@@ -264,13 +285,29 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
264
285
|
version: '0'
|
265
286
|
requirements: []
|
266
287
|
rubyforge_project:
|
267
|
-
rubygems_version: 2.4.
|
288
|
+
rubygems_version: 2.4.5.1
|
268
289
|
signing_key:
|
269
290
|
specification_version: 4
|
270
291
|
summary: Ruby wrapper for the 80Legs API
|
271
292
|
test_files:
|
272
|
-
- spec/cassettes/
|
293
|
+
- spec/cassettes/leggy_app.yml
|
294
|
+
- spec/cassettes/leggy_crawl_all.yml
|
295
|
+
- spec/cassettes/leggy_crawl_cancel.yml
|
296
|
+
- spec/cassettes/leggy_crawl_start.yml
|
297
|
+
- spec/cassettes/leggy_crawl_status.yml
|
298
|
+
- spec/cassettes/leggy_exception.yml
|
299
|
+
- spec/cassettes/leggy_result.yml
|
300
|
+
- spec/cassettes/leggy_url.yml
|
301
|
+
- spec/cassettes/leggy_user.yml
|
273
302
|
- spec/fixtures/sample_app.js
|
274
303
|
- spec/fixtures/urls.json
|
304
|
+
- spec/leggy/exceptions_spec.rb
|
275
305
|
- spec/leggy/leggy_spec.rb
|
306
|
+
- spec/leggy/resource/app_spec.rb
|
307
|
+
- spec/leggy/resource/crawl_spec.rb
|
308
|
+
- spec/leggy/resource/result_spec.rb
|
309
|
+
- spec/leggy/resource/url_spec.rb
|
310
|
+
- spec/leggy/resource/user_spec.rb
|
276
311
|
- spec/spec_helper.rb
|
312
|
+
- spec/support/helpers.rb
|
313
|
+
- spec/support/vcr.rb
|