Sha256: d8da8410a93d091b3907403070c002bab5248074fe90cf58e691ab88f2e8a944
Contents?: true
Size: 1.34 KB
Versions: 11
Compression:
Stored size: 1.34 KB
Contents
# frozen_string_literal: true module Primer module Forms module Dsl # :nodoc: class SelectListInput < Input SELECT_ARGUMENTS = %i[multiple disabled 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
11 entries across 11 versions & 1 rubygems