Sha256: e7f6a2bb1cb5d25f5d5583b83e6af44e6d01c1378989f211c6312846a818e0bf

Contents?: true

Size: 1.09 KB

Versions: 1

Compression:

Stored size: 1.09 KB

Contents

# encoding: utf-8
require 'light_resizer/image_loader'
require 'light_resizer/middleware/path'
require 'light_resizer/middleware/resizer'

module LightResizer
  class Middleware

    def initialize(app, root, folder='public')
      @app           = app
      @image_loader  = LightResizer::ImageLoader.new File.join(root, folder)
      @path          = LightResizer::Middleware::Path.new
      @resizer       = LightResizer::Middleware::Resizer.new
    end

    def call(env)
      @path.request_path = env['PATH_INFO']

      if (@path.image_path? and resize_request?)
				resize
	      Rack::File.new(@image_loader.resized.root_dir).call(env) #todo check
      else
				@app.call(env)
      end

    end

    def resize_request?
        @image_loader.original_image_path = @path.image_path
        @image_loader.resize_prefix = @path.prefix

        @image_loader.original_image_exist?
    end

    private

    def resize
      unless @image_loader.resized_image_exist?
        @resizer.resize(@path.dimensions, @image_loader.original_path, @image_loader.resize_path, @path.crop_path?)
      end
    end

  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
light_resizer-0.1.2 lib/light_resizer/middleware.rb