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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6c8358538a5ebe627ece107b6e93a7bcdda7a05d
4
- data.tar.gz: b3344c770695ee716e5a3078628b8603782b4e0c
3
+ metadata.gz: ccbb52f5083804432a3d0ddf577d1aed423cf278
4
+ data.tar.gz: 550c0b4670c360d7bb5cc92cd3261e6658ea687c
5
5
  SHA512:
6
- metadata.gz: b80d7e826bcd59e1c20d1fb2c3e435b65b80f4b0873ef887bb24647f889db57705b13f5b9c4516c8b5548c4fa684ca7a850014ffb51fd3e99a63782393a2149b
7
- data.tar.gz: 2f8352e77c4e6bad859ce739e697eeeb09b5b26133e96876041ff205e4a19d16ff0e0f9501337643e570716c74afc46229ed094d4728df2e4e12a20b5e016b6d
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
@@ -5,7 +5,9 @@ module HonestRenter
5
5
  end
6
6
 
7
7
  def connection
8
- @connection ||= Faraday.new
8
+ @connection ||= Faraday.new do |conn|
9
+ conn.adapter(@faraday_adapter)
10
+ end
9
11
  end
10
12
  end
11
13
  end
@@ -5,8 +5,6 @@ module HonestRenter
5
5
  attr_reader :client, :session
6
6
 
7
7
  BASE_URL = 'https://honestrenter.com/api/'.freeze
8
- EXPIRES_LENGTH = 3600
9
- RENEWABLE_MULTIPLIER = 3
10
8
 
11
9
  def initialize(client, session = nil)
12
10
  @client = client
@@ -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
- query = {}.tap do |params|
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
@@ -5,7 +5,6 @@ require_relative 'response'
5
5
  require_relative 'session'
6
6
  require_relative 'authenticator'
7
7
  require_relative '../models/base_model'
8
- require_relative 'requests/expandable'
9
8
 
10
9
  [
11
10
  '../../modules',
File without changes
@@ -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
- class << self
11
- def find_all(*)
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
@@ -1,7 +1,7 @@
1
1
  module HonestRenter
2
2
  MAJOR = 1
3
3
  MINOR = 0
4
- TINY = 0
4
+ TINY = 1
5
5
 
6
6
  VERSION = [MAJOR, MINOR, TINY].join('.').freeze
7
7
  end
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.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-16 00:00:00.000000000 Z
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/requests_unsupported.rb
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