module Jeanine::Callbacks::EvaluationMethods

Public Instance Methods

route_eval() click to toggle source
# File lib/jeanine/callbacks.rb, line 38
def route_eval
  before_find_route!
  route = find_route

  if route
    before_evaluate_route!
    result = instance_eval(&route[:block])
    @response.write(result)
    after_evaluate_route!
  else
    @response.status = 404
  end
  after_response!
  @response.complete!
end

Private Instance Methods

after_evaluate_route!() click to toggle source
# File lib/jeanine/callbacks.rb, line 64
def after_evaluate_route!
  run_after_callbacks!(:after)
end
after_response!() click to toggle source
# File lib/jeanine/callbacks.rb, line 68
def after_response!
  run_after_callbacks!(:after_all)
end
before_evaluate_route!() click to toggle source
# File lib/jeanine/callbacks.rb, line 60
def before_evaluate_route!
  run_before_callbacks!(:before)
end
before_find_route!() click to toggle source
# File lib/jeanine/callbacks.rb, line 56
def before_find_route!
  run_before_callbacks!(:before_all)
end
eval_callback(*args, &callback) click to toggle source
# File lib/jeanine/callbacks.rb, line 101
def eval_callback(*args, &callback)
  instance_exec(*args, &callback)
end
matching_callbacks(type) { |callback| ... } click to toggle source
# File lib/jeanine/callbacks.rb, line 92
def matching_callbacks(type)
  self.class._callbacks[type].select do |callback|
    paths = callback[:paths]
    if paths.detect { |path| path.match?(@request.path_info) }
      yield callback
    end
  end
end
run_after_callbacks!(type) click to toggle source
# File lib/jeanine/callbacks.rb, line 82
def run_after_callbacks!(type)
  if type == :after_all
    self.class._callbacks[type].each { |callback| eval_callback(&callback[:block]) }
  else
    matching_callbacks(type) do |callback|
      eval_callback(&callback[:block])
    end
  end
end
run_before_callbacks!(type) click to toggle source
# File lib/jeanine/callbacks.rb, line 72
def run_before_callbacks!(type)
  if type == :before_all
    self.class._callbacks[type].each { |callback| eval_callback(&callback[:block]) }
  else
    matching_callbacks(type) do |callback|
      eval_callback(&callback[:block])
    end
  end
end