lib/informant.rb
def build_shell(method, options, template = 'default_field') #:nodoc:

      # Build new options hash for custom label options.
      label_options = options.reject{ |i,j| !@@custom_label_options.include? i }

      # Build new options hash for custom field options.
      field_options = options.reject{ |i,j| !@@custom_field_options.include? i }

      # Remove custom options from options hash so things like
      # <tt>include_blank</tt> aren't added as HTML attributes.
      options.reject!{ |i,j| @@custom_options.include? i }

      locals = {
        :element     => yield,
        :label       => label(method, field_options[:label], label_options),
        :description => field_options[:description],
        :div_id      => "#{@object_name}_#{method}_field",
        :required    => field_options[:required],
        :decoration  => field_options[:decoration] || nil
      }
      send("#{template}_template", locals).html_safe
    end
def build_shell(method, options, template = 'default_field') #:nodoc:

      # Build new options hash for custom label options.
      label_options = options.reject{ |i,j| !@@custom_label_options.include? i }

      # Build new options hash for custom field options.
      field_options = options.reject{ |i,j| !@@custom_field_options.include? i }

      # Remove custom options from options hash so things like
      # <tt>include_blank</tt> aren't added as HTML attributes.
      options.reject!{ |i,j| @@custom_options.include? i }

      locals = {
        :element     => yield,
        :label       => label(method, field_options[:label], label_options),
        :description => field_options[:description],
        :div_id      => "#{@object_name}_#{method}_field",
        :required    => field_options[:required],
        :decoration  => field_options[:decoration] || nil
      }
      send("#{template}_template", locals).html_safe
    end
---------------------------------------------------------------

 Insert a field into its HTML "shell".