Class: FormProps::Inputs::Select

Inherits:
Base
  • Object
show all
Includes:
ActionView::Helpers::FormOptionsHelper, ActionView::Helpers::Tags::SelectRenderer, FormOptionsHelper, SelectRenderer
Defined in:
lib/form_props/inputs/select.rb

Instance Method Summary collapse

Methods included from SelectRenderer

#add_options, #select_content_props

Methods included from FormOptionsHelper

#extract_selected_and_disabled, #extract_values_from_collection, #grouped_options_for_select, #option_groups_from_collection_for_select, #option_html_attributes, #options_for_select, #options_from_collection_for_select, #selected_values, #time_zone_options_for_select, #value_for_collection, #weekday_options_for_select

Methods inherited from Base

#json

Constructor Details

#initialize(object_name, method_name, template_object, choices, options, html_options) ⇒ Select

Returns a new instance of Select.



13
14
15
16
17
18
19
# File 'lib/form_props/inputs/select.rb', line 13

def initialize(object_name, method_name, template_object, choices, options, html_options)
  @choices = choices
  @choices = @choices.to_a if @choices.is_a?(Range)

  @html_options = html_options
  super(object_name, method_name, template_object, options)
end

Instance Method Details

#renderObject



21
22
23
24
25
26
27
28
29
30
31
32
33
34
# File 'lib/form_props/inputs/select.rb', line 21

def render
  option_tags_options = {
    selected: @options.fetch(:selected) { value.nil? ? "" : value },
    disabled: @options[:disabled]
  }

  option_tags = if grouped_choices?
    grouped_options_for_select(@choices, option_tags_options)
  else
    options_for_select(@choices, option_tags_options)
  end

  select_content_props(option_tags, @options, @html_options)
end