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 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
-