Sha256: 2a34095fa3ba9a290658bf2b495f5660a76581b6a84795a8a6b4bfd6532007a9
Contents?: true
Size: 1.22 KB
Versions: 36
Compression:
Stored size: 1.22 KB
Contents
module Avo module Fields class SelectField < BaseField attr_reader :options attr_reader :enum attr_reader :display_value def initialize(name, **args, &block) @defaults = { partial_name: "select-field" } super(name, **args, &block) @options = args[:options].present? ? args[:options] : args[:enum] @options = ActiveSupport::HashWithIndifferentAccess.new @options @enum = args[:enum].present? ? args[:enum] : nil @display_value = args[:display_value].present? ? args[:display_value] : false @placeholder = args[:placeholder].present? ? args[:placeholder].to_s : I18n.t("avo.choose_an_option") end def options_for_select if enum.present? if display_value options.invert else options.map { |label, value| [label, label] }.to_h end elsif display_value options.map { |label, value| [value, value] }.to_h else options end end def label if display_value value elsif enum.present? options[value] else options.invert[value] end end end end end
Version data entries
36 entries across 36 versions & 1 rubygems