make_resourceful_rails2 1.0.1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (39) hide show
  1. data/Rakefile +31 -0
  2. data/VERSION +1 -0
  3. data/lib/make_resourceful.rb +2 -0
  4. data/lib/resourceful/base.rb +63 -0
  5. data/lib/resourceful/builder.rb +405 -0
  6. data/lib/resourceful/default/accessors.rb +418 -0
  7. data/lib/resourceful/default/actions.rb +101 -0
  8. data/lib/resourceful/default/callbacks.rb +51 -0
  9. data/lib/resourceful/default/responses.rb +118 -0
  10. data/lib/resourceful/default/urls.rb +136 -0
  11. data/lib/resourceful/generators/resourceful_scaffold/resourceful_scaffold_generator.rb +87 -0
  12. data/lib/resourceful/generators/resourceful_scaffold/templates/controller.rb +5 -0
  13. data/lib/resourceful/generators/resourceful_scaffold/templates/fixtures.yml +10 -0
  14. data/lib/resourceful/generators/resourceful_scaffold/templates/functional_test.rb +50 -0
  15. data/lib/resourceful/generators/resourceful_scaffold/templates/helper.rb +2 -0
  16. data/lib/resourceful/generators/resourceful_scaffold/templates/migration.rb +13 -0
  17. data/lib/resourceful/generators/resourceful_scaffold/templates/model.rb +2 -0
  18. data/lib/resourceful/generators/resourceful_scaffold/templates/unit_test.rb +7 -0
  19. data/lib/resourceful/generators/resourceful_scaffold/templates/view__form.haml +5 -0
  20. data/lib/resourceful/generators/resourceful_scaffold/templates/view_edit.haml +11 -0
  21. data/lib/resourceful/generators/resourceful_scaffold/templates/view_index.haml +5 -0
  22. data/lib/resourceful/generators/resourceful_scaffold/templates/view_new.haml +9 -0
  23. data/lib/resourceful/generators/resourceful_scaffold/templates/view_partial.haml +12 -0
  24. data/lib/resourceful/generators/resourceful_scaffold/templates/view_show.haml +14 -0
  25. data/lib/resourceful/maker.rb +92 -0
  26. data/lib/resourceful/response.rb +33 -0
  27. data/lib/resourceful/serialize.rb +185 -0
  28. data/spec/accessors_spec.rb +474 -0
  29. data/spec/actions_spec.rb +310 -0
  30. data/spec/base_spec.rb +12 -0
  31. data/spec/builder_spec.rb +332 -0
  32. data/spec/callbacks_spec.rb +71 -0
  33. data/spec/integration_spec.rb +394 -0
  34. data/spec/maker_spec.rb +91 -0
  35. data/spec/response_spec.rb +37 -0
  36. data/spec/responses_spec.rb +314 -0
  37. data/spec/serialize_spec.rb +133 -0
  38. data/spec/urls_spec.rb +282 -0
  39. metadata +114 -0
