Sha256: 5e74691fa6f2eb4c7dcbf5208c80890e4944ae04524400c05bf28541394abcfa

Contents?: true

Size: 1.27 KB

Versions: 94

Compression:

Stored size: 1.27 KB

Contents

require 'rubygems'
require 'bundler/setup'

require 'rack'

module RubyApp
  require 'ruby_app/mixins'

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

    attr_reader :environment

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

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

    def parameters
      self.params
    end

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

    def self.exists?
      return 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!
      unless RubyApp::Request.exists?
        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
    end

    private

      def initialize(environment)
        super(environment)
        @environment = environment
      end

  end

end

Version data entries

94 entries across 94 versions & 1 rubygems

Version Path
RubyApp-0.5.54 lib/ruby_app/request.rb
RubyApp-0.5.53 lib/ruby_app/request.rb
RubyApp-0.5.52 lib/ruby_app/request.rb
RubyApp-0.5.51 lib/ruby_app/request.rb
RubyApp-0.5.50 lib/ruby_app/request.rb
RubyApp-0.5.49 lib/ruby_app/request.rb
RubyApp-0.5.48 lib/ruby_app/request.rb
RubyApp-0.5.47 lib/ruby_app/request.rb
RubyApp-0.5.46 lib/ruby_app/request.rb
RubyApp-0.5.45 lib/ruby_app/request.rb
RubyApp-0.5.44 lib/ruby_app/request.rb
RubyApp-0.5.43 lib/ruby_app/request.rb
RubyApp-0.5.42 lib/ruby_app/request.rb
RubyApp-0.5.41 lib/ruby_app/request.rb