Class: Para::ComponentsConfiguration::Section

Inherits:
Object
  • Object
show all
Defined in:
lib/para/components_configuration.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initialize(identifier, &block) ⇒ Section

Returns a new instance of Section.



155
156
157
158
# File 'lib/para/components_configuration.rb', line 155

def initialize(identifier, &block)
  self.identifier = identifier.to_s
  instance_eval(&block)
end

Instance Attribute Details

#identifierObject

Returns the value of attribute identifier.



153
154
155
# File 'lib/para/components_configuration.rb', line 153

def identifier
  @identifier
end

#modelObject

Returns the value of attribute model.



153
154
155
# File 'lib/para/components_configuration.rb', line 153

def model
  @model
end

Instance Method Details

#component(*args, **options, &block) ⇒ Object



160
161
162
# File 'lib/para/components_configuration.rb', line 160

def component(*args, **options, &block)
  components << Component.new(*args, **options, &block)
end

#componentsObject



164
165
166
# File 'lib/para/components_configuration.rb', line 164

def components
  @components ||= []
end

#refresh(attributes = {}) ⇒ Object



168
169
170
171
172
173
174
175
176
# File 'lib/para/components_configuration.rb', line 168

def refresh(attributes = {})
  self.model = ComponentSection.where(identifier: identifier).first_or_initialize
  model.assign_attributes(attributes)
  model.save!

  components.each_with_index do |component, index|
    component.refresh(component_section: model, position: index)
  end
end