Sha256: 2f37a5aad2e301c64ff00524efecd8b759132872eeb6cdd2e0d32cd55b1a3bdf

Contents?: true

Size: 1.05 KB

Versions: 18

Compression:

Stored size: 1.05 KB

Contents

require "rack/proxy"

class Shakapacker::DevServerProxy < Rack::Proxy
  delegate :config, :dev_server, to: :@instance

  def initialize(app = nil, opts = {})
    @instance = opts.delete(:shakapacker) || Shakapacker.instance
    opts[:streaming] = false if Rails.env.test? && !opts.key?(:streaming)
    super
  end

  def perform_request(env)
    if env["PATH_INFO"].start_with?("/#{public_output_uri_path}") && dev_server.running?
      env["HTTP_HOST"] = env["HTTP_X_FORWARDED_HOST"] = dev_server.host
      env["HTTP_X_FORWARDED_SERVER"] = dev_server.host_with_port
      env["HTTP_PORT"] = env["HTTP_X_FORWARDED_PORT"] = dev_server.port.to_s
      env["HTTP_X_FORWARDED_PROTO"] = env["HTTP_X_FORWARDED_SCHEME"] = dev_server.protocol
      unless dev_server.protocol == "https"
        env["HTTPS"] = env["HTTP_X_FORWARDED_SSL"] = "off"
      end
      env["SCRIPT_NAME"] = ""

      super(env)
    else
      @app.call(env)
    end
  end

  private
    def public_output_uri_path
      config.public_output_path.relative_path_from(config.public_path).to_s + "/"
    end
end

Version data entries

18 entries across 18 versions & 1 rubygems

Version Path
shakapacker-8.2.0 lib/shakapacker/dev_server_proxy.rb
shakapacker-8.1.0 lib/shakapacker/dev_server_proxy.rb
shakapacker-8.0.2 lib/shakapacker/dev_server_proxy.rb
shakapacker-8.0.1 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.2.3 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.3.0.beta.1 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.2.2 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.2.1 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.2.0 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.2.0.rc.0 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.1.0 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.0.3 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.0.2 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.0.1 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.0.0 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.0.0.rc.2 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.0.0.rc.1 lib/shakapacker/dev_server_proxy.rb
shakapacker-7.0.0.rc.0 lib/shakapacker/dev_server_proxy.rb