Sha256: 1ab689a818f6ce89b8d50e1edd7a494946e3de18e36ce3f35f9407cf989d1eec
Contents?: true
Size: 1.5 KB
Versions: 1
Compression:
Stored size: 1.5 KB
Contents
# frozen_string_literal: true 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
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
formtastic-5.0.0 | lib/formtastic/inputs/base/html.rb |