module LabeledFormHelper def labeled_form_for( name, *args, &block ) raise ArgumentError, "Missing block" unless block_given? options = (args.last.is_a?(Hash) ? args.pop : {}).merge(:builder=>LabeledFormBuilder) class_name = options.has_key?(:class) ? options.delete(:class) : 'form-container' id = (options.has_key?(:html) and options[:html].has_key?(:id)) ? "#{options[:html][:id]}-container" : 'form-container' concat( %Q|
|, block.binding ) form_for( name, *(args << options), &block ) concat( '
', block.binding ) end def remote_labeled_form_for( name, *args, &block ) raise ArgumentError, "Missing block" unless block_given? options = (args.last.is_a?(Hash) ? args.pop : {}).merge(:builder=>LabeledFormBuilder) class_name = options.has_key?(:class) ? options.delete(:class) : 'form-container' id = (options.has_key?(:html) and options[:html].has_key?(:id)) ? "#{options[:html][:id]}-container" : 'form-container' concat( %Q|
|, block.binding ) remote_form_for( name, *(args<< options), &block ) concat( '
', block.binding ) end alias :labeled_form_remote_for :remote_labeled_form_for def form_button_group(options={}, &block) raise ArgumentError, "Missing block" unless block_given? class_name = options.has_key?(:class) ? options.delete(:class) : 'button-group' concat( %Q|
|, block.binding ) concat( capture( &block ), block.binding ) concat( '
', block.binding ) end end