Module: ActiveForm::Widget
- Includes:
- Mixins::LoaderMethods
- Defined in:
- lib/active_form/widget.rb
Defined Under Namespace
Classes: Base
Class Method Summary collapse
- .base_load_paths ⇒ Object
- .create(definition_name, &block) ⇒ Object
- .element?(klass) ⇒ Boolean
- .instance(definition_name, klass, *args, &block) ⇒ Object
-
.load_paths ⇒ Object
loader related.
- .register(elem_class) ⇒ Object
Methods included from Mixins::LoaderMethods
Class Method Details
.base_load_paths ⇒ Object
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
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_paths ⇒ Object
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 |