Class: ActiveForm::Widget::Base

Inherits:
Element::Section show all
Defined in:
lib/active_form/widgets/base.rb

Class Method Summary collapse

Methods inherited from Element::Section

#label_attributes, #render_element, #render_elements, #render_frozen, #render_label

Methods included from Mixins::ContainerMethods

#bound_value?, #define_localizer, #description, #export_value, #get_bound_value, included, #label, #localize, #localized?, #localizer, #set_bound_value, #submitted?, #title, #update_from_params, #update_value, #validated?

Methods included from Mixins::ElementMethods

#accept_block, #contained?, #default_value, #define_formatting_filter, #define_freeze_filter, #description, #disabled?, #element_attributes, #element_binding, #element_binding_key, #element_name, #element_type, #element_value, #element_value=, #export_value, #fallback_value, #fallback_value=, #format_value, #formatted_value, #freeze_element, #freeze_value, #frozen?, #frozen_value, #frozen_value=, #hidden?, #hide_element, #identifier, included, #initialize_element, #label, #labelled?, #localize, #localized?, #readonly?, #register_container, #render_element, #render_frozen, #required=, #required?, #reset_formatting_filter, #reset_freeze_filter, #revert_value, #title, #update_options_and_attributes

Class Method Details

.create(definition_name, &block) ⇒ Object



8
9
10
11
12
13
14
15
16
17
18
# File 'lib/active_form/widgets/base.rb', line 8

def self.create(definition_name, &block)
  class_name = type_classname(definition_name)
  if !ActiveForm::Widget.const_defined?(class_name)
    ActiveForm::Widget.const_set(class_name, Class.new(self))
    if klass = ActiveForm::Widget.const_get(class_name)
      klass.setup_proc = (block_given? ? block : prc) 
      return klass
    end
  end
  nil
end

.element_typeObject



24
25
26
# File 'lib/active_form/widgets/base.rb', line 24

def self.element_type
  "#{self.name.to_s.demodulize.underscore}_widget".to_sym
end

.inherited(derivative) ⇒ Object



3
4
5
6
# File 'lib/active_form/widgets/base.rb', line 3

def self.inherited(derivative)
  ActiveForm::Widget::register(derivative) if derivative.kind_of?(ActiveForm::Widget::Base)
  super
end

.type_classname(type) ⇒ Object



20
21
22
# File 'lib/active_form/widgets/base.rb', line 20

def self.type_classname(type)
  type.to_s.camelize
end