Module: ActiveForm::Widget

Includes:
Mixins::LoaderMethods
Defined in:
lib/active_form/widget.rb

Defined Under Namespace

Classes: Base

Class Method Summary collapse

Methods included from Mixins::LoaderMethods

included

Class Method Details

.base_load_pathsObject



17
18
19
# File 'lib/active_form/widget.rb', line 17

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

.create(definition_name, &block) ⇒ Object



28
29
30
# File 'lib/active_form/widget.rb', line 28

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

.element?(klass) ⇒ Boolean

Returns:

  • (Boolean)


7
8
9
# File 'lib/active_form/widget.rb', line 7

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

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



21
22
23
24
25
26
# File 'lib/active_form/widget.rb', line 21

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

.load_pathsObject

loader related



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

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

.register(elem_class) ⇒ Object



32
33
34
35
36
37
38
39
# File 'lib/active_form/widget.rb', line 32

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