restful_resource 0.8.0 → 0.8.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: 5e4f4e6af3b1bee81026d51b88de88305d854791
4
- data.tar.gz: ccc94c88defe5f2867214778ba49b27af23ea42f
3
+ metadata.gz: 5cf54b8d96b7d6394c4c7bcd6e50d4fd0affbf71
4
+ data.tar.gz: 817417b57ea34cb79b0bae515677c6c238dd60d6
5
5
  SHA512:
6
- metadata.gz: b276550299aa86e9574211dd018dd3e86a79c357d79ed05a6bdd1d9830b47e340e904a51ff80caa4c9dd8d32256217200146b183b367cc428e4edd5796f6ef88
7
- data.tar.gz: 9c4eb7a4326eac86a7cc23e0c25fe1881ad9e6a968cd4da65f693d80efbc216abbb4c1284a0edccf6e1369f42672f6730fae25a7719ad770754d4b31d0c785d6
6
+ metadata.gz: ea58b5641a2971b5d9538eaec970e2957bb00136d1b47305fdd5e2c69bf7120daf115c238be881e8afde5de93d1ff030494037908fbf9f0609313ab6be3669de
7
+ data.tar.gz: 14e7d26efc07d50c61a3b638cedd5c986e830d6937ecab455b1952900fdbb168bfbc2d4bad6194e1f70a0192acf32d40a53e934dc1d09e069ef87ab490f87e90
@@ -9,6 +9,7 @@ require_relative "restful_resource/paginated_array"
9
9
  require_relative "restful_resource/parameter_missing_error"
10
10
  require_relative "restful_resource/open_object"
11
11
  require_relative 'restful_resource/response'
12
+ require_relative 'restful_resource/authorization'
12
13
  require_relative 'restful_resource/http_client'
13
14
  require_relative "restful_resource/associations"
14
15
  require_relative "restful_resource/base"
@@ -0,0 +1,7 @@
1
+ module RestfulResource
2
+ class Authorization
3
+ def self.http_authorization(user, password)
4
+ 'Basic ' + Base64.encode64("#{user}:#{password}").chomp
5
+ end
6
+ end
7
+ end
@@ -7,7 +7,11 @@ module RestfulResource
7
7
  end
8
8
 
9
9
  def self.http
10
- @@http ||= RestfulResource::HttpClient.new()
10
+ @@http ||= RestfulResource::HttpClient.new(authorization: @base_authorization)
11
+ end
12
+
13
+ def self.http_authorization(user, password)
14
+ @base_authorization = RestfulResource::Authorization.http_authorization(user, password)
11
15
  end
12
16
 
13
17
  def self.base_url=(url)
@@ -1,8 +1,12 @@
1
1
  module RestfulResource
2
2
  class HttpClient
3
+ def initialize(authorization: nil)
4
+ @authorization = authorization
5
+ end
6
+
3
7
  def get(url)
4
- response = RestClient.get(url, :accept => :json)
5
- Response.new(body: response.body, headers: response.headers)
8
+ response = RestClient.get(url, :accept => :json, authorization: @authorization)
9
+ Response.new(body: response.body, headers: response.headers, status: response.code)
6
10
  end
7
11
  end
8
12
  end
@@ -1,9 +1,9 @@
1
1
  module RestfulResource
2
2
  class Response
3
- attr_reader :body, :headers
3
+ attr_reader :body, :headers, :status
4
4
 
5
- def initialize(body: "{}", headers: {})
6
- @body, @headers = body, headers
5
+ def initialize(body: "{}", headers: {}, status: nil)
6
+ @body, @headers, @status = body, headers, status
7
7
  end
8
8
  end
9
9
  end
@@ -1,3 +1,3 @@
1
1
  module RestfulResource
2
- VERSION = "0.8.0"
2
+ VERSION = "0.8.1"
3
3
  end
@@ -136,10 +136,6 @@ describe RestfulResource::Base do
136
136
  end
137
137
  end
138
138
 
139
- def expect_get(url, response)
140
- expect(@mock_http).to receive(:get).with(url).and_return(response)
141
- end
142
-
143
139
  def response_with_page_information
144
140
  RestfulResource::Response.new(body: [{ id: 1, name: 'Golf'}, { id: 2, name: 'Polo' }].to_json,
145
141
  headers: { links: '<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=6>;rel="last",<http://api.carwow.co.uk/makes/Volkswagen/models.json?page=2>;rel="next"'})
@@ -0,0 +1,15 @@
1
+ require_relative '../spec_helper'
2
+
3
+ describe RestfulResource::HttpClient do
4
+ describe 'Authentication' do
5
+ before :each do
6
+ auth = RestfulResource::Authorization.http_authorization('user', 'passwd')
7
+ @http_client = RestfulResource::HttpClient.new(authorization: auth)
8
+ end
9
+
10
+ it 'should get authenticated get' do
11
+ response = @http_client.get('http://httpbin.org/basic-auth/user/passwd')
12
+ expect(response.status).to eq 200
13
+ end
14
+ end
15
+ end
data/spec/spec_helper.rb CHANGED
@@ -6,3 +6,8 @@ RSpec.configure do |config|
6
6
  config.color = true
7
7
  config.formatter = :progress
8
8
  end
9
+
10
+
11
+ def expect_get(url, response)
12
+ expect(@mock_http).to receive(:get).with(url).and_return(response)
13
+ end
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.0
4
+ version: 0.8.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Santoro
@@ -123,6 +123,7 @@ files:
123
123
  - Rakefile
124
124
  - lib/restful_resource.rb
125
125
  - lib/restful_resource/associations.rb
126
+ - lib/restful_resource/authorization.rb
126
127
  - lib/restful_resource/base.rb
127
128
  - lib/restful_resource/http_client.rb
128
129
  - lib/restful_resource/old_base.rb
@@ -135,6 +136,7 @@ files:
135
136
  - spec/fixtures.rb
136
137
  - spec/restful_resource/associations_spec.rb
137
138
  - spec/restful_resource/base_spec.rb
139
+ - spec/restful_resource/http_client_spec.rb
138
140
  - spec/restful_resource/old_base_spec.rb
139
141
  - spec/restful_resource/open_object_spec.rb
140
142
  - spec/restful_resource/rest_client_spec.rb
@@ -159,7 +161,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
159
161
  version: '0'
160
162
  requirements: []
161
163
  rubyforge_project:
162
- rubygems_version: 2.4.1
164
+ rubygems_version: 2.0.14
163
165
  signing_key:
164
166
  specification_version: 4
165
167
  summary: A simple activerecord inspired rest resource base class implemented using
@@ -168,6 +170,7 @@ test_files:
168
170
  - spec/fixtures.rb
169
171
  - spec/restful_resource/associations_spec.rb
170
172
  - spec/restful_resource/base_spec.rb
173
+ - spec/restful_resource/http_client_spec.rb
171
174
  - spec/restful_resource/old_base_spec.rb
172
175
  - spec/restful_resource/open_object_spec.rb
173
176
  - spec/restful_resource/rest_client_spec.rb