roar-rails 0.0.10 → 0.0.11
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/CHANGES.markdown +4 -0
- data/lib/roar/rails/controller_additions.rb +17 -13
- data/lib/roar/rails/version.rb +1 -1
- metadata +52 -17
data/CHANGES.markdown
CHANGED
@@ -4,23 +4,23 @@ module Roar::Rails
|
|
4
4
|
module ControllerAdditions
|
5
5
|
extend ActiveSupport::Concern
|
6
6
|
include ModelMethods
|
7
|
-
|
7
|
+
|
8
8
|
included do
|
9
9
|
extend Hooks::InheritableAttribute
|
10
10
|
inheritable_attr :represents_options
|
11
11
|
self.represents_options ||= {}
|
12
12
|
end
|
13
|
-
|
14
|
-
|
13
|
+
|
14
|
+
|
15
15
|
module ClassMethods
|
16
16
|
def responder
|
17
17
|
Class.new(super).send :include, Roar::Rails::Responder
|
18
18
|
end
|
19
|
-
|
19
|
+
|
20
20
|
def add_representer_suffix(prefix)
|
21
21
|
"#{prefix}Representer"
|
22
22
|
end
|
23
|
-
|
23
|
+
|
24
24
|
def represents(format, options)
|
25
25
|
unless options.is_a?(Hash)
|
26
26
|
model = options
|
@@ -29,38 +29,42 @@ module Roar::Rails
|
|
29
29
|
:collection => add_representer_suffix(model.name.pluralize).constantize
|
30
30
|
}
|
31
31
|
end
|
32
|
-
|
32
|
+
|
33
33
|
represents_options[format] = options
|
34
34
|
respond_to format
|
35
35
|
end
|
36
36
|
end
|
37
|
-
|
38
|
-
|
37
|
+
|
38
|
+
|
39
39
|
def consume!(model, options={})
|
40
40
|
format = formats.first # FIXME: i expected request.content_mime_type to do the job. copied from responder.rb. this will return the wrong format when the controller responds to :json and :xml and the Content-type is :xml (?)
|
41
41
|
representer = representer_for(format, model, options)
|
42
42
|
extend_with!(model, representer)
|
43
|
-
model.send(compute_parsing_method(format),
|
43
|
+
model.send(compute_parsing_method(format), incoming_string) # e.g. from_json("...")
|
44
44
|
model
|
45
45
|
end
|
46
|
-
|
46
|
+
|
47
47
|
# Central entry-point for finding the appropriate representer.
|
48
48
|
def representer_for(format, model, options={})
|
49
49
|
options.delete(:represent_with) || representer_name_for(format, model)
|
50
50
|
end
|
51
|
-
|
51
|
+
|
52
52
|
private
|
53
53
|
def compute_parsing_method(format)
|
54
54
|
"from_#{format}"
|
55
55
|
end
|
56
|
-
|
56
|
+
|
57
|
+
def incoming_string
|
58
|
+
request.body.read
|
59
|
+
end
|
60
|
+
|
57
61
|
def representer_name_for(format, model) # DISCUSS: should we pass and process options here?
|
58
62
|
if self.class.represents_options[format.to_sym].blank? # TODO: test to_sym?
|
59
63
|
model_name = model.class.name
|
60
64
|
model_name = controller_path.camelize if model.kind_of?(Array)
|
61
65
|
return self.class.add_representer_suffix(model_name).constantize
|
62
66
|
end
|
63
|
-
|
67
|
+
|
64
68
|
return self.class.represents_options[format][:collection] if model.kind_of?(Array)
|
65
69
|
self.class.represents_options[format][:entity]
|
66
70
|
end
|
data/lib/roar/rails/version.rb
CHANGED
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: roar-rails
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.11
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,11 +9,11 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date:
|
12
|
+
date: 2013-02-06 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: roar
|
16
|
-
requirement:
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
17
17
|
none: false
|
18
18
|
requirements:
|
19
19
|
- - ~>
|
@@ -21,10 +21,15 @@ dependencies:
|
|
21
21
|
version: '0.10'
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
|
-
version_requirements:
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.10'
|
25
30
|
- !ruby/object:Gem::Dependency
|
26
31
|
name: test_xml
|
27
|
-
requirement:
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
28
33
|
none: false
|
29
34
|
requirements:
|
30
35
|
- - ! '>='
|
@@ -32,10 +37,15 @@ dependencies:
|
|
32
37
|
version: '0'
|
33
38
|
type: :runtime
|
34
39
|
prerelease: false
|
35
|
-
version_requirements:
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
36
46
|
- !ruby/object:Gem::Dependency
|
37
47
|
name: actionpack
|
38
|
-
requirement:
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
39
49
|
none: false
|
40
50
|
requirements:
|
41
51
|
- - ~>
|
@@ -43,10 +53,15 @@ dependencies:
|
|
43
53
|
version: '3.0'
|
44
54
|
type: :runtime
|
45
55
|
prerelease: false
|
46
|
-
version_requirements:
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
57
|
+
none: false
|
58
|
+
requirements:
|
59
|
+
- - ~>
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.0'
|
47
62
|
- !ruby/object:Gem::Dependency
|
48
63
|
name: railties
|
49
|
-
requirement:
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
50
65
|
none: false
|
51
66
|
requirements:
|
52
67
|
- - ~>
|
@@ -54,10 +69,15 @@ dependencies:
|
|
54
69
|
version: '3.0'
|
55
70
|
type: :runtime
|
56
71
|
prerelease: false
|
57
|
-
version_requirements:
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '3.0'
|
58
78
|
- !ruby/object:Gem::Dependency
|
59
79
|
name: hooks
|
60
|
-
requirement:
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
61
81
|
none: false
|
62
82
|
requirements:
|
63
83
|
- - ! '>='
|
@@ -65,10 +85,15 @@ dependencies:
|
|
65
85
|
version: '0'
|
66
86
|
type: :runtime
|
67
87
|
prerelease: false
|
68
|
-
version_requirements:
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
89
|
+
none: false
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: '0'
|
69
94
|
- !ruby/object:Gem::Dependency
|
70
95
|
name: minitest
|
71
|
-
requirement:
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
72
97
|
none: false
|
73
98
|
requirements:
|
74
99
|
- - ! '>='
|
@@ -76,10 +101,15 @@ dependencies:
|
|
76
101
|
version: 2.8.1
|
77
102
|
type: :development
|
78
103
|
prerelease: false
|
79
|
-
version_requirements:
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: 2.8.1
|
80
110
|
- !ruby/object:Gem::Dependency
|
81
111
|
name: tzinfo
|
82
|
-
requirement:
|
112
|
+
requirement: !ruby/object:Gem::Requirement
|
83
113
|
none: false
|
84
114
|
requirements:
|
85
115
|
- - ! '>='
|
@@ -87,7 +117,12 @@ dependencies:
|
|
87
117
|
version: '0'
|
88
118
|
type: :development
|
89
119
|
prerelease: false
|
90
|
-
version_requirements:
|
120
|
+
version_requirements: !ruby/object:Gem::Requirement
|
121
|
+
none: false
|
122
|
+
requirements:
|
123
|
+
- - ! '>='
|
124
|
+
- !ruby/object:Gem::Version
|
125
|
+
version: '0'
|
91
126
|
description: Rails extensions for using Roar in the popular web framework.
|
92
127
|
email:
|
93
128
|
- apotonick@gmail.com
|
@@ -175,7 +210,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
175
210
|
version: '0'
|
176
211
|
requirements: []
|
177
212
|
rubyforge_project: roar-rails
|
178
|
-
rubygems_version: 1.8.
|
213
|
+
rubygems_version: 1.8.24
|
179
214
|
signing_key:
|
180
215
|
specification_version: 3
|
181
216
|
summary: Use Roar in Rails.
|