class FormGroups::FieldBuilder
Constants
- FIELD_HELPERS
- OTHER_HELPERS
Public Class Methods
new(object_name, method, object, template, options)
click to toggle source
# File lib/form_groups/field_builder.rb, line 23 def initialize object_name, method, object, template, options @method , @object_name, @object = method , object_name, object @template, @options = template, options @default_options = @options ? @options.slice(:index, :namespace) : {} end
Public Instance Methods
errors()
click to toggle source
# File lib/form_groups/field_builder.rb, line 30 def errors @object.errors[@method] end
label(text, sub_id = '', **options)
click to toggle source
# File lib/form_groups/field_builder.rb, line 34 def label text, sub_id = '', **options full_id = @method.to_s full_id += "_#{sub_id}" unless sub_id.nil? or sub_id.to_s.empty? @template.label full_id.to_sym, text, object_options.merge(options) end
select(placeholder = nil, **options, &block)
click to toggle source
# File lib/form_groups/field_builder.rb, line 48 def select placeholder = nil, **options, &block options['data-placeholder'] = placeholder @template.select @method, nil, object_options, html_options(options), &block end
text_area(placeholder = nil, **options)
click to toggle source
# File lib/form_groups/field_builder.rb, line 41 def text_area placeholder = nil, **options options['placeholder' ] = placeholder options['aria-multiline'] = true @template.text_area @method, validated_options(options) end
Private Instance Methods
html_options(options = {})
click to toggle source
# File lib/form_groups/field_builder.rb, line 60 def html_options options = {} options = options.merge(validations) if FormGroups.map_validators options = options.merge('aria-invalid' => 'true') if errors.any? options end
object_options()
click to toggle source
# File lib/form_groups/field_builder.rb, line 56 def object_options @default_options.merge(object: @object) end
validated_options(options)
click to toggle source
# File lib/form_groups/field_builder.rb, line 67 def validated_options options object_options.merge html_options(options) end
validations()
click to toggle source
# File lib/form_groups/field_builder.rb, line 71 def validations validations = validators.map do |validator| result = {} mapping = FormGroups.validator_mapping.select { |v| validator.is_a? v } mapping.each_value { |m| m.call validator, result } result end Hash[*validations.collect{ |h| h.to_a }.flatten] end
validators()
click to toggle source
# File lib/form_groups/field_builder.rb, line 84 def validators @object.class.validators.select do |validator| validator.attributes.include? @method end end