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.



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

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

Instance Attribute Details

#identifierObject

Returns the value of attribute identifier.



151
152
153
# File 'lib/para/components_configuration.rb', line 151

def identifier
  @identifier
end

#modelObject

Returns the value of attribute model.



151
152
153
# File 'lib/para/components_configuration.rb', line 151

def model
  @model
end

Instance Method Details

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



158
159
160
# File 'lib/para/components_configuration.rb', line 158

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

#componentsObject



162
163
164
# File 'lib/para/components_configuration.rb', line 162

def components
  @components ||= []
end

#refresh(attributes = {}) ⇒ Object



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

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