Permalink
Browse files

Merge pull request #5561 from carlosantoniodasilva/form-builder-block…

…-arg

Properly deprecate the block argument in AV FormBuilder
  • Loading branch information...
2 parents 045197f + 7a0cf2f commit de9c0ef8eff8bd9c92332b4b854772519b4ef7b9 @tenderlove tenderlove committed Mar 26, 2012
Showing with 21 additions and 3 deletions.
  1. +9 −3 actionpack/lib/action_view/helpers/form_helper.rb
  2. +12 −0 actionpack/test/template/form_helper_test.rb
@@ -9,6 +9,7 @@
require 'active_support/core_ext/object/blank'
require 'active_support/core_ext/string/output_safety'
require 'active_support/core_ext/array/extract_options'
+require 'active_support/deprecation'
module ActionView
# = Action View Form Helpers
@@ -22,7 +23,7 @@ module Helpers
# being routed to the appropriate controller action (with the appropriate <tt>:id</tt>
# parameter in the case of an existing resource), (ii) input fields should
# be named in such a way that in the controller their values appear in the
- # appropriate places within the +params+ hash, and (iii) for an existing record,
+ # appropriate places within the +params+ hash, and (iii) for an existing record,
# when the form is initially displayed, input fields corresponding to attributes
# of the resource should show the current values of those attributes.
#
@@ -156,7 +157,7 @@ def convert_to_model(object)
# if <tt>:person</tt> also happens to be the name of an instance variable
# <tt>@person</tt>, the default value of the field shown when the form is
# initially displayed (e.g. in the situation where you are editing an
- # existing record) will be the value of the corresponding attribute of
+ # existing record) will be the value of the corresponding attribute of
# <tt>@person</tt>.
#
# The rightmost argument to +form_for+ is an
@@ -1057,7 +1058,12 @@ def to_model
self
end
- def initialize(object_name, object, template, options)
+ def initialize(object_name, object, template, options, block=nil)
+ if block
+ ActiveSupport::Deprecation.warn(
+ "Giving a block to FormBuilder is deprecated and has no effect anymore.")
+ end
+
@nested_child_index = {}
@object_name, @object, @template, @options = object_name, object, template, options
@parent_builder = options[:parent_builder]
@@ -2231,6 +2231,18 @@ def test_fields_for_returns_block_result
assert_equal "fields", output
end
+ def test_form_builder_block_argument_deprecation
+ builder_class = Class.new(ActionView::Helpers::FormBuilder) do
+ def initialize(object_name, object, template, options, block)
+ super
+ end
+ end
+
+ assert_deprecated /Giving a block to FormBuilder is deprecated and has no effect anymore/ do
+ builder_class.new(:foo, nil, nil, {}, proc {})
+ end
+ end
+
protected
def hidden_fields(method = nil)

0 comments on commit de9c0ef

Please sign in to comment.