@@ -0,0 +1,282 @@
1
+ require File.dirname(__FILE__) + '/spec_helper'
2
+
3
+ describe Resourceful::Default::URLs, " for a controller with no parents or namespaces" do
4
+ include ControllerMocks
5
+ before :each do
6
+ mock_controller Resourceful::Default::URLs
7
+ @object = stub_model('Thing')
8
+ @controller.stubs(:current_object).returns(@object)
9
+
10
+ @controller.stubs(:current_model_name).returns('Thing')
11
+ @controller.stubs(:parent?).returns(false)
12
+ @controller.stubs(:namespaces).returns([])
13
+ end
14
+
15
+ it "should return nil for #url_helper_prefix" do
16
+ @controller.url_helper_prefix.should be_nil
17
+ end
18
+
19
+ it "should return the empty string for #collection_url_prefix" do
20
+ @controller.collection_url_prefix.should == ""
21
+ end
22
+
23
+ it "should get the path of current_object with #object_path" do
24
+ @controller.expects(:send).with('thing_path', @object)
25
+ @controller.object_path
26
+ end
27
+
28
+ it "should get the url of current_object with #object_url" do
29
+ @controller.expects(:send).with('thing_url', @object)
30
+ @controller.object_url
31
+ end
32
+
33
+ it "should get the path of the passed object with #object_path" do
34
+ model = stub_model('Thing')
35
+ @controller.expects(:send).with('thing_path', model)
36
+ @controller.object_path(model)
37
+ end
38
+
39
+ it "should get the url of the passed object with #object_url" do
40
+ model = stub_model('Thing')
41
+ @controller.expects(:send).with('thing_url', model)
42
+ @controller.object_url(model)
43
+ end
44
+
45
+ it "should get the path of current_object with #nested_object_path" do
46
+ @controller.expects(:send).with('thing_path', @object)
47
+ @controller.nested_object_path
48
+ end
49
+
50
+ it "should get the url of current_object with #nested_object_url" do
51
+ @controller.expects(:send).with('thing_url', @object)
52
+ @controller.nested_object_url
53
+ end
54
+
55
+ it "should get the path of the passed object with #nested_object_path" do
56
+ model = stub_model('Thing')
57
+ @controller.expects(:send).with('thing_path', model)
58
+ @controller.nested_object_path(model)
59
+ end
60
+
61
+ it "should get the url of the passed object with #nested_object_url" do
62
+ model = stub_model('Thing')
63
+ @controller.expects(:send).with('thing_url', model)
64
+ @controller.nested_object_url(model)
65
+ end
66
+
67
+ it "should get the edit path of current_object with #edit_object_path" do
68
+ @controller.expects(:send).with('edit_thing_path', @object)
69
+ @controller.edit_object_path
70
+ end
71
+
72
+ it "should get the edit url of current_object with #edit_object_url" do
73
+ @controller.expects(:send).with('edit_thing_url', @object)
74
+ @controller.edit_object_url
75
+ end
76
+
77
+ it "should get the edit path of the passed object with #edit_object_path" do
78
+ model = stub_model('Thing')
79
+ @controller.expects(:send).with('edit_thing_path', model)
80
+ @controller.edit_object_path(model)
81
+ end
82
+
83
+ it "should get the edit url of the passed object with #edit_object_url" do
84
+ model = stub_model('Thing')
85
+ @controller.expects(:send).with('edit_thing_url', model)
86
+ @controller.edit_object_url(model)
87
+ end
88
+
89
+ it "should get the plural path of the current model with #objects_path" do
90
+ @controller.expects(:send).with('things_path')
91
+ @controller.objects_path
92
+ end
93
+
94
+ it "should get the plural url of the current model with #objects_url" do
95
+ @controller.expects(:send).with('things_url')
96
+ @controller.objects_url
97
+ end
98
+
99
+ it "should get the new path of the current model with #new_object_path" do
100
+ @controller.expects(:send).with('new_thing_path')
101
+ @controller.new_object_path
102
+ end
103
+
104
+ it "should get the new url of the current model with #new_object_url" do
105
+ @controller.expects(:send).with('new_thing_url')
106
+ @controller.new_object_url
107
+ end
108
+ end
109
+
110
+ describe Resourceful::Default::URLs, " for a controller with a parent object" do
111
+ include ControllerMocks
112
+ before :each do
113
+ mock_controller Resourceful::Default::URLs
114
+ @object = stub_model('Thing')
115
+ @controller.stubs(:current_object).returns(@object)
116
+
117
+ @controller.stubs(:current_model_name).returns('Thing')
118
+
119
+ @person = stub_model('Person')
120
+ @controller.stubs(:parent_object).returns(@person)
121
+ @controller.stubs(:parent_name).returns('person')
122
+ @controller.stubs(:parent?).returns(true)
123
+ @controller.stubs(:parent_class_name).returns('Person')
124
+ @controller.stubs(:namespaces).returns([])
125
+ end
126
+
127
+ it "should return nil for #url_helper_prefix" do
128
+ @controller.url_helper_prefix.should be_nil
129
+ end
130
+
131
+ it "should return the underscored parent name for #collection_url_prefix" do
132
+ @controller.collection_url_prefix.should == "person_"
133
+ end
134
+
135
+ it "should get the path of current_object with #object_path" do
136
+ @controller.expects(:send).with('person_thing_path', @person, @object)
137
+ @controller.object_path
138
+ end
139
+
140
+ it "should get the nested path of current_object with #nested_object_path" do
141
+ @controller.expects(:send).with('person_thing_path', @person, @object)
142
+ @controller.nested_object_path
143
+ end
144
+
145
+ it "should get the nested url of current_object with #nested_object_url" do
146
+ @controller.expects(:send).with('person_thing_url', @person, @object)
147
+ @controller.nested_object_url
148
+ end
149
+
150
+ it "should get the nested path of the passed object with #nested_object_path" do
151
+ object = stub_model('Thing')
152
+ @controller.expects(:send).with('person_thing_path', @person, object)
153
+ @controller.nested_object_path object
154
+ end
155
+
156
+ it "should get the nested url of the passed object with #nested_object_url" do
157
+ object = stub_model('Thing')
158
+ @controller.expects(:send).with('person_thing_url', @person, object)
159
+ @controller.nested_object_url object
160
+ end
161
+
162
+ it "should get the plural path of the current model and its parent with #objects_path" do
163
+ @controller.expects(:send).with('person_things_path', @person)
164
+ @controller.objects_path
165
+ end
166
+
167
+ it "should get the edit path of the current model with #edit_object_path" do
168
+ @controller.expects(:send).with('edit_person_thing_path', @person, @object)
169
+ @controller.edit_object_path
170
+ end
171
+
172
+ it "should get the new path of the current model and its parent with #new_object_path" do
173
+ @controller.expects(:send).with('new_person_thing_path', @person)
174
+ @controller.new_object_path
175
+ end
176
+
177
+ it "should get the path of the parent_object with #parent_path" do
178
+ pending
179
+ @controller.expects(:send).with('person_path', @person)
180
+ @controller.parent_path
181
+ end
182
+
183
+ it "should get the url of the parent_object with #parent_url" do
184
+ pending
185
+ @controller.expects(:send).with('person_url', @person)
186
+ @controller.parent_url
187
+ end
188
+
189
+ it "should get the path of the passed object with #parent_path" do
190
+ pending
191
+ model = stub_model('Person')
192
+ @controller.expects(:send).with('person_path', model)
193
+ @controller.parent_path model
194
+ end
195
+
196
+ it "should get the url of the passed object with #parent_url" do
197
+ pending
198
+ model = stub_model('Person')
199
+ @controller.expects(:send).with('person_url', model)
200
+ @controller.parent_url model
201
+ end
202
+ end
203
+
204
+ describe Resourceful::Default::URLs, " for a controller within a namespace" do
205
+ include ControllerMocks
206
+ before :each do
207
+ mock_controller Resourceful::Default::URLs
208
+ @object = stub_model('Thing')
209
+ @controller.stubs(:current_object).returns(@object)
210
+
211
+ @controller.stubs(:current_model_name).returns('Thing')
212
+
213
+ @controller.stubs(:parent?).returns(false)
214
+ @controller.stubs(:namespaces).returns([:admin, :main])
215
+ end
216
+
217
+ it "should return the underscored list of namespaces for #url_helper_prefix" do
218
+ @controller.url_helper_prefix.should == "admin_main_"
219
+ end
220
+
221
+ it "should get the namespaced path of current_object with #object_path" do
222
+ @controller.expects(:send).with('admin_main_thing_path', @object)
223
+ @controller.object_path
224
+ end
225
+
226
+ it "should get the namespaced plural path of the current model with #objects_path" do
227
+ @controller.expects(:send).with('admin_main_things_path')
228
+ @controller.objects_path
229
+ end
230
+
231
+ it "should get the edit path of the current model with #edit_object_path" do
232
+ @controller.expects(:send).with('edit_admin_main_thing_path', @object)
233
+ @controller.edit_object_path
234
+ end
235
+
236
+ it "should get the new path of the current model with #new_object_path" do
237
+ @controller.expects(:send).with('new_admin_main_thing_path')
238
+ @controller.new_object_path
239
+ end
240
+ end
241
+
242
+ describe Resourceful::Default::URLs, " for a controller with a parent object and within a namespace" do
243
+ include ControllerMocks
244
+ before :each do
245
+ mock_controller Resourceful::Default::URLs
246
+ @object = stub_model('Thing')
247
+ @controller.stubs(:current_object).returns(@object)
248
+
249
+ @controller.stubs(:current_model_name).returns('Thing')
250
+
251
+ @person = stub_model('Person')
252
+ @controller.stubs(:parent_object).returns(@person)
253
+ @controller.stubs(:parent_name).returns('person')
254
+ @controller.stubs(:parent?).returns(true)
255
+ @controller.stubs(:parent_class_name).returns('Person')
256
+ @controller.stubs(:namespaces).returns([:admin, :main])
257
+ end
258
+
259
+ it "should return the underscored list of namespaces for #url_helper_prefix" do
260
+ @controller.url_helper_prefix.should == "admin_main_"
261
+ end
262
+
263
+ it "should get the namespaced path of current_object with #object_path" do
264
+ @controller.expects(:send).with('admin_main_person_thing_path', @person, @object)
265
+ @controller.object_path
266
+ end
267
+
268
+ it "should get the namespaced plural path of the current model and its parent with #objects_path" do
269
+ @controller.expects(:send).with('admin_main_person_things_path', @person)
270
+ @controller.objects_path
271
+ end
272
+
273
+ it "should get the edit path of the current model with #edit_object_path" do
274
+ @controller.expects(:send).with('edit_admin_main_person_thing_path', @person, @object)
275
+ @controller.edit_object_path
276
+ end
277
+
278
+ it "should get the new path of the current model and its parent with #new_object_path" do
279
+ @controller.expects(:send).with('new_admin_main_person_thing_path', @person)
280
+ @controller.new_object_path
281
+ end
282
+ end
metadata ADDED
@@ -0,0 +1,114 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: make_resourceful_rails2
3
+ version: !ruby/object:Gem::Version
4
+ hash: 21
5
+ prerelease:
6
+ segments:
7
+ - 1
8
+ - 0
9
+ - 1
10
+ version: 1.0.1
11
+ platform: ruby
12
+ authors:
13
+ - Ben Wagaman
14
+ autorequire:
15
+ bindir: bin
16
+ cert_chain: []
17
+
18
+ date: 2013-01-16 00:00:00 -05:00
19
+ default_executable:
20
+ dependencies: []
21
+
22
+ description: " Take back control of your Controllers. Make them awesome. Make them sleek. Make them resourceful.\n"
23
+ email: ben@wagaman.org
24
+ executables: []
25
+
26
+ extensions: []
27
+
28
+ extra_rdoc_files: []
29
+
30
+ files:
31
+ - lib/make_resourceful.rb
32
+ - lib/resourceful/maker.rb
33
+ - lib/resourceful/default/accessors.rb
34
+ - lib/resourceful/default/callbacks.rb
35
+ - lib/resourceful/default/responses.rb
36
+ - lib/resourceful/default/actions.rb
37
+ - lib/resourceful/default/urls.rb
38
+ - lib/resourceful/builder.rb
39
+ - lib/resourceful/serialize.rb
40
+ - lib/resourceful/response.rb
41
+ - lib/resourceful/base.rb
42
+ - lib/resourceful/generators/resourceful_scaffold/templates/migration.rb
43
+ - lib/resourceful/generators/resourceful_scaffold/templates/view_show.haml
44
+ - lib/resourceful/generators/resourceful_scaffold/templates/view_partial.haml
45
+ - lib/resourceful/generators/resourceful_scaffold/templates/model.rb
46
+ - lib/resourceful/generators/resourceful_scaffold/templates/controller.rb
47
+ - lib/resourceful/generators/resourceful_scaffold/templates/view__form.haml
48
+ - lib/resourceful/generators/resourceful_scaffold/templates/helper.rb
49
+ - lib/resourceful/generators/resourceful_scaffold/templates/view_edit.haml
50
+ - lib/resourceful/generators/resourceful_scaffold/templates/fixtures.yml
51
+ - lib/resourceful/generators/resourceful_scaffold/templates/view_index.haml
52
+ - lib/resourceful/generators/resourceful_scaffold/templates/view_new.haml
53
+ - lib/resourceful/generators/resourceful_scaffold/templates/unit_test.rb
54
+ - lib/resourceful/generators/resourceful_scaffold/templates/functional_test.rb
55
+ - lib/resourceful/generators/resourceful_scaffold/resourceful_scaffold_generator.rb
56
+ - Rakefile
57
+ - VERSION
58
+ - spec/serialize_spec.rb
59
+ - spec/maker_spec.rb
60
+ - spec/base_spec.rb
61
+ - spec/response_spec.rb
62
+ - spec/integration_spec.rb
63
+ - spec/callbacks_spec.rb
64
+ - spec/builder_spec.rb
65
+ - spec/responses_spec.rb
66
+ - spec/accessors_spec.rb
67
+ - spec/urls_spec.rb
68
+ - spec/actions_spec.rb
69
+ has_rdoc: true
70
+ homepage: http://github.com/jamin4jc/make_resourceful
71
+ licenses: []
72
+
73
+ post_install_message:
74
+ rdoc_options: []
75
+
76
+ require_paths:
77
+ - lib
78
+ required_ruby_version: !ruby/object:Gem::Requirement
79
+ none: false
80
+ requirements:
81
+ - - ">="
82
+ - !ruby/object:Gem::Version
83
+ hash: 3
84
+ segments:
85
+ - 0
86
+ version: "0"
87
+ required_rubygems_version: !ruby/object:Gem::Requirement
88
+ none: false
89
+ requirements:
90
+ - - ">="
91
+ - !ruby/object:Gem::Version
92
+ hash: 3
93
+ segments:
94
+ - 0
95
+ version: "0"
96
+ requirements: []
97
+
98
+ rubyforge_project:
99
+ rubygems_version: 1.5.3
100
+ signing_key:
101
+ specification_version: 3
102
+ summary: An elegant, structured way to build ActionPack Controllers (forked to work with Rails 2.x)
103
+ test_files:
104
+ - spec/serialize_spec.rb
105
+ - spec/maker_spec.rb
106
+ - spec/base_spec.rb
107
+ - spec/response_spec.rb
108
+ - spec/integration_spec.rb
109
+ - spec/callbacks_spec.rb
110
+ - spec/builder_spec.rb
111
+ - spec/responses_spec.rb
112
+ - spec/accessors_spec.rb
113
+ - spec/urls_spec.rb
114
+ - spec/actions_spec.rb