honest_renter 1.0.0 → 1.0.1

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