Module: ActiveForm::Element

Includes:
Mixins::LoaderMethods
Defined in:
lib/active_form.rb,
lib/active_form/element.rb

Defined Under Namespace

Classes: Base, Builder, CollectionOption, CollectionOptionGroup, MismatchException, NoElemException, Section, SelectDate, SelectDatetime, SelectTime, SelectTimebased

Class Method Summary collapse

Methods included from Mixins::LoaderMethods

included

Class Method Details

.base_load_pathsObject



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

def base_load_paths
  [ ::File.join(ActiveForm::BASE_PATH, 'elements'), ::File.join(ActiveForm::BASE_PATH, 'facets') ]
end

.create(definition_name, &block) ⇒ Object



35
36
37
# File 'lib/active_form/element.rb', line 35

def create(definition_name, &block)
  ActiveForm::Element::Base::create(definition_name, &block)
end

.element?(klass) ⇒ Boolean

Returns:

  • (Boolean)


13
14
15
# File 'lib/active_form/element.rb', line 13

def element?(klass)
  klass.respond_to?(:element?) && klass.element?
end

.instance(definition_name, klass, *args, &block) ⇒ Object



28
29
30
31
32
33
# File 'lib/active_form/element.rb', line 28

def instance(definition_name, klass, *args, &block)
  args.unshift(definition_name) if args.empty? || args.first.kind_of?(Hash)
  item = klass.new(*args)
  item.accept_block(&block) if block_given?
  item
end

.load_pathsObject

loader related



19
20
21
22
# File 'lib/active_form/element.rb', line 19

def load_paths
  @@load_paths ||= [*base_load_paths]
  @@load_paths
end

.register(elem_class) ⇒ Object



39
40
41
42
43
44
45
46
# File 'lib/active_form/element.rb', line 39

def register(elem_class)
  if element?(elem_class) && !self.methods.include?("#{elem_class.loadable_type}_element")
    self.module_eval("
      def #{elem_class.loadable_type}_element(*args, &block)
        define_element(:#{elem_class.loadable_type}, *args, &block)
      end")
  end
end