josevalim-inherited_resources 0.4.4 → 0.4.5

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/CHANGELOG CHANGED
@@ -1,3 +1,7 @@
1
+ # Version 0.4.5
2
+
3
+ * Added fix when resource_url is not defined;
4
+
1
5
  # Version 0.4.4
2
6
 
3
7
  * Added better handling for namespaced controllers;
data/README CHANGED
@@ -1,6 +1,6 @@
1
1
  Inherited Resources
2
2
  License: MIT
3
- Version: 0.4.4
3
+ Version: 0.4.5
4
4
 
5
5
  You can also read this README in pretty html at the GitHub project Wiki page:
6
6
 
@@ -290,12 +290,13 @@ Then you will finally have:
290
290
 
291
291
  'Hooray! You just tuned your Aston Martin!'
292
292
 
293
- If your controller is namespaced, for example Deluxe::CarsController, the
294
- the messages will be checked in the following order:
293
+ If your controller is namespaced, for example Rars::CarsController, the
294
+ messages will be checked in the following order:
295
295
 
296
- flash.deluxe.cars.create.status
297
- flash.cars.create.status
298
- flash.actions.create.status
296
+ flash.rare.cars.create.notice
297
+ flash.rare.actions.create.notice
298
+ flash.cars.create.notice
299
+ flash.actions.create.notice
299
300
 
300
301
  Belongs to
301
302
  ----------
@@ -226,17 +226,18 @@ module InheritedResources
226
226
 
227
227
  if object.save
228
228
  set_flash_message!(:notice, '{{resource_name}} was successfully created.')
229
+ location_url = resource_url rescue nil # Sometimes resource_url is undefined
229
230
 
230
- respond_to(:with => object, :status => :created, :location => resource_url) do |format|
231
- block.call args_for_block(block, format, true) if block_given?
231
+ respond_to(:with => object, :status => :created, :location => location_url) do |format|
232
+ block.call(args_for_block(block, format, true)) if block_given?
232
233
  format.html { redirect_to(resource_url) }
233
234
  end
234
235
  else
235
236
  set_flash_message!(:error)
236
237
 
237
238
  respond_to(:with => object.errors, :status => :unprocessable_entity) do |format|
238
- block.call args_for_block(block, format, false) if block_given?
239
- format.html { render :action => "new" }
239
+ block.call(args_for_block(block, format, false)) if block_given?
240
+ format.html { render :action => 'new' }
240
241
  end
241
242
  end
242
243
  end
@@ -250,7 +251,7 @@ module InheritedResources
250
251
  set_flash_message!(:notice, '{{resource_name}} was successfully updated.')
251
252
 
252
253
  respond_to do |format|
253
- block.call args_for_block(block, format, true) if block_given?
254
+ block.call(args_for_block(block, format, true)) if block_given?
254
255
  format.html { redirect_to(resource_url) }
255
256
  format.all { head :ok }
256
257
  end
@@ -258,8 +259,8 @@ module InheritedResources
258
259
  set_flash_message!(:error)
259
260
 
260
261
  respond_to(:with => object.errors, :status => :unprocessable_entity) do |format|
261
- block.call args_for_block(block, format, false) if block_given?
262
- format.html { render :action => "edit" }
262
+ block.call(args_for_block(block, format, false)) if block_given?
263
+ format.html { render :action => 'edit' }
263
264
  end
264
265
  end
265
266
  end
@@ -176,24 +176,29 @@ module InheritedResources #:nodoc:
176
176
  #
177
177
  # 'Hooray! You just tuned your Aston Martin!'
178
178
  #
179
- # If your controller is namespaced, for example Deluxe::CarsController, the
179
+ # If your controller is namespaced, for example Rare::CarsController,
180
180
  # the messages will be checked in the following order:
181
181
  #
182
- # flash.deluxe.cars.create.status
182
+ # flash.rare.cars.create.status
183
+ # flash.rare.actions.create.status
183
184
  # flash.cars.create.status
184
185
  # flash.actions.create.status
185
186
  #
186
187
  def set_flash_message!(status, default_message = '')
187
- options = interpolation_options.merge({
188
- :default => [ :"flash.#{controller_name}.#{action_name}.#{status}",
189
- :"flash.actions.#{action_name}.#{status}",
190
- default_message ],
188
+ options = {
189
+ :default => default_message,
191
190
  :resource_name => resource_class.human_name,
192
- })
193
-
194
- unless controller_path == controller_name
195
- options[:default].unshift(:"flash.#{controller_path.gsub('/','.')}.#{action_name}.#{status}")
191
+ }.merge(interpolation_options)
192
+
193
+ defaults = []
194
+ slices = [:flash]
195
+ controller_path.split('/').each do |path|
196
+ slices << path
197
+ defaults << :"#{slices[0..-1].join('.')}.#{action_name}.#{status}"
198
+ defaults << :"#{slices[0..-2].join('.')}.actions.#{action_name}.#{status}"
196
199
  end
