Sha256: 079843eb15c9309b19bf02e558eef04d7f8e3ea9ddd220e0a0c0f5888e40eafa

Contents?: true

Size: 1 KB

Versions: 2

Compression:

Stored size: 1 KB

Contents

require 'rack'

module Facemock
  module OAuth
    class RackMiddleware
      def initialize(app)
        @app = app
      end

      def call(env)
        @app.call(env)
      end

      private

      def content_length(body)
        body.inject(0) do |sum, content|
          sum + content.bytesize
        end
      end

      def location(env, path, query={})
        scheme = env["rack.url_scheme"]
        host   = env["HTTP_HOST"]
        query_string = ""
        query_string = "?" + hash_to_query_string(query) unless query.empty?
        url = scheme + "://" + host + path + query_string
      end

      def query_string_to_hash(query_string)
        query_string.split("&").inject({}) do |hash, str|
          key, value = str.split("=")
          hash[key] = value
          hash
        end
      end

      def hash_to_query_string(query)
        query_strings = query.inject([]) do |ary, (key,value)|
          ary << "#{key}=#{value}"
        end
        query_strings.join("&")
      end
    end
  end
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
facemock-oauth-0.0.6 lib/facemock/oauth/rack_middleware.rb
facemock-oauth-0.0.5 lib/facemock/oauth/rack_middleware.rb