Sha256: e76d1f6d3f72da687e20b6cb2fef23ca416787da85b8ef4cc50d67b045810303

Contents?: true

Size: 1.21 KB

Versions: 23

Compression:

Stored size: 1.21 KB

Contents

module InterfaceBuilder
  module FormBuilders
    class ThemedFormBuilder < ActionView::Helpers::FormBuilder
      include AbstractFormBuilder
  
      helpers = field_helpers +
          %w{date_select datetime_select time_select} +
          %w{collection_select select country_select time_zone_select} -
          %w{hidden_field fields_for submit} # Don't decorate these

      helpers.each do |name|
        define_method(name) do |field, *args|
          options = args.extract_options!
          args << options
        
          label = if object.class.respond_to? :human_attribute_name
            object.class.try(:human_attribute_name, field)
          else
            object.t field
          end
        
          options[:label] = label unless options.include? :label

          inject_styles! options, name

          input = super field, *args

          remove_styles! options

          custom_helper input, options, field, object, *args
        end
      end
    
      def error_messages
        errors = object.errors.on(:base) || []
        custom_error_messages errors
      end

      protected
  
      def object
        @object ||= @template.instance_variable_get "@#{@object_name}"
      end
    end
  end
end

Version data entries

23 entries across 23 versions & 1 rubygems

Version Path
rails-ext-0.3.27 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.25 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.24 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.23 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.22 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.21 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.20 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.19 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.18 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.17 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.16 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.15 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.14 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.13 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.12 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.11 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.10 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.9 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.8 lib/interface_builder/form_builders/themed_form_builder.rb
rails-ext-0.3.6 lib/interface_builder/form_builders/themed_form_builder.rb