rack-proxy 0.4.0 → 0.5.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +7 -0
- data/Gemfile.lock +1 -1
- data/lib/rack/proxy.rb +22 -8
- data/test/http_streaming_response_test.rb +1 -1
- data/test/rack_proxy_test.rb +1 -1
- metadata +11 -17
    
        checksums.yaml
    ADDED
    
    | @@ -0,0 +1,7 @@ | |
| 1 | 
            +
            ---
         | 
| 2 | 
            +
            SHA1:
         | 
| 3 | 
            +
              metadata.gz: 0883f974b445bea61720cacc4c0f28237d0ec849
         | 
| 4 | 
            +
              data.tar.gz: a701b9271fce5e9344da71b807bedafc98a44e02
         | 
| 5 | 
            +
            SHA512:
         | 
| 6 | 
            +
              metadata.gz: 32c96b55564c08d97621d39616d49f31db4d2a2bb232163266fd20a6a7e4a9367e4fd900cf720dd4e07c76157f6f407c2b29bb2f7731a9cbbc72a99c1c7717ea
         | 
| 7 | 
            +
              data.tar.gz: a9e7b0d178b9aaccd09381b78ec794318705f9ef6144e58a52743fc2034b7fe579044fe855468966e1f3a371e5e9b2517e895d1524c4df116e20ea4827422f07
         | 
    
        data/Gemfile.lock
    CHANGED
    
    
    
        data/lib/rack/proxy.rb
    CHANGED
    
    | @@ -5,10 +5,11 @@ module Rack | |
| 5 5 |  | 
| 6 6 | 
             
              # Subclass and bring your own #rewrite_request and #rewrite_response
         | 
| 7 7 | 
             
              class Proxy
         | 
| 8 | 
            -
                VERSION = "0. | 
| 8 | 
            +
                VERSION = "0.5.0"
         | 
| 9 9 |  | 
| 10 10 | 
             
                # @option opts [String, URI::HTTP] :backend Backend host to proxy requests to
         | 
| 11 | 
            -
                def initialize | 
| 11 | 
            +
                def initialize(opts={})
         | 
| 12 | 
            +
                  @streaming = opts.key?(:streaming) ? opts[:streaming] : true
         | 
| 12 13 | 
             
                  @backend = URI(opts[:backend]) if opts[:backend]
         | 
| 13 14 | 
             
                end
         | 
| 14 15 |  | 
| @@ -50,18 +51,31 @@ module Rack | |
| 50 51 | 
             
                    target_request.content_type   = source_request.content_type if source_request.content_type
         | 
| 51 52 | 
             
                  end
         | 
| 52 53 |  | 
| 54 | 
            +
             | 
| 53 55 | 
             
                  # Create a streaming response (the actual network communication is deferred, a.k.a. streamed)
         | 
| 54 | 
            -
                  if @ | 
| 55 | 
            -
                     | 
| 56 | 
            +
                  if @streaming
         | 
| 57 | 
            +
                    if @backend
         | 
| 58 | 
            +
                      target_response = HttpStreamingResponse.new(target_request, @backend.host, @backend.port)
         | 
| 59 | 
            +
             | 
| 60 | 
            +
                      target_response.use_ssl = "https" == @backend.scheme
         | 
| 61 | 
            +
                    else
         | 
| 62 | 
            +
                      target_response = HttpStreamingResponse.new(target_request, source_request.host, source_request.port)
         | 
| 56 63 |  | 
| 57 | 
            -
             | 
| 64 | 
            +
                      target_response.use_ssl = "https" == source_request.scheme
         | 
| 65 | 
            +
                    end
         | 
| 66 | 
            +
             | 
| 67 | 
            +
                    triplet = [target_response.status, target_response.headers, target_response.body]
         | 
| 58 68 | 
             
                  else
         | 
| 59 | 
            -
                     | 
| 69 | 
            +
                    host = (@backend && @backend.host) || source_request.host
         | 
| 70 | 
            +
                    port = (@backend && @backend.port) || source_request.port
         | 
| 71 | 
            +
                    target_response = Net::HTTP.start(host, port) do |http|
         | 
| 72 | 
            +
                      http.request(target_request)
         | 
| 73 | 
            +
                    end
         | 
| 60 74 |  | 
| 61 | 
            -
                     | 
| 75 | 
            +
                    triplet = [target_response.code, target_response.headers, target_response.body]
         | 
| 62 76 | 
             
                  end
         | 
| 63 77 |  | 
| 64 | 
            -
                   | 
| 78 | 
            +
                  triplet
         | 
| 65 79 | 
             
                end
         | 
| 66 80 |  | 
| 67 81 | 
             
                def extract_http_request_headers(env)
         | 
| @@ -4,7 +4,7 @@ require "rack/http_streaming_response" | |
| 4 4 | 
             
            class HttpStreamingResponseTest < Test::Unit::TestCase
         | 
| 5 5 |  | 
| 6 6 | 
             
              def setup
         | 
| 7 | 
            -
                host, req = "trix.pl", Net::HTTP::Get.new("/")
         | 
| 7 | 
            +
                host, req = "www.trix.pl", Net::HTTP::Get.new("/")
         | 
| 8 8 | 
             
                @response = Rack::HttpStreamingResponse.new(req, host)
         | 
| 9 9 | 
             
              end
         | 
