module Alchemy::OnPageLayout::CallbacksRunner

Runs OnPageLayout callbacks

Included in Alchemy::PagesController and Alchemy::Admin::PagesController

@see OnPageLayout in order to learn how to define on_page_layout callbacks.

Private Instance Methods

call_page_layout_callback_for?(page_layout) click to toggle source
# File lib/alchemy/on_page_layout/callbacks_runner.rb, line 32
def call_page_layout_callback_for?(page_layout)
  page_layout.to_sym == :all || @page.page_layout.to_sym == page_layout.to_sym
end
run_on_page_layout_callbacks() click to toggle source
# File lib/alchemy/on_page_layout/callbacks_runner.rb, line 18
def run_on_page_layout_callbacks
  OnPageLayout.callbacks.each do |page_layout, callbacks|
    next unless call_page_layout_callback_for?(page_layout)

    callbacks.each do |callback|
      if callback.respond_to?(:call)
        instance_eval(&callback)
      else
        send(callback)
      end
    end
  end
end
run_on_page_layout_callbacks?() click to toggle source
# File lib/alchemy/on_page_layout/callbacks_runner.rb, line 14
def run_on_page_layout_callbacks?
  OnPageLayout.callbacks.present?
end