reactive_resource 0.7.1 → 0.7.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +1 -1
- data/lib/reactive_resource/base.rb +13 -0
- data/lib/reactive_resource/version.rb +1 -1
- data/test/unit/base_test.rb +25 -0
- metadata +3 -9
data/Rakefile
CHANGED
@@ -289,5 +289,18 @@ module ReactiveResource
|
|
289
289
|
@parents ||= belongs_to_associations.map(&:associated_class)
|
290
290
|
end
|
291
291
|
|
292
|
+
private
|
293
|
+
|
294
|
+
# Same as element_path, except with an extra +method_name+ on
|
295
|
+
# the end to support custom methods
|
296
|
+
def custom_method_element_url(method_name, options = {})
|
297
|
+
prefix_options, query_options = split_options(options)
|
298
|
+
"#{self.class.prefix(prefix_options)}#{self.class.association_prefix(prefix_options)}#{self.class.collection_name}/#{id}/#{method_name}#{self.class.extension}#{self.class.__send__(:query_string, query_options)}"
|
299
|
+
end
|
300
|
+
def custom_method_new_element_url(method_name, options = {})
|
301
|
+
prefix_options, query_options = split_options(options)
|
302
|
+
"#{self.class.prefix(prefix_options)}#{self.class.association_prefix(prefix_options)}#{self.class.collection_name}/new/#{method_name}#{self.class.extension}#{self.class.__send__(:query_string, query_options)}"
|
303
|
+
end
|
304
|
+
|
292
305
|
end
|
293
306
|
end
|
data/test/unit/base_test.rb
CHANGED
@@ -162,6 +162,31 @@ class ReactiveResource::BaseTest < Test::Unit::TestCase
|
|
162
162
|
end
|
163
163
|
end
|
164
164
|
|
165
|
+
context "with custom methods" do
|
166
|
+
|
167
|
+
should "hit the correct collection urls" do
|
168
|
+
stub_request(:post, "https://api.avvo.com/api/1/lawyers/search.json")\
|
169
|
+
.to_return(:body => {:lawyers => [{:id => 2}, {:id => 4}]}.to_json)
|
170
|
+
ReactiveResource::Lawyer.post(:search, {}, {:first_name => "Bob"})
|
171
|
+
assert_requested(:post, "https://api.avvo.com/api/1/lawyers/search.json")
|
172
|
+
end
|
173
|
+
|
174
|
+
should "hit the correct nested collection url" do
|
175
|
+
stub_request(:post, "https://api.avvo.com/api/1/lawyers/1/addresses/search.json")\
|
176
|
+
.to_return(:body => {:addresses => [{:id => 1}, {:id => 3}]}.to_json)
|
177
|
+
ReactiveResource::Address.post(:search, {:lawyer_id => 1}, {:street_name => "21st Ave NE"})
|
178
|
+
assert_requested(:post, "https://api.avvo.com/api/1/lawyers/1/addresses/search.json")
|
179
|
+
end
|
180
|
+
|
181
|
+
should "hit the correct member urls" do
|
182
|
+
stub_request(:get, "https://api.avvo.com/api/1/lawyers/1/billing_plan.json")\
|
183
|
+
.to_return(:body => {:billing_plan => {:type => "hourly", :rate => "200"}}.to_json)
|
184
|
+
@object.id = 1
|
185
|
+
@object.get(:billing_plan, {})
|
186
|
+
assert_requested(:get, "https://api.avvo.com/api/1/lawyers/1/billing_plan.json")
|
187
|
+
end
|
188
|
+
end
|
189
|
+
|
165
190
|
end
|
166
191
|
|
167
192
|
context "A resource without an extension" do
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: reactive_resource
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.7.
|
4
|
+
version: 0.7.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-
|
12
|
+
date: 2013-03-05 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: activeresource
|
@@ -114,21 +114,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
114
114
|
- - ! '>='
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
|
-
segments:
|
118
|
-
- 0
|
119
|
-
hash: 2162483585092170846
|
120
117
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
121
118
|
none: false
|
122
119
|
requirements:
|
123
120
|
- - ! '>='
|
124
121
|
- !ruby/object:Gem::Version
|
125
122
|
version: '0'
|
126
|
-
segments:
|
127
|
-
- 0
|
128
|
-
hash: 2162483585092170846
|
129
123
|
requirements: []
|
130
124
|
rubyforge_project: reactive_resource
|
131
|
-
rubygems_version: 1.8.
|
125
|
+
rubygems_version: 1.8.24
|
132
126
|
signing_key:
|
133
127
|
specification_version: 3
|
134
128
|
summary: ActiveRecord-like associations for ActiveResource
|