Module: Alchemy::Page::PageCells

Extended by:
ActiveSupport::Concern
Included in:
Alchemy::Page
Defined in:
app/models/alchemy/page/page_cells.rb

Defined Under Namespace

Modules: ClassMethods

Instance Method Summary collapse

Instance Method Details

#can_have_cells?Boolean

Returns true, if the page’s definition defines cells.

Returns:

  • (Boolean)


29
30
31
# File 'app/models/alchemy/page/page_cells.rb', line 29

def can_have_cells?
  definition['cells'].present?
end

#cell_definitionsObject

Returns the cell definitions from page definition.



39
40
41
42
43
# File 'app/models/alchemy/page/page_cells.rb', line 39

def cell_definitions
  cell_names = definition['cells']
  return [] if cell_names.blank?
  Cell.all_definitions_for(cell_names)
end

#element_names_from_cellsObject

Returns element names from cell definition.



51
52
53
# File 'app/models/alchemy/page/page_cells.rb', line 51

def element_names_from_cells
  cell_definitions.collect { |c| c['elements'] }.flatten.uniq
end

#element_names_not_in_cellObject

Returns element names that are not defined in a cell.



56
57
58
# File 'app/models/alchemy/page/page_cells.rb', line 56

def element_names_not_in_cell
  definition['elements'].uniq - element_names_from_cells
end

#elements_grouped_by_cellsObject

Returns elements grouped by cell.



46
47
48
# File 'app/models/alchemy/page/page_cells.rb', line 46

def elements_grouped_by_cells
  elements.not_trashed.in_cell.group_by(&:cell)
end

#has_cells?Boolean

Returns true, if the page has cells.

Returns:

  • (Boolean)


34
35
36
# File 'app/models/alchemy/page/page_cells.rb', line 34

def has_cells?
  cells.any?
end