Class: MiddlemanSimpleThumbnailer::Rack

Inherits:
Object
  • Object
show all
Defined in:
lib/middleman-simple-thumbnailer/rack.rb

Instance Method Summary collapse

Constructor Details

#initialize(app, options = {}, middleman_app, config) ⇒ Rack

Returns a new instance of Rack.



6
7
8
9
10
11
# File 'lib/middleman-simple-thumbnailer/rack.rb', line 6

def initialize(app, options= {}, middleman_app, config)
  @app = app
  @options = options
  @config = config
  @middleman_app = middleman_app
end

Instance Method Details

#call(env) ⇒ Object



13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/middleman-simple-thumbnailer/rack.rb', line 13

def call(env)
  path_info = env["PATH_INFO"]
  query_str = env["QUERY_STRING"]
  environment = @middleman_app.config[:environment]
  status = -1
  
  if(environment === :development && !query_str.empty?)
    query_hash = CGI::parse(query_str)
    if(query_hash.key?('simple-thumbnailer'))
        path, resize_to = query_hash['simple-thumbnailer'][0].split('|')
        image = MiddlemanSimpleThumbnailer::Image.new(path, resize_to, @middleman_app, @config)
        status = 200
        file_data = image.render
        headers = {
            "Content-Length" => file_data.bytesize.to_s,
            "Content-Type" => image.mime_type
        }
        response = [file_data]
    end
  end

  if status === -1
    status, headers, response = @app.call(env)
  end

  [status, headers, response]
end