module Renderable::Callbacks::Defining

Public Instance Methods

define_renderable_callbacks(*callbacks) click to toggle source
# File lib/renderable/callbacks.rb, line 8
      def define_renderable_callbacks(*callbacks)
        define_callbacks *[callbacks, {:terminator => renderable_terminator }].flatten
        callbacks.each do |callback|
          eval <<-end_callbacks
            def before_#{callback}(*args, &blk)
              set_callback(:#{callback}, :before, *args, &blk)
            end
            def after_#{callback}(*args, &blk)
              set_callback(:#{callback}, :after, *args, &blk)
            end
          end_callbacks
        end
      end

Private Instance Methods

renderable_terminator() click to toggle source
# File lib/renderable/callbacks.rb, line 23
def renderable_terminator
  lambda do |_, result|
    if result.respond_to?(:call)
      result.call == false
    else
      result == false
    end
  end
end