restful_resource 0.8.8 → 0.8.9

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: cc4d1bbfdde924c3b2091f258b2ae0291fa95137
4
- data.tar.gz: 2fed2298a294dabe54584bf05aa49f9c4ed51e3e
3
+ metadata.gz: 91803ab9a7afb00f09ddc7272c06e3330f3418fd
4
+ data.tar.gz: 8ed0b0c0a0b914b940cdb35cc3c486107909e0b2
5
5
  SHA512:
6
- metadata.gz: 834ce402bc491c69f8def4d3cba41adfa5e837a3e83265ac1b2520f3f0133624753521f3f4f2008551ea783c62d731c341d81a8799e88f40b9df11c1b5c68031
7
- data.tar.gz: f322f3af95316c4b5e470ffa0115015f7bc4495aba2c71fe83716db8a55adfa4d6336104073386ca0d83b98ed1d76fc933338c9347f2f1b2c7eb16826bcbc7be
6
+ metadata.gz: aada22cf8f429ea81558f25f73b8e9bc4420929e1156e21f57a4d01fa1af45c47a528e25a76eb774c96a708e31da85459c738067ca3ef5e7d5af3b41570f2a8f
7
+ data.tar.gz: 797b5200c5f2a7d9ece83ddb0aadccffe8b13414b5eebeaf5d5401f564467cc0bf0fd681be34e6623443f22ef8600aa5c174f9e9fe6d8498764331f869af3cff
@@ -3,11 +3,11 @@ module RestfulResource
3
3
  extend RestfulResource::Associations
4
4
 
5
5
  def self.http=(http)
6
- @@http = http
6
+ @http = http
7
7
  end
8
8
 
9
9
  def self.http
10
- @@http ||= RestfulResource::HttpClient.new(authorization: superclass.base_authorization)
10
+ @http ||= RestfulResource::HttpClient.new(authorization: superclass.base_authorization)
11
11
  end
12
12
 
13
13
  def self.http_authorization(user, password)
@@ -23,24 +23,24 @@ module RestfulResource
23
23
  end
24
24
 
25
25
  def self.find(id, params={})
26
- response = http.get(member_url(id, params))
26
+ response = superclass.http.get(member_url(id, params))
27
27
  self.new(parse_json(response.body))
28
28
  end
29
29
 
30
30
  def self.where(params={})
31
- response = http.get(collection_url(params))
31
+ response = superclass.http.get(collection_url(params))
32
32
  self.paginate_response(response)
33
33
  end
34
34
 
35
35
  def self.get(params={})
36
- response = http.get(collection_url(params))
36
+ response = superclass.http.get(collection_url(params))
37
37
  RestfulResource::OpenObject.new(parse_json(response.body))
38
38
  end
39
39
 
40
40
  def self.put(id, data: {}, **params)
41
41
  url = member_url(id, params)
42
42
 
43
- response = http.put(url, data: data)
43
+ response = superclass.http.put(url, data: data)
44
44
  self.new(parse_json(response.body))
45
45
  end
46
46
 
@@ -64,6 +64,8 @@ module RestfulResource
64
64
 
65
65
  protected
66
66
  def self.base_url
67
+ raise BaseUrlMissing.new if @base_url.nil?
68
+
67
69
  @base_url
68
70
  end
69
71
 
@@ -1,3 +1,3 @@
1
1
  module RestfulResource
2
- VERSION = "0.8.8"
2
+ VERSION = "0.8.9"
3
3
  end
@@ -0,0 +1,46 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe "http client" do
4
+ before :each do
5
+ class FirstClient < RestfulResource::Base
6
+ end
7
+
8
+ class SecondClient < RestfulResource::Base
9
+ end
10
+
11
+ class FirstTest < FirstClient
12
+ resource_path 'test'
13
+ end
14
+
15
+ class SecondTest < SecondClient
16
+ resource_path 'test'
17
+ end
18
+
19
+ FirstClient.http = nil
20
+ FirstClient.base_url = 'http://api.carwow.co.uk/api/first'
21
+ SecondClient.http = nil
22
+ SecondClient.base_url = 'http://api.carwow.co.uk/api/second'
23
+ SecondClient.http_authorization('test_user', 'test_pass')
24
+ end
25
+
26
+ it "should use two different http instances" do
27
+ expect(FirstTest.http).not_to equal(SecondTest.http)
28
+ end
29
+
30
+ it 'should have http auth on SecondClient when initialised first' do
31
+ SecondTest.http
32
+ FirstTest.http
33
+
34
+ authorization = SecondTest.http.instance_variable_get :@authorization
35
+ expect(authorization).to be_truthy
36
+ end
37
+
38
+ it 'should have http auth on SecondTest when initialised second' do
39
+ FirstTest.http
40
+ SecondTest.http
41
+
42
+ authorization = SecondTest.http.instance_variable_get :@authorization
43
+ expect(authorization).to be_truthy
44
+ end
45
+ end
46
+
@@ -78,7 +78,10 @@ describe RestfulResource::Base do
78
78
  describe "#base_url" do
79
79
  it "should be different for each subclass of Base" do
80
80
  BaseA.base_url = "http://a.carwow.co.uk"
81
+ BaseA.http = @mock_http
82
+
81
83
  BaseB.base_url = "http://b.carwow.co.uk"
84
+ BaseB.http = @mock_http
82
85
 
83
86
  expect_get('http://a.carwow.co.uk/testa/1', RestfulResource::Response.new())
84
87
  expect_get('http://b.carwow.co.uk/testb/2', RestfulResource::Response.new())
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: restful_resource
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.8.8
4
+ version: 0.8.9
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Santoro
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-10-27 00:00:00.000000000 Z
12
+ date: 2014-10-29 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: bundler
@@ -137,6 +137,7 @@ files:
137
137
  - restful_resource.gemspec
138
138
  - spec/fixtures.rb
139
139
  - spec/restful_resource/associations_spec.rb
140
+ - spec/restful_resource/base_authorization_spec.rb
140
141
  - spec/restful_resource/base_spec.rb
141
142
  - spec/restful_resource/http_client_spec.rb
142
143
  - spec/restful_resource/old_base_spec.rb
@@ -172,6 +173,7 @@ summary: A simple activerecord inspired rest resource base class implemented usi
172
173
  test_files:
173
174
  - spec/fixtures.rb
174
175
  - spec/restful_resource/associations_spec.rb
176
+ - spec/restful_resource/base_authorization_spec.rb
175
177
  - spec/restful_resource/base_spec.rb
176
178
  - spec/restful_resource/http_client_spec.rb
177
179
  - spec/restful_resource/old_base_spec.rb