class Page

Public Instance Methods

active_fragments() click to toggle source
# File lib/bolton_cms/models/page.rb, line 49
def active_fragments
  fragments.where(active: true)
end
find_fragment(label) click to toggle source
# File lib/bolton_cms/models/page.rb, line 57
def find_fragment(label)
  fragments.find_by(label: label) unless label.blank?
end
inactive_fragments() click to toggle source
# File lib/bolton_cms/models/page.rb, line 53
def inactive_fragments
  fragments.where(active: false)
end
manage_fragments(configured_fragments = []) click to toggle source
# File lib/bolton_cms/models/page.rb, line 61
def manage_fragments(configured_fragments = [])
  fragments.each do |fragment|
    if fragment.active = configured_fragments.include?(fragment.label)
      configured_fragments.delete fragment.label
    end
  end

  configured_fragments.each do |fragment|
    fragments << Fragment.new(label: fragment)
  end

  inactive_fragments.where(body: '').destroy_all

  save
end
post?() click to toggle source
# File lib/bolton_cms/models/page.rb, line 41
def post?
  parent && parent.chronological?
end
unused_assets() click to toggle source
# File lib/bolton_cms/models/page.rb, line 45
def unused_assets
  assets.where(used: false)
end

Private Instance Methods

destroy_flagged_assets() click to toggle source
# File lib/bolton_cms/models/page.rb, line 99
def destroy_flagged_assets
  assets.where(delete_asset: true).destroy
end
flag_used_assets() click to toggle source
# File lib/bolton_cms/models/page.rb, line 103
def flag_used_assets
  assets.each do |asset|
    asset.used = !!self.body.match(asset.attachment.file.filename)

    unless asset.used?
      asset.used = !!self.fragments.detect do |fragment|
        !!fragment.body.match(asset.attachment.file.filename)
      end
    end
  end
end
no_children() click to toggle source
# File lib/bolton_cms/models/page.rb, line 85
def no_children
  errors.add :children, 'Page may not have children if parent is a chronological index' unless self.children.empty?
end
no_grandchildren() click to toggle source
# File lib/bolton_cms/models/page.rb, line 79
def no_grandchildren
  child_parents = !!self.children.detect{ |child| child.children? }

  errors.add :children, 'Page with children may not be added to a chronological index' if child_parents
end
rebuild_path() click to toggle source
# File lib/bolton_cms/models/page.rb, line 89
def rebuild_path
  self.path = self.ancestors_and_self.collect(&:slug).join('/')

  self.rearrange_children!
end
set_slug() click to toggle source
# File lib/bolton_cms/models/page.rb, line 95
def set_slug
  self.slug = self.title.to_slug.normalize.to_s
end