Sha256: f406b8dda7821aab9610f07d3aea03c4cdb48105fa5d8cd0e63c65a5e305ebca
Contents?: true
Size: 1.28 KB
Versions: 5
Compression:
Stored size: 1.28 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 else if display_value options.map { |label, value| [value, value] }.to_h else options end end end def label if display_value value else if enum.present? options[value] else options.invert[value] end end end end end end
Version data entries
5 entries across 5 versions & 1 rubygems