Sha256: 216738559de7eb9484564f615bd92c0dc3b5f789e5d234eb94a0a94afc988dfa

Contents?: true

Size: 1.44 KB

Versions: 3

Compression:

Stored size: 1.44 KB

Contents

# = simple_form_for @thing do |f|
#   = f.input :breakfast, :as => :effective_radio_buttons, :collection => ['Eggs', 'Bacon'], images => [asset_path('eggs.png'), asset_path('bacon.png')]

if defined?(SimpleForm)

  class EffectiveRadioButtonsInput < SimpleForm::Inputs::CollectionRadioButtonsInput
    def input(wrapper_options = nil)
      label_method, value_method = (detect_collection_methods rescue [:first, :last])

      options[:collection] = collection
      options[:label_method] = label_method
      options[:value_method] = value_method
      options[:nested_boolean_style] = :nested if nested_boolean_style?

      # Wrapper
      options[:wrapper_html] ||= {}
      options[:wrapper_html][:class] = Array(options[:wrapper_html][:class])

      if options[:images]
        options[:wrapper_html][:class] << 'image_radio_buttons'
      end

      if options[:buttons]
        options[:wrapper_html][:class] << 'button_radio_buttons btn-group inline_radio_buttons'
        options[:wrapper_html][:data] = { toggle: 'buttons' }
      end

      if options[:inline] && !options[:buttons]
        options[:wrapper_html][:class] << 'inline_radio_buttons'
      end

      options[:wrapper_html][:class] = options[:wrapper_html][:class].join(' ')

      Effective::FormBuilderInputs::EffectiveRadioButtons.new(object, object_name, template, attribute_name, input_options, (merge_wrapper_options(input_html_options, wrapper_options) || {})).to_html
    end

  end

end

Version data entries

3 entries across 3 versions & 1 rubygems

Version Path
effective_form_inputs-1.5.0 lib/effective_form_inputs/inputs/effective_radio_buttons_input.rb
effective_form_inputs-1.4.1 lib/effective_form_inputs/inputs/effective_radio_buttons_input.rb
effective_form_inputs-1.4.0 lib/effective_form_inputs/inputs/effective_radio_buttons_input.rb