Sha256: 0a21e2f637a592c7e1b570b5fb2870c24df54b11bc17048d35bcfb105bb0b32e
Contents?: true
Size: 1.16 KB
Versions: 4
Compression:
Stored size: 1.16 KB
Contents
# frozen_string_literal: true module Maquina module Application module Components class SelectComponent < ComponentBase delegate :controller, :options_for_select, to: :helpers def view_template options = input_html(no_helpers: true).deep_dup div(**control_html) do @form.label attribute_name, class: "label #{label_css_class}" div(class: "mt-1") do @form.select attribute_name, to_values!(options), extract_options!(options), options help_template error_template end end end private def extract_options!(options) options.extract!(:include_blank) end def to_values!(options) values = options.delete(:values) selected = options.delete(:selected) if values.is_a?(Symbol) values = controller.send(values) if controller.respond_to?(values, true) else # TODO: Add support for other value options [] end options_for_select(values, selected.present? ? selected : nil) end end end end end
Version data entries
4 entries across 4 versions & 1 rubygems