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.
Files changed (46) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +7 -0
  3. data/Gemfile +4 -0
  4. data/README.md +195 -2
  5. data/Rakefile +4 -0
  6. data/leggy.gemspec +2 -2
  7. data/lib/leggy.rb +14 -5
  8. data/lib/leggy/app.rb +1 -2
  9. data/lib/leggy/crawl.rb +1 -2
  10. data/lib/leggy/crawl_options.rb +1 -2
  11. data/lib/leggy/error.rb +4 -0
  12. data/lib/leggy/error_handler.rb +30 -0
  13. data/lib/leggy/exceptions.rb +30 -0
  14. data/lib/leggy/mapping/app.rb +1 -6
  15. data/lib/leggy/mapping/crawl.rb +1 -1
  16. data/lib/leggy/mapping/crawl_options.rb +1 -1
  17. data/lib/leggy/mapping/url.rb +1 -1
  18. data/lib/leggy/mapping/user.rb +1 -1
  19. data/lib/leggy/resource/app.rb +3 -6
  20. data/lib/leggy/resource/crawl.rb +9 -12
  21. data/lib/leggy/resource/result.rb +20 -0
  22. data/lib/leggy/resource/url.rb +3 -6
  23. data/lib/leggy/resource/user.rb +1 -4
  24. data/lib/leggy/url.rb +1 -2
  25. data/lib/leggy/user.rb +1 -2
  26. data/lib/leggy/version.rb +1 -1
  27. data/spec/cassettes/{leggy.yml → leggy_app.yml} +106 -822
  28. data/spec/cassettes/leggy_crawl_all.yml +39 -0
  29. data/spec/cassettes/leggy_crawl_cancel.yml +147 -0
  30. data/spec/cassettes/leggy_crawl_start.yml +147 -0
  31. data/spec/cassettes/leggy_crawl_status.yml +183 -0
  32. data/spec/cassettes/leggy_exception.yml +38 -0
  33. data/spec/cassettes/leggy_result.yml +147 -0
  34. data/spec/cassettes/leggy_url.yml +373 -0
  35. data/spec/cassettes/leggy_user.yml +38 -0
  36. data/spec/leggy/exceptions_spec.rb +25 -0
  37. data/spec/leggy/leggy_spec.rb +1 -162
  38. data/spec/leggy/resource/app_spec.rb +64 -0
  39. data/spec/leggy/resource/crawl_spec.rb +88 -0
  40. data/spec/leggy/resource/result_spec.rb +46 -0
  41. data/spec/leggy/resource/url_spec.rb +59 -0
  42. data/spec/leggy/resource/user_spec.rb +22 -0
  43. data/spec/spec_helper.rb +37 -31
  44. data/spec/support/helpers.rb +26 -0
  45. data/spec/support/vcr.rb +12 -0
  46. 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
@@ -1,48 +1,54 @@
1
- require "rspec"
2
- require "webmock/rspec"
3
- require "vcr"
4
- require "faraday"
5
- require "dotenv"
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 "pry"
14
+ require 'pry'
11
15
  rescue LoadError; end
12
16
 
13
- require "leggy"
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
- VCR.configure do |c|
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
@@ -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.1.3
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-03-06 00:00:00.000000000 Z
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.0.8
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.0.8
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/leggy.yml
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.6
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/leggy.yml
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