Sha256: 7f37cd990747b39705a46455fea0f7b3417afca24903fc665314627c109efb93
Contents?: true
Size: 1.33 KB
Versions: 7
Compression:
Stored size: 1.33 KB
Contents
# frozen_string_literal: true module Primer module Forms module Dsl # :nodoc: class SelectListInput < Input SELECT_ARGUMENTS = %i[multiple include_blank prompt].freeze # :nodoc: class Option attr_reader :label, :value, :system_arguments def initialize(label:, value:, **system_arguments) @label = label @value = value @system_arguments = system_arguments end end attr_reader :name, :label, :options, :select_arguments def initialize(name:, label:, **system_arguments) @name = name @label = label @options = [] @select_arguments = {}.tap do |select_args| SELECT_ARGUMENTS.each do |select_arg| select_args[select_arg] = system_arguments.delete(select_arg) end end super(**system_arguments) yield(self) if block_given? end def option(**system_arguments) @options << Option.new(**system_arguments) end def to_component SelectList.new(input: self) end # :nocov: def type :select_list end # :nocov: # :nocov: def focusable? true end # :nocov: end end end end
Version data entries
7 entries across 7 versions & 1 rubygems