class BrainDamage::View::Input::PolymorphicHybrid

Public Class Methods

new(field, options) click to toggle source
# File lib/generators/brain_damage/lib/views/inputs/polymorphic_hybrid.rb, line 8
def initialize(field, options)
  super
  @normalized_name = name.to_s.gsub('_id', '').gsub('_type', '')
  @initialized_inputs = false
end

Public Instance Methods

initialize_inputs() click to toggle source
# File lib/generators/brain_damage/lib/views/inputs/polymorphic_hybrid.rb, line 14
def initialize_inputs
  @inputs = {}

  @options[:inputs].each do |name, options|
    @inputs[name] = {
      name: name,
      model: options[:model],
      label: options[:label],
      input: Factory.create(:input, @field, options)
    }
  end

  @initialized_inputs = true
end
object_select_name() click to toggle source
# File lib/generators/brain_damage/lib/views/inputs/polymorphic_hybrid.rb, line 33
def object_select_name
  "#{singular_table_name}[#{@normalized_name}_id]"
end
specified_inputs() click to toggle source
# File lib/generators/brain_damage/lib/views/inputs/polymorphic_hybrid.rb, line 37
def specified_inputs
  initialize_inputs unless @initialized_inputs
  @inputs.values
end
type_select_name() click to toggle source
# File lib/generators/brain_damage/lib/views/inputs/polymorphic_hybrid.rb, line 29
def type_select_name
  "#{singular_table_name}[#{@normalized_name}_type]"
end