Sha256: 865127887085a0ad1b5c707dffe0d249077a247d94c45a5062cbd7da9615d4e6

Contents?: true

Size: 816 Bytes

Versions: 5

Compression:

Stored size: 816 Bytes

Contents

require 'ramaze/current/request'
require 'ramaze/current/response'
require 'ramaze/current/session'

module Ramaze
  class Current
    include Trinity
    extend Trinity

    def initialize(app)
      @app = app
    end

    def call(env)
      setup(env)
      before_call
      record

      @app.call(env)
      finish
    ensure
      after_call
    end

    def record
      return unless filter = Global.record
      request = Current.request
      Record << request if filter.call(request)
    end

    def setup(env)
      self.request = Request.new(env)
      self.response = Response.new
      self.session = Session.new
    end

    def finish
      session.finish if session
      response.finish
    end

    def self.call(env)
    end

    def before_call
    end

    def after_call
    end
  end
end

Version data entries

5 entries across 5 versions & 3 rubygems

Version Path
Pistos-ramaze-2009.02 lib/ramaze/current.rb
ptomato-ramaze-2009.02.1 lib/ramaze/current.rb
ptomato-ramaze-2009.02 lib/ramaze/current.rb
ramaze-2009.02 lib/ramaze/current.rb
ramaze-2009.03 lib/ramaze/current.rb