Sha256: ca7f80d4de22f392c840657aedc6cb9c38eaed25a617cdd1c7942fd8517faa2a

Contents?: true

Size: 1.47 KB

Versions: 7

Compression:

Stored size: 1.47 KB

Contents

module Formtastic
  module Inputs
    module Base
      module Html

        # Defines how the instance of an input should be rendered to a HTML string.
        #
        # @abstract Implement this method in your input class to describe how the input should render itself.
        #
        # @example A basic label and text field input inside a standard wrapping might look like this:
        #     def to_html
        #       input_wrapping do
        #         label_html <<
        #         builder.text_field(method, input_html_options)
        #       end
        #     end
        def to_html
          raise NotImplementedError
        end

        def input_html_options
          {
            :id => dom_id,
            :required => required_attribute?,
            :autofocus => autofocus?,
            :readonly => readonly?
          }.merge(options[:input_html] || {})
        end

        def dom_id
          [
            builder.dom_id_namespace,
            sanitized_object_name,
            dom_index,
            association_primary_key || sanitized_method_name
          ].reject { |x| x.blank? }.join('_')
        end

        def dom_index
          if builder.options.has_key?(:index)
            builder.options[:index]
          elsif !builder.auto_index.blank?
            # TODO there's no coverage for this case, not sure how to create a scenario for it
            builder.auto_index
          else
            ""
          end
        end

      end
    end
  end
end

Version data entries

7 entries across 7 versions & 3 rubygems

Version Path
date_n_time_picker_activeadmin-0.1.2 vendor/bundle/ruby/2.6.0/gems/formtastic-4.0.0/lib/formtastic/inputs/base/html.rb
date_n_time_picker_activeadmin-0.1.1 vendor/bundle/ruby/2.6.0/gems/formtastic-4.0.0/lib/formtastic/inputs/base/html.rb
formtastic-4.0.0 lib/formtastic/inputs/base/html.rb
formtastic-4.0.0.rc1 lib/formtastic/inputs/base/html.rb
formtastic-3.1.5 lib/formtastic/inputs/base/html.rb
ish_lib_manager-0.0.1 test/dummy/vendor/bundle/ruby/2.3.0/gems/formtastic-3.1.4/lib/formtastic/inputs/base/html.rb
formtastic-3.1.4 lib/formtastic/inputs/base/html.rb