ar_http_wrapper 0.0.4 → 0.0.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/README.rdoc
CHANGED
@@ -2,9 +2,13 @@ module ActiveRecordApiWrapper
|
|
2
2
|
extend ActiveSupport::Concern
|
3
3
|
|
4
4
|
module ClassMethods
|
5
|
+
def klass_to_param_key
|
6
|
+
self.to_s.underscore.split('/').last.to_sym
|
7
|
+
end
|
5
8
|
def api(api_class)
|
6
9
|
klass = self
|
7
10
|
klass_name = self.to_s.underscore
|
11
|
+
klass_to_param_key = klass.klass_to_param_key
|
8
12
|
|
9
13
|
api_class.resource :"#{klass_name}" do
|
10
14
|
api_class.desc "Builds a record."
|
@@ -14,19 +18,19 @@ module ActiveRecordApiWrapper
|
|
14
18
|
|
15
19
|
api_class.desc "Creates a record."
|
16
20
|
api_class.params do
|
17
|
-
requires
|
21
|
+
requires klass_to_param_key, :type => Hash, :desc => "The new record attributes."
|
18
22
|
end
|
19
23
|
api_class.post "/" do
|
20
|
-
klass.create(params[
|
24
|
+
klass.create(params[klass_to_param_key])
|
21
25
|
end
|
22
26
|
|
23
27
|
api_class.desc "Updates a record."
|
24
28
|
api_class.params do
|
25
29
|
requires :id, :desc => "The record id."
|
26
|
-
requires
|
30
|
+
requires klass_to_param_key, :type => Hash, :desc => "The updated record attributes."
|
27
31
|
end
|
28
32
|
api_class.put "/:id" do
|
29
|
-
updated_attr = params[
|
33
|
+
updated_attr = params[klass_to_param_key]
|
30
34
|
instance = klass.find_by_id(params[:id])
|
31
35
|
instance.try(:update_attributes,updated_attr)
|
32
36
|
end
|
@@ -1,7 +1,7 @@
|
|
1
1
|
shared_examples "ActiveRecordApiWrapper" do |klass,mountpoint,api_version|
|
2
2
|
subject {klass}
|
3
3
|
let(:mountpoint) {mountpoint}
|
4
|
-
let(:api_version) {
|
4
|
+
let(:api_version) {api_version}
|
5
5
|
def subject_name
|
6
6
|
subject.to_s.underscore
|
7
7
|
end
|
@@ -9,7 +9,7 @@ shared_examples "ActiveRecordApiWrapper" do |klass,mountpoint,api_version|
|
|
9
9
|
api_version ? api_version+'/' : ''
|
10
10
|
end
|
11
11
|
def to_path(_path='')
|
12
|
-
"#{mountpoint}/#{
|
12
|
+
"#{mountpoint}/#{api_version_path}#{subject_name}/#{_path}"
|
13
13
|
end
|
14
14
|
|
15
15
|
describe "GET new" do
|
@@ -36,11 +36,11 @@ shared_examples "ActiveRecordApiWrapper" do |klass,mountpoint,api_version|
|
|
36
36
|
subject.should_receive(:create).with(@test_instance).and_return(@test_instance)
|
37
37
|
end
|
38
38
|
it "creates instance" do
|
39
|
-
post "#{to_path}", subject.
|
39
|
+
post "#{to_path}", subject.klass_to_param_key => @test_instance
|
40
40
|
response.status.should == 201
|
41
41
|
end
|
42
42
|
it "returns instance" do
|
43
|
-
post "#{to_path}", subject.
|
43
|
+
post "#{to_path}", subject.klass_to_param_key => @test_instance
|
44
44
|
response.status.should == 201
|
45
45
|
JSON.parse(response.body).should == @test_instance
|
46
46
|
end
|
@@ -55,11 +55,11 @@ shared_examples "ActiveRecordApiWrapper" do |klass,mountpoint,api_version|
|
|
55
55
|
@test_instance.should_receive(:update_attributes).with(@updated_instance).and_return(@updated_instance)
|
56
56
|
end
|
57
57
|
it "finds instance" do
|
58
|
-
put "#{to_path(@id)}", subject.
|
58
|
+
put "#{to_path(@id)}", subject.klass_to_param_key => @updated_instance
|
59
59
|
response.status.should == 200
|
60
60
|
end
|
61
61
|
it "returns instance" do
|
62
|
-
put "#{to_path(@id)}", subject.
|
62
|
+
put "#{to_path(@id)}", subject.klass_to_param_key => @updated_instance
|
63
63
|
response.status.should == 200
|
64
64
|
JSON.parse(response.body).should == @updated_instance
|
65
65
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: ar_http_wrapper
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.5
|
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: 2012-12-
|
12
|
+
date: 2012-12-14 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: rails
|