shutl_resource 0.10.4 → 0.10.5
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.
- data/lib/shutl/resource/configuration.rb +5 -3
- data/lib/shutl/resource/rest_class_methods.rb +2 -0
- data/lib/shutl/resource/version.rb +1 -1
- data/lib/shutl_resource.rb +1 -1
- data/spec/configuration_spec.rb +13 -0
- data/spec/configured_base_uri_spec.rb +51 -0
- data/spec/spec_helper.rb +2 -0
- data/spec/support/configured_base_uri_resource.rb +5 -0
- metadata +24 -55
@@ -20,14 +20,16 @@ module Shutl::Resource
|
|
20
20
|
|
21
21
|
module Configuration
|
22
22
|
class << self
|
23
|
-
|
24
|
-
@logger ||= Logger.new($stdout)
|
25
|
-
end
|
23
|
+
attr_accessor :base_uri
|
26
24
|
|
27
25
|
def configure
|
28
26
|
yield self
|
29
27
|
end
|
30
28
|
|
29
|
+
def logger
|
30
|
+
@logger ||= Logger.new($stdout)
|
31
|
+
end
|
32
|
+
|
31
33
|
def logger=(logger)
|
32
34
|
@logger = logger
|
33
35
|
end
|
@@ -271,6 +271,8 @@ module Shutl::Resource
|
|
271
271
|
def generate_url!(url_pattern, args, params = {})
|
272
272
|
url = url_pattern.dup
|
273
273
|
|
274
|
+
url = "#{Shutl::Resource.base_uri}#{url}" unless self.base_uri
|
275
|
+
|
274
276
|
args, url = replace_args_from_pattern! args, url
|
275
277
|
|
276
278
|
url = URI.escape url
|
data/lib/shutl_resource.rb
CHANGED
@@ -10,7 +10,7 @@ require 'shutl/resource/errors'
|
|
10
10
|
module Shutl::Resource
|
11
11
|
extend self
|
12
12
|
|
13
|
-
delegate :logger, :logger=, to: Configuration
|
13
|
+
delegate :logger, :logger=, :base_uri, :base_uri=, to: Configuration
|
14
14
|
|
15
15
|
def configure(*args, &block)
|
16
16
|
Configuration.configure(*args, &block)
|
data/spec/configuration_spec.rb
CHANGED
@@ -13,5 +13,18 @@ describe Shutl::Resource do
|
|
13
13
|
|
14
14
|
Shutl::Resource.logger.should == logger
|
15
15
|
end
|
16
|
+
|
17
|
+
it "allows for configuration of the base uri" do
|
18
|
+
Shutl::Resource.configure do |config|
|
19
|
+
config.base_uri = 'base uri'
|
20
|
+
end
|
21
|
+
|
22
|
+
Shutl::Resource.base_uri.should == 'base uri'
|
23
|
+
|
24
|
+
#set it back to not corrupt other tests
|
25
|
+
Shutl::Resource.configure do |config|
|
26
|
+
config.base_uri = nil
|
27
|
+
end
|
28
|
+
end
|
16
29
|
end
|
17
30
|
end
|
@@ -0,0 +1,51 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe TestConfiguredBaseUriResource do
|
4
|
+
let(:headers) do
|
5
|
+
{'Accept' => 'application/json',
|
6
|
+
'Content-Type' => 'application/json',
|
7
|
+
'Authorization' => 'Bearer some auth'}
|
8
|
+
end
|
9
|
+
|
10
|
+
before do
|
11
|
+
Shutl::Resource.configure do |config|
|
12
|
+
config.base_uri = "http://configured"
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
16
|
+
after do
|
17
|
+
Shutl::Resource.configure do |config|
|
18
|
+
config.base_uri = nil
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
22
|
+
context "uses the configured base uri if present" do
|
23
|
+
before do
|
24
|
+
@request = stub_request(:get, 'http://configured/test_configured_base_uri_resources/a').
|
25
|
+
to_return(:status => 200,
|
26
|
+
:body => '{"test_configured_base_uri_resource": { "a": "a", "b": 2 }}',
|
27
|
+
:headers => headers)
|
28
|
+
end
|
29
|
+
|
30
|
+
it 'should query the endpoint' do
|
31
|
+
TestConfiguredBaseUriResource.find('a', auth: "some auth")
|
32
|
+
|
33
|
+
@request.should have_been_requested
|
34
|
+
end
|
35
|
+
end
|
36
|
+
|
37
|
+
context "doesnt override a resources declared base uri" do
|
38
|
+
before do
|
39
|
+
@request = stub_request(:get, 'http://host/test_rests/a').
|
40
|
+
to_return(:status => 200,
|
41
|
+
:body => '{"test_rest": { "a": "a", "b": 2 }}',
|
42
|
+
:headers => headers)
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'should query the endpoint' do
|
46
|
+
TestRest.find('a', auth: "some auth")
|
47
|
+
|
48
|
+
@request.should have_been_requested
|
49
|
+
end
|
50
|
+
end
|
51
|
+
end
|
data/spec/spec_helper.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: shutl_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.10.
|
4
|
+
version: 0.10.5
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -11,11 +11,11 @@ authors:
|
|
11
11
|
autorequire:
|
12
12
|
bindir: bin
|
13
13
|
cert_chain: []
|
14
|
-
date: 2013-07-
|
14
|
+
date: 2013-07-19 00:00:00.000000000 Z
|
15
15
|
dependencies:
|
16
16
|
- !ruby/object:Gem::Dependency
|
17
17
|
name: httparty
|
18
|
-
requirement: !ruby/object:Gem::Requirement
|
18
|
+
requirement: &70115703855460 !ruby/object:Gem::Requirement
|
19
19
|
none: false
|
20
20
|
requirements:
|
21
21
|
- - ~>
|
@@ -23,31 +23,21 @@ dependencies:
|
|
23
23
|
version: 0.10.0
|
24
24
|
type: :runtime
|
25
25
|
prerelease: false
|
26
|
-
version_requirements:
|
27
|
-
none: false
|
28
|
-
requirements:
|
29
|
-
- - ~>
|
30
|
-
- !ruby/object:Gem::Version
|
31
|
-
version: 0.10.0
|
26
|
+
version_requirements: *70115703855460
|
32
27
|
- !ruby/object:Gem::Dependency
|
33
28
|
name: shutl_auth
|
34
|
-
requirement: !ruby/object:Gem::Requirement
|
29
|
+
requirement: &70115703853480 !ruby/object:Gem::Requirement
|
35
30
|
none: false
|
36
31
|
requirements:
|
37
|
-
- -
|
32
|
+
- - =
|
38
33
|
- !ruby/object:Gem::Version
|
39
34
|
version: 0.8.0
|
40
35
|
type: :runtime
|
41
36
|
prerelease: false
|
42
|
-
version_requirements:
|
43
|
-
none: false
|
44
|
-
requirements:
|
45
|
-
- - '='
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: 0.8.0
|
37
|
+
version_requirements: *70115703853480
|
48
38
|
- !ruby/object:Gem::Dependency
|
49
39
|
name: activemodel
|
50
|
-
requirement: !ruby/object:Gem::Requirement
|
40
|
+
requirement: &70115703852820 !ruby/object:Gem::Requirement
|
51
41
|
none: false
|
52
42
|
requirements:
|
53
43
|
- - ! '>='
|
@@ -55,15 +45,10 @@ dependencies:
|
|
55
45
|
version: '0'
|
56
46
|
type: :runtime
|
57
47
|
prerelease: false
|
58
|
-
version_requirements:
|
59
|
-
none: false
|
60
|
-
requirements:
|
61
|
-
- - ! '>='
|
62
|
-
- !ruby/object:Gem::Version
|
63
|
-
version: '0'
|
48
|
+
version_requirements: *70115703852820
|
64
49
|
- !ruby/object:Gem::Dependency
|
65
50
|
name: rake
|
66
|
-
requirement: !ruby/object:Gem::Requirement
|
51
|
+
requirement: &70115703850460 !ruby/object:Gem::Requirement
|
67
52
|
none: false
|
68
53
|
requirements:
|
69
54
|
- - ! '>='
|
@@ -71,15 +56,10 @@ dependencies:
|
|
71
56
|
version: '0'
|
72
57
|
type: :development
|
73
58
|
prerelease: false
|
74
|
-
version_requirements:
|
75
|
-
none: false
|
76
|
-
requirements:
|
77
|
-
- - ! '>='
|
78
|
-
- !ruby/object:Gem::Version
|
79
|
-
version: '0'
|
59
|
+
version_requirements: *70115703850460
|
80
60
|
- !ruby/object:Gem::Dependency
|
81
61
|
name: rspec
|
82
|
-
requirement: !ruby/object:Gem::Requirement
|
62
|
+
requirement: &70115703870120 !ruby/object:Gem::Requirement
|
83
63
|
none: false
|
84
64
|
requirements:
|
85
65
|
- - ~>
|
@@ -87,15 +67,10 @@ dependencies:
|
|
87
67
|
version: 2.11.0
|
88
68
|
type: :development
|
89
69
|
prerelease: false
|
90
|
-
version_requirements:
|
91
|
-
none: false
|
92
|
-
requirements:
|
93
|
-
- - ~>
|
94
|
-
- !ruby/object:Gem::Version
|
95
|
-
version: 2.11.0
|
70
|
+
version_requirements: *70115703870120
|
96
71
|
- !ruby/object:Gem::Dependency
|
97
72
|
name: debugger
|
98
|
-
requirement: !ruby/object:Gem::Requirement
|
73
|
+
requirement: &70115703885320 !ruby/object:Gem::Requirement
|
99
74
|
none: false
|
100
75
|
requirements:
|
101
76
|
- - ! '>='
|
@@ -103,15 +78,10 @@ dependencies:
|
|
103
78
|
version: '0'
|
104
79
|
type: :development
|
105
80
|
prerelease: false
|
106
|
-
version_requirements:
|
107
|
-
none: false
|
108
|
-
requirements:
|
109
|
-
- - ! '>='
|
110
|
-
- !ruby/object:Gem::Version
|
111
|
-
version: '0'
|
81
|
+
version_requirements: *70115703885320
|
112
82
|
- !ruby/object:Gem::Dependency
|
113
83
|
name: webmock
|
114
|
-
requirement: !ruby/object:Gem::Requirement
|
84
|
+
requirement: &70115703884340 !ruby/object:Gem::Requirement
|
115
85
|
none: false
|
116
86
|
requirements:
|
117
87
|
- - ~>
|
@@ -119,12 +89,7 @@ dependencies:
|
|
119
89
|
version: 1.8.7
|
120
90
|
type: :development
|
121
91
|
prerelease: false
|
122
|
-
version_requirements:
|
123
|
-
none: false
|
124
|
-
requirements:
|
125
|
-
- - ~>
|
126
|
-
- !ruby/object:Gem::Version
|
127
|
-
version: 1.8.7
|
92
|
+
version_requirements: *70115703884340
|
128
93
|
description: Shutl Rest resource
|
129
94
|
email:
|
130
95
|
- davidr@shutl.co.uk
|
@@ -152,10 +117,12 @@ files:
|
|
152
117
|
- script/ci
|
153
118
|
- shutl_resource.gemspec
|
154
119
|
- spec/configuration_spec.rb
|
120
|
+
- spec/configured_base_uri_spec.rb
|
155
121
|
- spec/dynamic_resource_spec.rb
|
156
122
|
- spec/remote_url_spec.rb
|
157
123
|
- spec/rest_resource_spec.rb
|
158
124
|
- spec/spec_helper.rb
|
125
|
+
- spec/support/configured_base_uri_resource.rb
|
159
126
|
- spec/support/double_logger.rb
|
160
127
|
- spec/support/test_resource.rb
|
161
128
|
- spec/support/test_singular_resource.rb
|
@@ -173,7 +140,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
173
140
|
version: '0'
|
174
141
|
segments:
|
175
142
|
- 0
|
176
|
-
hash: -
|
143
|
+
hash: -1303369992111380096
|
177
144
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
178
145
|
none: false
|
179
146
|
requirements:
|
@@ -182,19 +149,21 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
182
149
|
version: '0'
|
183
150
|
segments:
|
184
151
|
- 0
|
185
|
-
hash: -
|
152
|
+
hash: -1303369992111380096
|
186
153
|
requirements: []
|
187
154
|
rubyforge_project:
|
188
|
-
rubygems_version: 1.8.
|
155
|
+
rubygems_version: 1.8.11
|
189
156
|
signing_key:
|
190
157
|
specification_version: 3
|
191
158
|
summary: Manage Shutl Rest resource. Parse/Serialize JSON
|
192
159
|
test_files:
|
193
160
|
- spec/configuration_spec.rb
|
161
|
+
- spec/configured_base_uri_spec.rb
|
194
162
|
- spec/dynamic_resource_spec.rb
|
195
163
|
- spec/remote_url_spec.rb
|
196
164
|
- spec/rest_resource_spec.rb
|
197
165
|
- spec/spec_helper.rb
|
166
|
+
- spec/support/configured_base_uri_resource.rb
|
198
167
|
- spec/support/double_logger.rb
|
199
168
|
- spec/support/test_resource.rb
|
200
169
|
- spec/support/test_singular_resource.rb
|