Sha256: 16d4835b54c894e541eb08692445989accf974a7dab956bcc1acae16b96b522f

Contents?: true

Size: 1.19 KB

Versions: 6

Compression:

Stored size: 1.19 KB

Contents

module Tuning
  module Extensions
    module ActionController
      module Base
        extend ActiveSupport::Concern

        included do
          define_callbacks :render
        end

        def render(*args)
          run_callbacks(:render) do
            super
          end
        end

        module ClassMethods

          %i(before after around).each do |callback|
            define_method "#{callback}_render" do |*names, &block|
              _insert_callbacks(names, block) do |name, options|
                set_callback :render, callback, name, options
              end
            end

            define_method "prepend_#{callback}_render" do |*names, &block|
              _insert_callbacks(names, block) do |name, options|
                set_callback :render, callback, name, options.merge(prepend: true)
              end
            end

            define_method "skip_#{callback}_render" do |*names|
              _insert_callbacks(names) do |name, options|
                skip_callback :render, callback, name, options
              end
            end

            alias_method :"append_#{callback}_render", :"#{callback}_render"
          end

        end
      end
    end
  end
end

Version data entries

6 entries across 6 versions & 1 rubygems

Version Path
tuning-5.1.2 lib/tuning/extensions/action_controller/base.rb
tuning-5.1.0 lib/tuning/extensions/action_controller/base.rb
tuning-4.0.1.2 lib/tuning/extensions/action_controller/base.rb
tuning-4.0.1.1 lib/tuning/extensions/action_controller/base.rb
tuning-4.0.1.0 lib/tuning/extensions/action_controller/base.rb
tuning-4.0.0.1 lib/tuning/extensions/action_controller/base.rb