Class: ImagePlaceholder::Middleware

Inherits:
Object
  • Object
show all
Defined in:
lib/image_placeholder/middleware.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, image_extensions: %w(jpg png),, size_pattern: {/.*/ => 100}, host: 'via.placeholder.com') ⇒ Middleware

Returns a new instance of Middleware.



5
6
7
8
9
10
# File 'lib/image_placeholder/middleware.rb', line 5

def initialize(app, image_extensions: %w(jpg png), size_pattern: {/.*/ => 100}, host: 'via.placeholder.com')
  @app = app
  @image_extensions = image_extensions
  @size_pattern = size_pattern
  @host = host
end

Instance Method Details

#call(env) ⇒ Object



12
13
14
15
16
17
18
19
20
21
# File 'lib/image_placeholder/middleware.rb', line 12

def call(env)
  status, headers, response = @app.call(env)
  request_path = URI.decode(Rack::Request.new(env).fullpath)

  if not_found?(status) && image?(request_path)
    serve_placeholder_image(matched_size(request_path))
  else
    [status, headers, response]
  end
end