| 10 10 |  | 
    
        data/test/rack_proxy_test.rb
    CHANGED
    
    
    
        metadata
    CHANGED
    
    | @@ -1,46 +1,41 @@ | |
| 1 1 | 
             
            --- !ruby/object:Gem::Specification
         | 
| 2 2 | 
             
            name: rack-proxy
         | 
| 3 3 | 
             
            version: !ruby/object:Gem::Version
         | 
| 4 | 
            -
              version: 0. | 
| 5 | 
            -
              prerelease: 
         | 
| 4 | 
            +
              version: 0.5.0
         | 
| 6 5 | 
             
            platform: ruby
         | 
| 7 6 | 
             
            authors:
         | 
| 8 7 | 
             
            - Jacek Becela
         | 
| 9 8 | 
             
            autorequire: 
         | 
| 10 9 | 
             
            bindir: bin
         | 
| 11 10 | 
             
            cert_chain: []
         | 
| 12 | 
            -
            date: 2013- | 
| 11 | 
            +
            date: 2013-08-21 00:00:00.000000000 Z
         | 
| 13 12 | 
             
            dependencies:
         | 
| 14 13 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 15 14 | 
             
              name: rack
         | 
| 16 15 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 17 | 
            -
                none: false
         | 
| 18 16 | 
             
                requirements:
         | 
| 19 | 
            -
                - -  | 
| 17 | 
            +
                - - '>='
         | 
| 20 18 | 
             
                  - !ruby/object:Gem::Version
         | 
| 21 19 | 
             
                    version: '0'
         | 
| 22 20 | 
             
              type: :runtime
         | 
| 23 21 | 
             
              prerelease: false
         | 
| 24 22 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 25 | 
            -
                none: false
         | 
| 26 23 | 
             
                requirements:
         | 
| 27 | 
            -
                - -  | 
| 24 | 
            +
                - - '>='
         | 
| 28 25 | 
             
                  - !ruby/object:Gem::Version
         | 
| 29 26 | 
             
                    version: '0'
         | 
| 30 27 | 
             
            - !ruby/object:Gem::Dependency
         | 
| 31 28 | 
             
              name: rack-test
         | 
| 32 29 | 
             
              requirement: !ruby/object:Gem::Requirement
         | 
| 33 | 
            -
                none: false
         | 
| 34 30 | 
             
                requirements:
         | 
| 35 | 
            -
                - -  | 
| 31 | 
            +
                - - '>='
         | 
| 36 32 | 
             
                  - !ruby/object:Gem::Version
         | 
| 37 33 | 
             
                    version: '0'
         | 
| 38 34 | 
             
              type: :development
         | 
| 39 35 | 
             
              prerelease: false
         | 
| 40 36 | 
             
              version_requirements: !ruby/object:Gem::Requirement
         | 
| 41 | 
            -
                none: false
         | 
| 42 37 | 
             
                requirements:
         | 
| 43 | 
            -
                - -  | 
| 38 | 
            +
                - - '>='
         | 
| 44 39 | 
             
                  - !ruby/object:Gem::Version
         | 
| 45 40 | 
             
                    version: '0'
         | 
| 46 41 | 
             
            description: A Rack app that provides request/response rewriting proxy capabilities
         | 
| @@ -68,27 +63,26 @@ files: | |
| 68 63 | 
             
            - test/test_helper.rb
         | 
| 69 64 | 
             
            homepage: http://rubygems.org/gems/rack-proxy
         | 
| 70 65 | 
             
            licenses: []
         | 
| 66 | 
            +
            metadata: {}
         | 
| 71 67 | 
             
            post_install_message: 
         | 
| 72 68 | 
             
            rdoc_options: []
         | 
| 73 69 | 
             
            require_paths:
         | 
| 74 70 | 
             
            - lib
         | 
| 75 71 | 
             
            required_ruby_version: !ruby/object:Gem::Requirement
         | 
| 76 | 
            -
              none: false
         | 
| 77 72 | 
             
              requirements:
         | 
| 78 | 
            -
              - -  | 
| 73 | 
            +
              - - '>='
         | 
| 79 74 | 
             
                - !ruby/object:Gem::Version
         | 
| 80 75 | 
             
                  version: '0'
         | 
| 81 76 | 
             
            required_rubygems_version: !ruby/object:Gem::Requirement
         | 
| 82 | 
            -
              none: false
         | 
| 83 77 | 
             
              requirements:
         | 
| 84 | 
            -
              - -  | 
| 78 | 
            +
              - - '>='
         | 
| 85 79 | 
             
                - !ruby/object:Gem::Version
         | 
| 86 80 | 
             
                  version: '0'
         | 
| 87 81 | 
             
            requirements: []
         | 
| 88 82 | 
             
            rubyforge_project: rack-proxy
         | 
| 89 | 
            -
            rubygems_version:  | 
| 83 | 
            +
            rubygems_version: 2.0.3
         | 
| 90 84 | 
             
            signing_key: 
         | 
| 91 | 
            -
            specification_version:  | 
| 85 | 
            +
            specification_version: 4
         | 
| 92 86 | 
             
            summary: A request/response rewriting HTTP proxy. A Rack app.
         | 
| 93 87 | 
             
            test_files:
         | 
| 94 88 | 
             
            - test/http_streaming_response_test.rb
         |