Sha256: 3945f60ac79f5054bb53c7482cbff0e13e27c1c6e98d2d15cf42e233a49b61fa

Contents?: true

Size: 945 Bytes

Versions: 22

Compression:

Stored size: 945 Bytes

Contents

module Alchemy
  module OnPageLayout
    # Runs OnPageLayout callbacks
    #
    # Included in +Alchemy::PagesController+ and +Alchemy::Admin::PagesController+
    #
    # @see OnPageLayout in order to learn how to define +on_page_layout+ callbacks.
    #
    module CallbacksRunner
      private

      def run_on_page_layout_callbacks?
        OnPageLayout.callbacks.present?
      end

      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

      def call_page_layout_callback_for?(page_layout)
        page_layout.to_sym == :all || @page.page_layout.to_sym == page_layout.to_sym
      end
    end
  end
end

Version data entries

22 entries across 22 versions & 1 rubygems

Version Path
alchemy_cms-3.6.7 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.6.6 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.6.5 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.6.4 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.6.3 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.6.2 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.6.1 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-4.0.0.beta lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.6.0 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.5.0 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.4.2 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.5.0.rc2 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.5.0.rc1 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.4.1 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.3.3 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.3.2 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.4.0 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.4.0.rc1 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.3.1 lib/alchemy/on_page_layout/callbacks_runner.rb
alchemy_cms-3.3.0 lib/alchemy/on_page_layout/callbacks_runner.rb