class Arbre::Form::Config
Attributes
classes[RW]
components[RW]
wrappers[RW]
Public Class Methods
new(&block)
click to toggle source
# File lib/arbre/form/config.rb, line 20 def initialize(&block) self.wrappers = OpenStruct.new( field: Arbre::HTML::Div, group: Arbre::Form::Component::Group, association: Arbre::Form::Component::Group, record: Arbre::HTML::Fieldset, error: Arbre::Form::Field::Validation, success: Arbre::Form::Field::Validation, ) self.classes = OpenStruct.new( error: 'is-invalid', errors: 'invalid-feedback', success: 'is-valid', successes: 'valid-feedback' ) self.components = OpenStruct.new( input: Component.new( tag: Arbre::HTML::Input ), checkbox: Component.new( tag: Arbre::HTML::Input, type: 'checkbox', formatter: proc { |value| value ? '1' : '0' }, ), date: Component.new(tag: Arbre::HTML::Input, type: 'date', formatter: proc { |date| date.strftime('%Y-%m-%d') if date }, ), datetime: Component.new( tag: Arbre::HTML::Input, type: 'datetime-local', formatter: proc { |time| time.strftime('%Y-%m-%dT%H:%M') if time } ), email: Component.new( tag: Arbre::HTML::Input, type: 'email' ), file: Component.new( tag: Arbre::HTML::Input, type: 'file' ), hidden: Component.new( tag: Arbre::HTML::Input, type: 'hidden' ), image: Component.new( tag: Arbre::HTML::Input, type: 'image' ), month: Component.new( tag: Arbre::HTML::Input, type: 'month' ), number: Component.new( tag: Arbre::HTML::Input, type: 'number' ), password: Component.new( tag: Arbre::HTML::Input, type: 'password' ), radio: Component.new( tag: Arbre::HTML::Input, type: 'radio' ), range: Component.new( tag: Arbre::HTML::Input, type: 'range' ), search: Component.new( tag: Arbre::HTML::Input, type: 'search' ), tel: Component.new( tag: Arbre::HTML::Input, type: 'tel' ), text: Component.new( tag: Arbre::HTML::Input, type: 'text' ), time: Component.new( tag: Arbre::HTML::Input, type: 'time' ), url: Component.new( tag: Arbre::HTML::Input, type: 'url' ), week: Component.new( tag: Arbre::HTML::Input, type: 'week' ), select: Component.new( tag: Arbre::HTML::Select ), textarea: Component.new( tag: Arbre::HTML::Textarea ) ) instance_exec(&block) if block end