diff --git a/lib/awesome_form/form_builder.rb b/lib/awesome_form/form_builder.rb index 106a05d..48317a4 100644 --- a/lib/awesome_form/form_builder.rb +++ b/lib/awesome_form/form_builder.rb @@ -6,11 +6,7 @@ def initialize(*) end def inputs(*args, &block) - options = {} - - attributes = args.select {|a| a.is_a? Symbol } - options_args = args.select {|a| a.is_a? Hash } - options_args.each {|h| options.merge! h } + attributes, options = filter_arguments(*args) attributes.map {|f| input f, options }.join("\n").html_safe end @@ -28,13 +24,9 @@ def input(attribute, options={}, &block) end def actions(*args, &block) - options = {} - - attributes = args.select {|a| a.is_a? Symbol } - options_args = args.select {|a| a.is_a? Hash } - options_args.each {|h| options.merge! h } + actions, options = filter_arguments(*args) - attributes.map {|f| input f, options }.join("\n").html_safe + actions.map {|f| input f, options }.join("\n").html_safe end def action(action, options={}, &block) @@ -63,6 +55,16 @@ def view_exists?(view) protected + def filter_arguments(*args) + options = {} + + symbols = args.select {|a| a.is_a? Symbol } + options_args = args.select {|a| a.is_a? Hash } + options_args.each {|h| options.merge! h } + + [symbols, options] + end + def partial_for_input(input_options) for_type = "awesome_form/#{AwesomeForm.theme}/inputs/#{input_options[:type]}" default_for_theme = "awesome_form/#{AwesomeForm.theme}/inputs/default"