Module: Scrivito::AttributeContent
- Included in:
- BasicObj, BasicWidget
- Defined in:
- lib/scrivito/attribute_content.rb
Overview
This class is for handling attributes: setting and accessing their values, providing default values, restricting the types of widgets that may be added to a widgetlist attribute, plus a couple of convenience methods.
Defined Under Namespace
Modules: ClassMethods
Constant Summary collapse
- DEFAULT_ATTRIBUTE_VALUES =
Default attribute values.
{ 'binary' => nil, 'date' => nil, 'enum' => nil, 'html' => '', 'link' => nil, 'linklist' => [], 'multienum' => [], 'reference' => nil, 'referencelist' => [], 'string' => '', 'stringlist' => [], 'widgetlist' => [], }
Instance Method Summary collapse
-
#[](attribute_name) ⇒ Object
Returns the value of an attribute specified by its name.
-
#as_json(options = nil) ⇒ Hash
Returns a hash to be used for the JSON serialization.
-
#obj_class ⇒ String
Returns the object class name of this CMS object.
-
#obj_class_name ⇒ String
deprecated
Deprecated.
Use #obj_class instead.
-
#valid_widget_classes_for(field_name) ⇒ nil, Array<Class>
Hook method that lets you control the widget classes that are made available for adding instances of them to this page or widget.
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method_name, *args) ⇒ Object
76 77 78 79 |
# File 'lib/scrivito/attribute_content.rb', line 76 def method_missing(method_name, *args) attribute_name = method_name.to_s has_custom_attribute?(attribute_name) ? read_attribute(attribute_name) : super end |
Instance Method Details
#[](attribute_name) ⇒ Object
Returns the value of an attribute specified by its name. Passing an invalid key will not raise an error but return nil.
89 90 91 92 |
# File 'lib/scrivito/attribute_content.rb', line 89 def [](attribute_name) attribute_name = attribute_name.to_s read_attribute(attribute_name) if has_attribute?(attribute_name) end |
#as_json(options = nil) ⇒ Hash
Override it in subclasses to fit your needs.
Returns a hash to be used for the JSON serialization.
241 242 243 |
# File 'lib/scrivito/attribute_content.rb', line 241 def as_json( = nil) {id: id} end |
#obj_class ⇒ String
Returns the object class name of this CMS object.
174 175 176 |
# File 'lib/scrivito/attribute_content.rb', line 174 def obj_class data_from_cms.value_of('_obj_class') end |
#obj_class_name ⇒ String
Use #obj_class instead.
Returns the object class name of this CMS object.
151 152 153 154 155 156 157 |
# File 'lib/scrivito/attribute_content.rb', line 151 def obj_class_name Scrivito::Deprecation.warn( 'Scrivito::BasicObj#obj_class_name and Scrivito::BasicWidget#obj_class_name are deprecated'\ ' and will be removed in a future version.'\ ' Please use Scrivito::BasicObj#obj_class and Scrivito::BasicWidget#obj_class instead.') obj_class end |
#valid_widget_classes_for(field_name) ⇒ nil, Array<Class>
Hook method that lets you control the widget classes that are made available for adding instances of them to this page or widget. Override it to allow only specific classes or none at all. Must return either NilClass, or Array.
If nil is returned (default), all widget classes will be available for this page or widget.
If an Array is returned, it is expected to include the permitted classes. Their order is preserved as they are offered to the user via the widget browser.
111 112 |
# File 'lib/scrivito/attribute_content.rb', line 111 def (field_name) end |