leggy 0.1.3 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
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