From f1b9d2dfc3dbe485aa4152e0a7f88e87fb52cd0d Mon Sep 17 00:00:00 2001 From: Fabio Yamate Date: Mon, 26 Sep 2011 23:41:53 -0300 Subject: [PATCH] Force wrappers name as symbols. --- lib/simple_form.rb | 8 ++++---- test/form_builder/wrapper_test.rb | 9 +++++++++ 2 files changed, 13 insertions(+), 4 deletions(-) diff --git a/lib/simple_form.rb b/lib/simple_form.rb index 0accb7aba..55e97009c 100644 --- a/lib/simple_form.rb +++ b/lib/simple_form.rb @@ -117,7 +117,7 @@ module SimpleForm # Retrieves a given wrapper def self.wrapper(name) - if wrapper = @@wrappers[name] + if wrapper = @@wrappers[name.to_sym] wrapper else raise WrapperNotFound, "Couldn't find wrapper with name #{name}" @@ -132,9 +132,9 @@ class WrapperNotFound < StandardError # and store it in the given name. def self.wrappers(*args, &block) if block_given? - options = args.extract_options! - name = args.first || :default - @@wrappers[name] = build(options, &block) + options = args.extract_options! + name = args.first || :default + @@wrappers[name.to_sym] = build(options, &block) else @@wrappers end diff --git a/test/form_builder/wrapper_test.rb b/test/form_builder/wrapper_test.rb index db82e507c..6932b892a 100644 --- a/test/form_builder/wrapper_test.rb +++ b/test/form_builder/wrapper_test.rb @@ -113,6 +113,15 @@ class WrapperTest < ActionView::TestCase assert_select "section.custom_wrapper div.another_wrapper input.string" end + test 'access wrappers with indifferent access' do + swap_wrapper :another do + with_form_for @user, :name, :wrapper => "another" + assert_select "section.custom_wrapper div.another_wrapper label" + assert_select "section.custom_wrapper div.another_wrapper input.string" + output_buffer.replace "" + end + end + test 'raise error when wrapper not found' do assert_raise SimpleForm::WrapperNotFound do with_form_for @user, :name, :wrapper => :not_found