roar-rails 0.0.5 → 0.0.6
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/.gitignore +1 -0
- data/CHANGES.markdown +4 -0
- data/README.markdown +2 -0
- data/lib/roar/rails/responder.rb +6 -4
- data/lib/roar/rails/version.rb +1 -1
- data/lib/roar-rails.rb +1 -0
- data/roar-rails.gemspec +1 -1
- data/test/dummy/app/representers/singer_alias_representer.rb +6 -0
- data/test/responder_test.rb +10 -0
- metadata +97 -102
data/.gitignore
CHANGED
data/CHANGES.markdown
CHANGED
data/README.markdown
CHANGED
@@ -91,10 +91,12 @@ Any URL helpers from the Rails app are automatically available in representers.
|
|
91
91
|
```ruby
|
92
92
|
module FruitRepresenter
|
93
93
|
include Roar::Representer::JSON
|
94
|
+
include Roar::Representer::Feature::Hypermedia
|
94
95
|
|
95
96
|
link :self do
|
96
97
|
fruit_url self
|
97
98
|
end
|
99
|
+
end
|
98
100
|
```
|
99
101
|
To get the hyperlinks up and running, please make sure to set the right _host name_ in your environment files (config/environments):
|
100
102
|
|
data/lib/roar/rails/responder.rb
CHANGED
@@ -17,13 +17,15 @@ module Roar::Rails
|
|
17
17
|
|
18
18
|
def display(model, given_options={})
|
19
19
|
# TODO: remove the [] semantics, this should be done with a Collection representer.
|
20
|
+
representer = options.delete(:with_representer)
|
21
|
+
|
20
22
|
if model.respond_to?(:map!)
|
21
|
-
model.map! do |
|
22
|
-
extend_with_representer!(
|
23
|
-
|
23
|
+
model.map! do |m|
|
24
|
+
extend_with_representer!(m, representer)
|
25
|
+
m.to_hash
|
24
26
|
end
|
25
27
|
else
|
26
|
-
extend_with_representer!(model,
|
28
|
+
extend_with_representer!(model, representer)
|
27
29
|
end
|
28
30
|
super
|
29
31
|
end
|
data/lib/roar/rails/version.rb
CHANGED
data/lib/roar-rails.rb
CHANGED
data/roar-rails.gemspec
CHANGED
@@ -18,7 +18,7 @@ Gem::Specification.new do |s|
|
|
18
18
|
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
19
19
|
s.require_paths = ["lib"]
|
20
20
|
|
21
|
-
s.add_runtime_dependency "roar", "~> 0.10
|
21
|
+
s.add_runtime_dependency "roar", "~> 0.10"
|
22
22
|
s.add_runtime_dependency "test_xml"
|
23
23
|
s.add_runtime_dependency "actionpack", "~> 3.0"
|
24
24
|
s.add_runtime_dependency "railties", "~> 3.0"
|
data/test/responder_test.rb
CHANGED
@@ -23,6 +23,11 @@ class ResponderTest < ActionController::TestCase
|
|
23
23
|
singers = [Singer.new("Bumi"), Singer.new("Bjork"), Singer.new("Sinead")]
|
24
24
|
respond_with singers
|
25
25
|
end
|
26
|
+
|
27
|
+
def collection_of_custom_representers
|
28
|
+
singers = [Singer.new("Bumi"), Singer.new("Bjork"), Singer.new("Sinead")]
|
29
|
+
respond_with singers, :with_representer => SingerAliasRepresenter
|
30
|
+
end
|
26
31
|
end
|
27
32
|
|
28
33
|
tests SingersController
|
@@ -42,6 +47,11 @@ class ResponderTest < ActionController::TestCase
|
|
42
47
|
assert_equal singers.map(&:to_hash).to_json, @response.body
|
43
48
|
end
|
44
49
|
|
50
|
+
test "custom responder works with collections" do
|
51
|
+
get :collection_of_custom_representers, :format => 'json'
|
52
|
+
assert_equal singers.map {|s| s.extend(SingerAliasRepresenter).to_hash }.to_json, @response.body
|
53
|
+
end
|
54
|
+
|
45
55
|
def singer(name="Bumi")
|
46
56
|
singer = Musician.new(name)
|
47
57
|
singer.extend SingerRepresenter
|
metadata
CHANGED
@@ -1,116 +1,119 @@
|
|
1
|
-
--- !ruby/object:Gem::Specification
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
2
|
name: roar-rails
|
3
|
-
version: !ruby/object:Gem::Version
|
4
|
-
|
5
|
-
|
6
|
-
- 0
|
7
|
-
- 0
|
8
|
-
- 5
|
9
|
-
version: 0.0.5
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
version: 0.0.6
|
5
|
+
prerelease:
|
10
6
|
platform: ruby
|
11
|
-
authors:
|
7
|
+
authors:
|
12
8
|
- Nick Sutterer
|
13
9
|
autorequire:
|
14
10
|
bindir: bin
|
15
11
|
cert_chain: []
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
dependencies:
|
20
|
-
- !ruby/object:Gem::Dependency
|
12
|
+
date: 2012-06-05 00:00:00.000000000 Z
|
13
|
+
dependencies:
|
14
|
+
- !ruby/object:Gem::Dependency
|
21
15
|
name: roar
|
22
|
-
|
23
|
-
requirement: &id001 !ruby/object:Gem::Requirement
|
16
|
+
requirement: !ruby/object:Gem::Requirement
|
24
17
|
none: false
|
25
|
-
requirements:
|
18
|
+
requirements:
|
26
19
|
- - ~>
|
27
|
-
- !ruby/object:Gem::Version
|
28
|
-
|
29
|
-
- 0
|
30
|
-
- 10
|
31
|
-
- 0
|
32
|
-
version: 0.10.0
|
20
|
+
- !ruby/object:Gem::Version
|
21
|
+
version: '0.10'
|
33
22
|
type: :runtime
|
34
|
-
version_requirements: *id001
|
35
|
-
- !ruby/object:Gem::Dependency
|
36
|
-
name: test_xml
|
37
23
|
prerelease: false
|
38
|
-
|
24
|
+
version_requirements: !ruby/object:Gem::Requirement
|
25
|
+
none: false
|
26
|
+
requirements:
|
27
|
+
- - ~>
|
28
|
+
- !ruby/object:Gem::Version
|
29
|
+
version: '0.10'
|
30
|
+
- !ruby/object:Gem::Dependency
|
31
|
+
name: test_xml
|
32
|
+
requirement: !ruby/object:Gem::Requirement
|
39
33
|
none: false
|
40
|
-
requirements:
|
41
|
-
- -
|
42
|
-
- !ruby/object:Gem::Version
|
43
|
-
|
44
|
-
- 0
|
45
|
-
version: "0"
|
34
|
+
requirements:
|
35
|
+
- - ! '>='
|
36
|
+
- !ruby/object:Gem::Version
|
37
|
+
version: '0'
|
46
38
|
type: :runtime
|
47
|
-
version_requirements: *id002
|
48
|
-
- !ruby/object:Gem::Dependency
|
49
|
-
name: actionpack
|
50
39
|
prerelease: false
|
51
|
-
|
40
|
+
version_requirements: !ruby/object:Gem::Requirement
|
41
|
+
none: false
|
42
|
+
requirements:
|
43
|
+
- - ! '>='
|
44
|
+
- !ruby/object:Gem::Version
|
45
|
+
version: '0'
|
46
|
+
- !ruby/object:Gem::Dependency
|
47
|
+
name: actionpack
|
48
|
+
requirement: !ruby/object:Gem::Requirement
|
52
49
|
none: false
|
53
|
-
requirements:
|
50
|
+
requirements:
|
54
51
|
- - ~>
|
55
|
-
- !ruby/object:Gem::Version
|
56
|
-
|
57
|
-
- 3
|
58
|
-
- 0
|
59
|
-
version: "3.0"
|
52
|
+
- !ruby/object:Gem::Version
|
53
|
+
version: '3.0'
|
60
54
|
type: :runtime
|
61
|
-
version_requirements: *id003
|
62
|
-
- !ruby/object:Gem::Dependency
|
63
|
-
name: railties
|
64
55
|
prerelease: false
|
65
|
-
|
56
|
+
version_requirements: !ruby/object:Gem::Requirement
|
66
57
|
none: false
|
67
|
-
requirements:
|
58
|
+
requirements:
|
68
59
|
- - ~>
|
69
|
-
- !ruby/object:Gem::Version
|
70
|
-
|
71
|
-
|
72
|
-
|
73
|
-
|
60
|
+
- !ruby/object:Gem::Version
|
61
|
+
version: '3.0'
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: railties
|
64
|
+
requirement: !ruby/object:Gem::Requirement
|
65
|
+
none: false
|
66
|
+
requirements:
|
67
|
+
- - ~>
|
68
|
+
- !ruby/object:Gem::Version
|
69
|
+
version: '3.0'
|
74
70
|
type: :runtime
|
75
|
-
version_requirements: *id004
|
76
|
-
- !ruby/object:Gem::Dependency
|
77
|
-
name: minitest
|
78
71
|
prerelease: false
|
79
|
-
|
72
|
+
version_requirements: !ruby/object:Gem::Requirement
|
73
|
+
none: false
|
74
|
+
requirements:
|
75
|
+
- - ~>
|
76
|
+
- !ruby/object:Gem::Version
|
77
|
+
version: '3.0'
|
78
|
+
- !ruby/object:Gem::Dependency
|
79
|
+
name: minitest
|
80
|
+
requirement: !ruby/object:Gem::Requirement
|
80
81
|
none: false
|
81
|
-
requirements:
|
82
|
-
- -
|
83
|
-
- !ruby/object:Gem::Version
|
84
|
-
segments:
|
85
|
-
- 2
|
86
|
-
- 8
|
87
|
-
- 1
|
82
|
+
requirements:
|
83
|
+
- - ! '>='
|
84
|
+
- !ruby/object:Gem::Version
|
88
85
|
version: 2.8.1
|
89
86
|
type: :development
|
90
|
-
version_requirements: *id005
|
91
|
-
- !ruby/object:Gem::Dependency
|
92
|
-
name: tzinfo
|
93
87
|
prerelease: false
|
94
|
-
|
88
|
+
version_requirements: !ruby/object:Gem::Requirement
|
95
89
|
none: false
|
96
|
-
requirements:
|
97
|
-
- -
|
98
|
-
- !ruby/object:Gem::Version
|
99
|
-
|
100
|
-
|
101
|
-
|
90
|
+
requirements:
|
91
|
+
- - ! '>='
|
92
|
+
- !ruby/object:Gem::Version
|
93
|
+
version: 2.8.1
|
94
|
+
- !ruby/object:Gem::Dependency
|
95
|
+
name: tzinfo
|
96
|
+
requirement: !ruby/object:Gem::Requirement
|
97
|
+
none: false
|
98
|
+
requirements:
|
99
|
+
- - ! '>='
|
100
|
+
- !ruby/object:Gem::Version
|
101
|
+
version: '0'
|
102
102
|
type: :development
|
103
|
-
|
103
|
+
prerelease: false
|
104
|
+
version_requirements: !ruby/object:Gem::Requirement
|
105
|
+
none: false
|
106
|
+
requirements:
|
107
|
+
- - ! '>='
|
108
|
+
- !ruby/object:Gem::Version
|
109
|
+
version: '0'
|
104
110
|
description: Rails extensions for using Roar in the popular web framework.
|
105
|
-
email:
|
111
|
+
email:
|
106
112
|
- apotonick@gmail.com
|
107
113
|
executables: []
|
108
|
-
|
109
114
|
extensions: []
|
110
|
-
|
111
115
|
extra_rdoc_files: []
|
112
|
-
|
113
|
-
files:
|
116
|
+
files:
|
114
117
|
- .gitignore
|
115
118
|
- .travis.yml
|
116
119
|
- CHANGES.markdown
|
@@ -132,6 +135,7 @@ files:
|
|
132
135
|
- test/dummy/app/controllers/application_controller.rb
|
133
136
|
- test/dummy/app/controllers/singers_controller.rb
|
134
137
|
- test/dummy/app/helpers/application_helper.rb
|
138
|
+
- test/dummy/app/representers/singer_alias_representer.rb
|
135
139
|
- test/dummy/app/representers/singer_representer.rb
|
136
140
|
- test/dummy/app/views/layouts/application.html.erb
|
137
141
|
- test/dummy/app/views/musician/featured.html.erb
|
@@ -167,37 +171,28 @@ files:
|
|
167
171
|
- test/test_case_test.rb
|
168
172
|
- test/test_helper.rb
|
169
173
|
- test/validations_test.rb
|
170
|
-
|
171
|
-
homepage: ""
|
174
|
+
homepage: ''
|
172
175
|
licenses: []
|
173
|
-
|
174
176
|
post_install_message:
|
175
177
|
rdoc_options: []
|
176
|
-
|
177
|
-
require_paths:
|
178
|
+
require_paths:
|
178
179
|
- lib
|
179
|
-
required_ruby_version: !ruby/object:Gem::Requirement
|
180
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
180
181
|
none: false
|
181
|
-
requirements:
|
182
|
-
- -
|
183
|
-
- !ruby/object:Gem::Version
|
184
|
-
|
185
|
-
|
186
|
-
version: "0"
|
187
|
-
required_rubygems_version: !ruby/object:Gem::Requirement
|
182
|
+
requirements:
|
183
|
+
- - ! '>='
|
184
|
+
- !ruby/object:Gem::Version
|
185
|
+
version: '0'
|
186
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
188
187
|
none: false
|
189
|
-
requirements:
|
190
|
-
- -
|
191
|
-
- !ruby/object:Gem::Version
|
192
|
-
|
193
|
-
- 0
|
194
|
-
version: "0"
|
188
|
+
requirements:
|
189
|
+
- - ! '>='
|
190
|
+
- !ruby/object:Gem::Version
|
191
|
+
version: '0'
|
195
192
|
requirements: []
|
196
|
-
|
197
193
|
rubyforge_project: roar-rails
|
198
|
-
rubygems_version: 1.
|
194
|
+
rubygems_version: 1.8.24
|
199
195
|
signing_key:
|
200
196
|
specification_version: 3
|
201
197
|
summary: Use Roar in Rails.
|
202
198
|
test_files: []
|
203
|
-
|