Class: Decidim::SettingsManifest::Attribute
- Inherits:
-
Object
- Object
- Decidim::SettingsManifest::Attribute
- Includes:
- ActiveModel::Validations
- Defined in:
- lib/decidim/settings_manifest.rb
Overview
Semi-private: Attributes are an abstraction used by SettingsManifest to encapsulate behavior related to each individual settings field. Shouldn’t be used from the outside.
Constant Summary collapse
- TYPES =
{ boolean: { klass: Boolean, default: false }, integer: { klass: Integer, default: 0 }, string: { klass: String, default: nil }, text: { klass: String, default: nil }, array: { klass: Array, default: [] }, enum: { klass: String, default: nil }, scope: { klass: Integer, default: nil } }.freeze
Instance Method Summary collapse
Instance Method Details
#build_choices ⇒ Object
122 123 124 |
# File 'lib/decidim/settings_manifest.rb', line 122 def build_choices choices.try(:call) || choices end |
#default_value ⇒ Object
118 119 120 |
# File 'lib/decidim/settings_manifest.rb', line 118 def default_value default || TYPES[type][:default] end |
#readonly?(context) ⇒ Boolean
126 127 128 |
# File 'lib/decidim/settings_manifest.rb', line 126 def readonly?(context) readonly&.call(context) end |
#type_class ⇒ Object
114 115 116 |
# File 'lib/decidim/settings_manifest.rb', line 114 def type_class TYPES[type][:klass] end |