roar-rails 0.0.5 → 0.0.6

Sign up to get free protection for your applications and to get access to all the features.
data/.gitignore CHANGED
@@ -6,3 +6,4 @@ bin
6
6
  Gemfile.lock
7
7
  pkg/*
8
8
  test/dummy/log/*
9
+ .rvmrc
data/CHANGES.markdown CHANGED
@@ -1,3 +1,7 @@
1
+ h2. 0.0.6
2
+
3
+ * Make roar-rails rely on roar 0.10 and bigger.
4
+
1
5
  h2. 0.0.4
2
6
 
3
7
  * Added `#consume!` to infer representer name and parse the incoming document for a model.
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
 
@@ -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 |r|
22
- extend_with_representer!(r)
23
- r.to_hash
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, options.delete(:with_representer))
28
+ extend_with_representer!(model, representer)
27
29
  end
28
30
  super
29
31
  end
@@ -1,5 +1,5 @@
1
1
  module Roar
2
2
  module Rails
3
- VERSION = "0.0.5"
3
+ VERSION = "0.0.6"
4
4
  end
5
5
  end
data/lib/roar-rails.rb CHANGED
@@ -3,6 +3,7 @@ require "roar/representer"
3
3
  require "roar/rails/railtie"
4
4
 
5
5
  module Roar::Representer
6
+ autoload("XML", "roar/representer/xml")
6
7
  autoload("JSON", "roar/representer/json")
7
8
 
8
9
  module JSON
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.0"
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"
@@ -0,0 +1,6 @@
1
+ module SingerAliasRepresenter
2
+ include Roar::Representer::JSON
3
+
4
+ property :name, :from => :alias
5
+
6
+ end
@@ -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
- prerelease: false
5
- segments:
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
- date: 2012-03-23 00:00:00 +01:00
18
- default_executable:
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
- prerelease: false
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
- segments:
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
- requirement: &id002 !ruby/object:Gem::Requirement
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
- segments:
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
- requirement: &id003 !ruby/object:Gem::Requirement
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
- segments:
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
- requirement: &id004 !ruby/object:Gem::Requirement
56
+ version_requirements: !ruby/object:Gem::Requirement
66
57
  none: false
67
- requirements:
58
+ requirements:
68
59
  - - ~>
69
- - !ruby/object:Gem::Version
70
- segments:
71
- - 3
72
- - 0
73
- version: "3.0"
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
- requirement: &id005 !ruby/object:Gem::Requirement
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
- requirement: &id006 !ruby/object:Gem::Requirement
88
+ version_requirements: !ruby/object:Gem::Requirement
95
89
  none: false
96
- requirements:
97
- - - ">="
98
- - !ruby/object:Gem::Version
99
- segments:
100
- - 0
101
- version: "0"
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
- version_requirements: *id006
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
- has_rdoc: true
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
- segments:
185
- - 0
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
- segments:
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.3.7
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
-