class Paperclip::RemoteAssets::Middleware

Constants

SYSTEM_PREFIX_REGEX

Attributes

app[R]

Public Class Methods

new(app) click to toggle source
# File lib/paperclip/remote_assets/middleware.rb, line 8
def initialize(app)
  @app = app
end

Public Instance Methods

call(env) click to toggle source
# File lib/paperclip/remote_assets/middleware.rb, line 12
def call(env)
  if remote_asset?(env['REQUEST_PATH'])
    [302, { "Location" => remote_asset_path_for(env['REQUEST_PATH']) }, []]
  else
    app.call(env)
  end
end

Private Instance Methods

remote_asset?(path) click to toggle source
# File lib/paperclip/remote_assets/middleware.rb, line 22
def remote_asset?(path)
  path.match(SYSTEM_PREFIX_REGEX) && !File.exist?(Rails.root.join('public', path))
end
remote_asset_path_for(path) click to toggle source
# File lib/paperclip/remote_assets/middleware.rb, line 26
def remote_asset_path_for(path)
  unless Paperclip::RemoteAssets.remote_root_includes_system?
    path = path.gsub(SYSTEM_PREFIX_REGEX, '/')
  end

  File.join(Paperclip::RemoteAssets.remote_root, path)
end