Sha256: 417f7befa438561791dc77b08b680a4f66cb0d644acf0c00bd6447adcb2324e8
Contents?: true
Size: 1.5 KB
Versions: 2
Compression:
Stored size: 1.5 KB
Contents
# frozen_string_literal: true module Yattho module Forms module Dsl # :nodoc: class CheckBoxInput < Input DEFAULT_SCHEME = :boolean SCHEMES = [DEFAULT_SCHEME, :array].freeze attr_reader :name, :label, :value, :unchecked_value, :scheme, :nested_form_block, :nested_form_arguments def initialize(name:, label:, value: nil, unchecked_value: nil, scheme: DEFAULT_SCHEME, **system_arguments) raise ArgumentError, "Check box scheme must be one of #{SCHEMES.join(', ')}" unless SCHEMES.include?(scheme) raise ArgumentError, "Check box needs an explicit value if scheme is array" if scheme == :array && value.nil? @name = name @label = label @value = value @unchecked_value = unchecked_value @scheme = scheme super(**system_arguments) yield(self) if block_given? end def to_component CheckBox.new(input: self) end def nested_form(**system_arguments, &block) @nested_form_arguments = system_arguments @nested_form_block = block end def type :check_box end private def caption_template_name @caption_template_name ||= if @scheme == :array :"#{name}_#{value}" else name.to_sym end end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
yattho_view_components-0.1.1 | lib/yattho/forms/dsl/check_box_input.rb |
yattho_view_components-0.0.1 | lib/yattho/forms/dsl/check_box_input.rb |