Sha256: 33d138a11ae342d665ee296cd9f6d8dbb714d9e97039fb0c6b041dba70364dae
Contents?: true
Size: 1.69 KB
Versions: 3
Compression:
Stored size: 1.69 KB
Contents
# frozen_string_literal: true module ActiveDryForm class Input def initialize(builder, builder_method, field, options) @builder = builder @form_object = builder.object @template = builder.instance_variable_get(:@template) @builder_method = builder_method @field = field @label_opts = options[:label] @label_text = options[:label_text] @hint_text = options[:hint] @required = options[:required] @input_user_options = options.except(:label, :hint, :label_text) end def css_classes [ ActiveDryForm.config.css_classes.input, @builder_method, (ActiveDryForm.config.css_classes.input_required if @required), (ActiveDryForm.config.css_classes.input_error if error?(@field)), ].compact end def wrap_tag(input, label_last: nil) @template.content_tag(:div, class: css_classes) do [ label_last ? input : label, label_last ? label : input, hint_text, error_text, ].compact.join.html_safe end end def label @builder.label(@field, @label_text) unless @label_opts == false end def hint_text return unless @hint_text @template.content_tag(:small, @hint_text, class: ActiveDryForm.config.css_classes.hint) end def error_text return unless error?(@field) obj_error_text = case e = @form_object.errors[@field] when Hash then e.values else e end @template.content_tag(:div, obj_error_text.join('<br />').html_safe, class: ActiveDryForm.config.css_classes.error) end def error?(field) @form_object.errors.key?(field) end end end
Version data entries
3 entries across 3 versions & 1 rubygems
Version | Path |
---|---|
active_dry_form-1.2.1 | lib/active_dry_form/input.rb |
active_dry_form-1.2.0 | lib/active_dry_form/input.rb |
active_dry_form-1.1.1 | lib/active_dry_form/input.rb |