Sha256: 0a84b521b5ffe3a5a54a21bcbb4847a5706eb6f476fa6b23b06d31cd36457eee

Contents?: true

Size: 1.12 KB

Versions: 2

Compression:

Stored size: 1.12 KB

Contents

require 'rubygems'
require 'bundler/setup'

require 'rack'

module RubyApp
  require 'ruby_app/mixins'

  class Request < ::Rack::Request
    extend RubyApp::Mixins::DelegateMixin

    def language
      self.fullpath =~ /^\/([^\/\?]+)/
      return $1
    end

    def query
      ::Rack::Utils.parse_query(self.query_string)
    end

    def parameters
      self.params
    end

    def quit?
      self.path =~ /\/quit/
    end

    def self.get
      Thread.current[:_request]
    end

    def self.create!(environment = RubyApp::Application.environment)
      Thread.current[:_request] = RubyApp::Request.new(environment)
    end

    def self.destroy!
      Thread.current[:_request] = nil
    end

    def self.create_context!
      RubyApp::Request.create!
      RubyApp::Response.create!
      RubyApp::Language.load!
      RubyApp::Session.load!
      begin
        yield
      ensure
        RubyApp::Session.unload!
        RubyApp::Language.unload!
        RubyApp::Response.destroy!
        RubyApp::Request.destroy!
      end
    end

    private

      def initialize(environment)
        super(environment)
      end

  end

end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
RubyApp-0.2.2 lib/ruby_app/request.rb
RubyApp-0.2.1 lib/ruby_app/request.rb