200
+ options[:default] = defaults.push(options[:default])
201
+ options[:default].flatten!
197
202
 
198
203
  # TODO Deprecate this whole begin/rescue block and replace it for:
199
204
  #
@@ -28,14 +28,14 @@ class FlashBaseHelpersTest < TEST_CLASS
28
28
  @request.accept = 'application/xml'
29
29
  end
30
30
 
31
- def test_default_success_flash_message_on_create
31
+ def test_success_flash_message_on_create_with_yml
32
32
  Address.stubs(:new).returns(mock_address(:save => true))
33
33
  @controller.stubs(:address_url)
34
34
  post :create
35
35
  assert_equal 'You created a new address close to <b>Ocean Avenue</b>.', flash[:notice]
36
36
  end
37
37
 
38
- def test_default_success_flash_message_on_create_for_namespaced_controller
38
+ def test_success_flash_message_on_create_with_namespaced_controller
39
39
  @controller = Admin::AddressesController.new
40
40
  Address.stubs(:new).returns(mock_address(:save => true))
41
41
  @controller.stubs(:address_url)
@@ -43,20 +43,28 @@ class FlashBaseHelpersTest < TEST_CLASS
43
43
  assert_equal 'Admin, you created a new address close to <b>Ocean Avenue</b>.', flash[:notice]
44
44
  end
45
45
 
46
- def test_set_success_flash_message_on_update
46
+ def test_failure_flash_message_on_create_with_namespaced_controller_actions
47
+ @controller = Admin::AddressesController.new
48
+ Address.stubs(:new).returns(mock_address(:save => false))
49
+ @controller.stubs(:address_url)
50
+ post :create
51
+ assert_equal 'Admin error message.', flash[:error]
52
+ end
53
+
54
+ def test_success_flash_message_on_update
47
55
  Address.stubs(:find).returns(mock_address(:update_attributes => true))
48
56
  put :update
49
57
  assert_response :success
50
58
  assert_equal 'Nice! Address was updated with success!', flash[:notice]
51
59
  end
52
60
 
53
- def test_set_failure_flash_message_on_update
61
+ def test_failure_flash_message_on_update
54
62
  Address.stubs(:find).returns(mock_address(:update_attributes => false, :errors => []))
55
63
  put :update
56
64
  assert_equal 'Oh no! We could not update your address!', flash[:error]
57
65
  end
58
66
 
59
- def test_default_success_flash_message_on_destroy
67
+ def test_success_flash_message_on_destroy
60
68
  Address.stubs(:find).returns(mock_address(:destroy => true))
61
69
  delete :destroy
62
70
  assert_equal 'Address was successfully destroyed.', flash[:notice]
@@ -7,6 +7,10 @@ en:
7
7
  notice: "Nice! {{resource_name}} was updated with success!"
8
8
  error: "Oh no! We could not update your address!"
9
9
  admin:
10
+ actions:
11
+ create:
12
+ notice: "Admin notice message."
13
+ error: "Admin error message."
10
14
  addresses:
11
15
  create:
12
16
  notice: "Admin, you created a new address close to <b>{{reference}}</b>."
data/test/test_helper.rb CHANGED
@@ -16,7 +16,7 @@ require 'action_controller/test_process'
16
16
 
17
17
  TEST_CLASS = ActionController::TestCase
18
18
 
19
- I18n.load_path << File.join(File.dirname(__FILE__), 'fixtures', 'en.yml')
19
+ I18n.load_path << File.join(File.dirname(__FILE__), 'locales', 'en.yml')
20
20
  I18n.reload!
21
21
 
22
22
  # Load respond_to before defining ApplicationController
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: josevalim-inherited_resources
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.4.4
4
+ version: 0.4.5
5
5
  platform: ruby
6
6
  authors:
7
7
  - "Jos\xC3\xA9 Valim"
@@ -9,7 +9,7 @@ autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
11
 
12
- date: 2009-02-27 00:00:00 -08:00
12
+ date: 2009-03-06 00:00:00 -08:00
13
13
  default_executable:
14
14
  dependencies: []
15
15
 
@@ -78,7 +78,7 @@ test_files:
78
78
  - test/singleton_test.rb
79
79
  - test/test_helper.rb
80
80
  - test/url_helpers_test.rb
81
- - test/fixtures/en.yml
81
+ - test/locales/en.yml
82
82
  - test/views/cities/edit.html.erb
83
83
  - test/views/cities/index.html.erb
84
84
  - test/views/cities/new.html.erb