Module: Puffer
- Defined in:
- lib/puffer.rb,
lib/puffer/field.rb,
lib/puffer/engine.rb,
lib/puffer/filters.rb,
lib/puffer/resource.rb,
lib/puffer/component.rb,
lib/puffer/field_set.rb,
lib/puffer/resource/node.rb,
lib/puffer/resource/tree.rb,
lib/puffer/controller/dsl.rb,
lib/puffer/controller/auth.rb,
lib/puffer/extensions/core.rb,
lib/puffer/extensions/form.rb,
app/controllers/puffer/base.rb,
lib/puffer/orm_adapter/base.rb,
lib/puffer/resource/routing.rb,
lib/puffer/controller/config.rb,
lib/puffer/controller/mutate.rb,
lib/puffer/extensions/engine.rb,
lib/puffer/extensions/mapper.rb,
lib/puffer/controller/actions.rb,
lib/puffer/orm_adapter/mongoid.rb,
app/controllers/puffer/tree_base.rb,
lib/puffer/extensions/controller.rb,
lib/puffer/orm_adapter/active_record.rb,
app/controllers/puffer/puffer_users_base.rb,
lib/puffer/extensions/directive_processor.rb
Defined Under Namespace
Modules: Component, Controller, Extensions, OrmAdapter, PufferUser Classes: Base, ComponentGenerator, ComponentMissing, ControllerGenerator, DashboardBase, Engine, Field, FieldSet, Filters, PufferError, PufferUsersBase, Resource, SessionsBase, SessionsDeviseBase, TreeBase
Class Method Summary collapse
- .append_custom_field_type(custom_type, &block) ⇒ Object
- .component_for(field) ⇒ Object
- .field_type_for(field) ⇒ Object
-
.map_component(*args) ⇒ Object
Maps
field.typeto component class. -
.prepend_custom_field_type(custom_type, &block) ⇒ Object
Appends or prepends custom type.
Class Method Details
.append_custom_field_type(custom_type, &block) ⇒ Object
87 88 89 |
# File 'lib/puffer.rb', line 87 def self.append_custom_field_type custom_type, &block _field_type_customs.push [custom_type, block] end |
.component_for(field) ⇒ Object
54 55 56 57 58 59 60 |
# File 'lib/puffer.rb', line 54 def self.component_for field type = field type = field.type if field.respond_to? :type (_component_mappings[type.to_sym] || "#{type}_component").to_s.camelize.constantize rescue NameError raise ComponentMissing, "Missing `#{type}` component for `#{field}` field. Please use Puffer.map_component binding or specify field type manually" end |
.field_type_for(field) ⇒ Object
91 92 93 94 95 96 97 98 99 |
# File 'lib/puffer.rb', line 91 def self.field_type_for field custom_type = swallow_nil{_field_type_customs.detect {|(type, block)| block.call(field) }.first} case custom_type when Proc then custom_type.call(field) else custom_type end end |
.map_component(*args) ⇒ Object
Maps field.type to component class
ex:
Puffer.map_component :ckeditor, :rich, :text, :to => CkeditorComponent
this declaration maps even text fields to use CkeditorComponent for rendering
49 50 51 52 |
# File 'lib/puffer.rb', line 49 def self.map_component *args to = args.[:to] args.each { |type| _component_mappings[type.to_sym] = to } end |
.prepend_custom_field_type(custom_type, &block) ⇒ Object
Appends or prepends custom type.
ex:
Puffer.append_custom_field_type :paperclip do |field|
field.model.respond_to?(:attachment_definitions)
&& field.model.attachment_definitions.key?(:field.field_name.to_sym)
end
83 84 85 |
# File 'lib/puffer.rb', line 83 def self.prepend_custom_field_type custom_type, &block _field_type_customs.shift [custom_type, block] end |