honest_renter 1.0.0 → 1.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 +4 -4
- data/README.md +6 -0
- data/Rakefile +24 -0
- data/lib/client.rb +3 -1
- data/lib/request.rb +0 -2
- data/lib/requests/find_all.rb +6 -4
- data/lib/requires.rb +0 -1
- data/{lib/requests → modules}/expandable.rb +0 -0
- data/modules/unrequestable.rb +3 -11
- data/test/lib/honest_renter_test.rb +12 -0
- data/test/models/base_model_test.rb +10 -0
- data/test/modules/expandable_test.rb +32 -0
- data/test/modules/unrequestable_test.rb +22 -0
- data/version.rb +1 -1
- metadata +6 -4
- data/modules/requests_unsupported.rb +0 -21
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: ccbb52f5083804432a3d0ddf577d1aed423cf278
|
4
|
+
data.tar.gz: 550c0b4670c360d7bb5cc92cd3261e6658ea687c
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e9accc40c66b3dbfe09eb0dfa554abd0432dc81be538677fafec2050bb4cd11be0b3a5e29ba4c1f284616960cf9f6d10efb61bae4a34d6bc9ea98f6a6082eacc
|
7
|
+
data.tar.gz: eefe7cafdd2119037e0e182284a86a88f2f8d8323351b4b75f5f4878d891bf508bea6e89188256a070f6d5a580af802a18ecf14be51a2eafe175c879079575cb
|
data/README.md
CHANGED
@@ -57,6 +57,10 @@ auth.session
|
|
57
57
|
# => HonestRenter::Session
|
58
58
|
```
|
59
59
|
|
60
|
+
### API Key
|
61
|
+
|
62
|
+
All Honest Renter requests require an API key. To have this gem automatically use your API key, the environment variable `HONEST_RENTER_API_KEY` should be set.
|
63
|
+
|
60
64
|
## Request Methods
|
61
65
|
|
62
66
|
The HonestRenter API supports querying for objects by their ID or by a set of filters. All querying operations require an authenticated `HonestRenter::Session`.
|
@@ -77,6 +81,8 @@ The model will automatically return an instance of the class upon with the `.fin
|
|
77
81
|
|
78
82
|
To find a complete list of a certain model, the `.find_all` class method exists. This method has 1 required parameter and 2 optional parameters.
|
79
83
|
|
84
|
+
*Note: Not all models are able to issue a `find_all` request. Unsupported models will throw an `Unrequestable::Unsupported` error.*
|
85
|
+
|
80
86
|
Like the `.find` method, a `session` is the required parameter.
|
81
87
|
|
82
88
|
```ruby
|
data/Rakefile
CHANGED
@@ -9,3 +9,27 @@ Rake::TestTask.new do |t|
|
|
9
9
|
t.test_files = FileList['test/**/*_test.rb']
|
10
10
|
t.verbose = true
|
11
11
|
end
|
12
|
+
|
13
|
+
namespace :fixtures do
|
14
|
+
desc 'reload fixtures from remote API'
|
15
|
+
task :reload do
|
16
|
+
fail 'No API key given' if ENV['HONEST_RENTER_API_KEY'].nil?
|
17
|
+
fail 'No MEMBER_ID' if ENV['MEMBER_ID'].nil?
|
18
|
+
fail 'No Secret Key' if ENV['HONEST_RENTER_SECRET_KEY'].nil?
|
19
|
+
|
20
|
+
ethniticites_find_all = "#{ File.expand_path('..', __FILE__) }/test/fixtures/ethnicities/find_all.json"
|
21
|
+
members_find = "#{ File.expand_path('..', __FILE__) }/test/fixtures/members/find.json"
|
22
|
+
titles_find_all_by_filters = "#{ File.expand_path('..', __FILE__) }/test/fixtures/titles/find_all_by_filters.json"
|
23
|
+
|
24
|
+
session = HonestRenter::Authenticator.from_secret_key_member_id(ENV['HONEST_RENTER_SECRET_KEY'], ENV['MEMBER_ID']).session
|
25
|
+
|
26
|
+
ethniticites_find_all_results = HonestRenter::Ethnicities.find_all(session)
|
27
|
+
members_find_results = HonestRenter::Member.find(ENV['MEMBER_ID'], session)
|
28
|
+
filters = [HonestRenter::Filter.new(:id, 3)]
|
29
|
+
titles_find_all_by_filters_results = HonestRenter::Title.find_all_by_filters(filters, session)
|
30
|
+
|
31
|
+
File.open(ethniticites_find_all, 'w') { |f| f.write(JSON(ethniticites_find_all_results)) }
|
32
|
+
File.open(members_find, 'w') { |f| f.write(JSON(members_find_results)) }
|
33
|
+
File.open(titles_find_all_by_filters, 'w') { |f| f.write(JSON(titles_find_all_by_filters_results)) }
|
34
|
+
end
|
35
|
+
end
|
data/lib/client.rb
CHANGED
data/lib/request.rb
CHANGED
data/lib/requests/find_all.rb
CHANGED
@@ -12,16 +12,18 @@ module HonestRenter
|
|
12
12
|
def call
|
13
13
|
client = HonestRenter::Client.new
|
14
14
|
request = HonestRenter::Request.new(client, @session)
|
15
|
-
|
15
|
+
|
16
|
+
request.get(@resource_name, query)
|
17
|
+
end
|
18
|
+
|
19
|
+
def query
|
20
|
+
{}.tap do |params|
|
16
21
|
unless @expansions.nil? || @expansions.empty?
|
17
22
|
params[:expand] = JSON(@expansions)
|
18
23
|
end
|
19
|
-
|
20
24
|
params[:limit] = @limit unless @limit.nil?
|
21
25
|
params[:offset] = @offset unless @offset.nil?
|
22
26
|
end
|
23
|
-
|
24
|
-
request.get(@resource_name, query)
|
25
27
|
end
|
26
28
|
end
|
27
29
|
end
|
data/lib/requires.rb
CHANGED
File without changes
|
data/modules/unrequestable.rb
CHANGED
@@ -2,22 +2,14 @@ module HonestRenter
|
|
2
2
|
module Unrequestable
|
3
3
|
class Unsupported < StandardError; end
|
4
4
|
|
5
|
-
def included(base)
|
5
|
+
def self.included(base)
|
6
6
|
base.extend(ClassMethods)
|
7
7
|
end
|
8
8
|
|
9
9
|
module ClassMethods
|
10
|
-
|
11
|
-
|
12
|
-
raise Unsupported, "this model may not use the #{__method__} method."
|
13
|
-
end
|
14
|
-
|
15
|
-
def find(*)
|
16
|
-
raise Unsupported, "this model may not use the #{__method__} method."
|
17
|
-
end
|
10
|
+
def find_all(*)
|
11
|
+
raise Unsupported, "this model may not use the #{__method__} method."
|
18
12
|
end
|
19
13
|
end
|
20
|
-
|
21
|
-
private_constant :Unsupported
|
22
14
|
end
|
23
15
|
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
|
3
|
+
module HonestRenter
|
4
|
+
class HonestRenterTest < MiniTest::Unit::TestCase
|
5
|
+
def test_snake_case
|
6
|
+
input = 'SnakeCaseTest'
|
7
|
+
expected = 'snake_case_test'
|
8
|
+
|
9
|
+
assert_equal(expected, HonestRenter.snake_case(input))
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -42,6 +42,16 @@ module HonestRenter
|
|
42
42
|
TestModel.find_all(session)
|
43
43
|
end
|
44
44
|
|
45
|
+
def test_find_all_by_filters
|
46
|
+
find_all_by_filter_request = instance_double(HonestRenter::FindAllByFilter)
|
47
|
+
response = instance_double(HonestRenter::Response, body: { 'data' => {} }, success?: true)
|
48
|
+
session = instance_double(HonestRenter::Session, honr_session: '', honr_authentication_token: '')
|
49
|
+
expect(HonestRenter::FindAllByFilter).to receive(:new).with(TestModel.attr_name, session) { find_all_by_filter_request }
|
50
|
+
expect(find_all_by_filter_request).to receive(:call) { response }
|
51
|
+
|
52
|
+
TestModel.find_all_by_filters([], session)
|
53
|
+
end
|
54
|
+
|
45
55
|
def test_find
|
46
56
|
id = 1234
|
47
57
|
find_request = instance_double(HonestRenter::FindById)
|
@@ -0,0 +1,32 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require_relative '../../modules/expandable'
|
3
|
+
|
4
|
+
module HonestRenter
|
5
|
+
class ExpandableTest < MiniTest::Unit::TestCase
|
6
|
+
|
7
|
+
class ExampleExpandableClass
|
8
|
+
include Expandable
|
9
|
+
end
|
10
|
+
|
11
|
+
def setup
|
12
|
+
@subject = ExampleExpandableClass.new
|
13
|
+
end
|
14
|
+
|
15
|
+
def test_included_methods
|
16
|
+
assert_equal(true, @subject.respond_to?(:expanding))
|
17
|
+
end
|
18
|
+
|
19
|
+
def test_adding_to_array
|
20
|
+
assert_equal(nil, @subject.instance_variable_get(:@expansions))
|
21
|
+
|
22
|
+
test_value = 'something'
|
23
|
+
@subject.expanding(test_value)
|
24
|
+
assert_equal([test_value], @subject.instance_variable_get(:@expansions))
|
25
|
+
|
26
|
+
another_test_value = 'something_else'
|
27
|
+
@subject.expanding(another_test_value)
|
28
|
+
assert_equal([test_value, another_test_value],
|
29
|
+
@subject.instance_variable_get(:@expansions))
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require_relative '../test_helper'
|
2
|
+
require_relative '../../models/base_model'
|
3
|
+
require_relative '../../modules/unrequestable'
|
4
|
+
|
5
|
+
module HonestRenter
|
6
|
+
class UnrequestableTest < MiniTest::Unit::TestCase
|
7
|
+
|
8
|
+
class ExampleUnrequestableObject < BaseModel
|
9
|
+
include Unrequestable
|
10
|
+
end
|
11
|
+
|
12
|
+
def test_included_methods_present
|
13
|
+
assert_equal(true, ExampleUnrequestableObject.respond_to?(:find_all))
|
14
|
+
end
|
15
|
+
|
16
|
+
def test_raise_error
|
17
|
+
assert_raises(Unrequestable::Unsupported) do
|
18
|
+
ExampleUnrequestableObject.find_all
|
19
|
+
end
|
20
|
+
end
|
21
|
+
end
|
22
|
+
end
|
data/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: honest_renter
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Jake Yesbeck
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2016-04-
|
11
|
+
date: 2016-04-29 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: faraday
|
@@ -113,7 +113,6 @@ files:
|
|
113
113
|
- lib/client.rb
|
114
114
|
- lib/honest_renter.rb
|
115
115
|
- lib/request.rb
|
116
|
-
- lib/requests/expandable.rb
|
117
116
|
- lib/requests/filter.rb
|
118
117
|
- lib/requests/find_all.rb
|
119
118
|
- lib/requests/find_all_by_filter.rb
|
@@ -163,7 +162,7 @@ files:
|
|
163
162
|
- models/title.rb
|
164
163
|
- models/user.rb
|
165
164
|
- models/vehicle.rb
|
166
|
-
- modules/
|
165
|
+
- modules/expandable.rb
|
167
166
|
- modules/unrequestable.rb
|
168
167
|
- test/fixtures/ethnicities/find_all.json
|
169
168
|
- test/fixtures/members/find.json
|
@@ -172,6 +171,7 @@ files:
|
|
172
171
|
- test/integration/find_all_test.rb
|
173
172
|
- test/integration/find_test.rb
|
174
173
|
- test/lib/authenticator_test.rb
|
174
|
+
- test/lib/honest_renter_test.rb
|
175
175
|
- test/lib/requests/filter_test.rb
|
176
176
|
- test/lib/requests/find_all_by_filter_test.rb
|
177
177
|
- test/lib/requests/find_all_test.rb
|
@@ -180,6 +180,8 @@ files:
|
|
180
180
|
- test/lib/response_test.rb
|
181
181
|
- test/lib/session_test.rb
|
182
182
|
- test/models/base_model_test.rb
|
183
|
+
- test/modules/expandable_test.rb
|
184
|
+
- test/modules/unrequestable_test.rb
|
183
185
|
- test/test_helper.rb
|
184
186
|
- version.rb
|
185
187
|
homepage: http://rubygems.org/gems/honest_renter
|
@@ -1,21 +0,0 @@
|
|
1
|
-
module HonestRenter
|
2
|
-
module Unrequestable
|
3
|
-
class Unsupported < StandardError; end
|
4
|
-
|
5
|
-
def self.included(base)
|
6
|
-
base.extend(ClassMethods)
|
7
|
-
end
|
8
|
-
|
9
|
-
module ClassMethods
|
10
|
-
def find_all(*)
|
11
|
-
raise Unsupported, "this model may not use the #{__method__} method."
|
12
|
-
end
|
13
|
-
|
14
|
-
def find(*)
|
15
|
-
raise Unsupported, "this model may not use the #{__method__} method."
|
16
|
-
end
|
17
|
-
end
|
18
|
-
|
19
|
-
private_constant :Unsupported
|
20
|
-
end
|
21
|
-
end
|