Class: Forme::Formatter
- Inherits:
-
Object
- Object
- Forme::Formatter
- Defined in:
- lib/forme.rb
Overview
The default formatter used by the library. Any custom formatters should probably inherit from this formatter unless they have very special needs.
Unlike most other transformers which are registered as instances and use a functional style, this class is registered as a class due to the large amount of state it uses.
Registered as :default.
Defined Under Namespace
Constant Summary collapse
- ATTRIBUTE_OPTIONS =
These options are copied directly from the options hash to the the attributes hash, so they don’t need to be specified in the :attr option. However, they can be specified in both places, and if so, the :attr option version takes precedence.
[:name, :id, :placeholder, :value, :style]
- ATTRIBUTE_BOOLEAN_OPTIONS =
Options copied from the options hash into the attributes hash, where a true value in the options hash sets the attribute value to the same name as the key.
[:autofocus, :required, :disabled]
- CHECKBOX_MAP =
Used to specify the value of the hidden input created for checkboxes. Since the default for an unspecified checkbox value is 1, the default is
-
If the checkbox value is ‘t’, the hidden value is ‘f’, since that is
common usage for boolean values.
-
Hash.new(0)
Instance Attribute Summary collapse
-
#attr ⇒ Object
readonly
The attributes to to set on the lower level
Tag
form returned. -
#form ⇒ Object
readonly
The
Form
instance for the receiver, taken from theinput
. -
#input ⇒ Object
readonly
The
Input
instance for the receiver. -
#opts ⇒ Object
readonly
The
opts
hash of theinput
.
Class Method Summary collapse
-
.call(input) ⇒ Object
Create a new instance and call it.
Instance Method Summary collapse
-
#call(input) ⇒ Object
Transform the
input
into aTag
instance (or an array of them), wrapping it with theform
‘s wrapper, and the form’serror_handler
andlabeler
if theinput
has an:error
or:label
options.
Instance Attribute Details
#attr ⇒ Object (readonly)
The attributes to to set on the lower level Tag
form returned. This are derived from the input
‘s opts
, but some processing is done on them.
624 625 626 |
# File 'lib/forme.rb', line 624 def attr @attr end |
#form ⇒ Object (readonly)
The Form
instance for the receiver, taken from the input
.
615 616 617 |
# File 'lib/forme.rb', line 615 def form @form end |
#input ⇒ Object (readonly)
The Input
instance for the receiver. This is what the receiver converts to the lower level Tag
form (or an array of them).
619 620 621 |
# File 'lib/forme.rb', line 619 def input @input end |
#opts ⇒ Object (readonly)
The opts
hash of the input
.
627 628 629 |
# File 'lib/forme.rb', line 627 def opts @opts end |
Class Method Details
.call(input) ⇒ Object
Create a new instance and call it
610 611 612 |
# File 'lib/forme.rb', line 610 def self.call(input) new.call(input) end |
Instance Method Details
#call(input) ⇒ Object
Transform the input
into a Tag
instance (or an array of them), wrapping it with the form
‘s wrapper, and the form’s error_handler
and labeler
if the input
has an :error
or :label
options.
640 641 642 643 644 645 646 647 648 649 650 651 652 |
# File 'lib/forme.rb', line 640 def call(input) @input = input @form = input.form attr = input.opts[:attr] @attr = attr ? attr.dup : {} @opts = input.opts tag = convert_to_tag(input.type) tag = wrap_tag_with_label(tag) if input.opts[:label] tag = wrap_tag_with_error(tag) if input.opts[:error] wrap_tag(tag) end |