Class: Frank::Middleware::Imager
- Inherits:
-
Object
- Object
- Frank::Middleware::Imager
- Defined in:
- lib/frank/middleware/imager.rb
Instance Method Summary collapse
-
#call(env) ⇒ Object
catch a request for _img/0x0, get an image, resize it to given dims.
-
#image_filename(dims, query) ⇒ Object
choose a random image if random is in the query.
-
#initialize(app, options = {}) ⇒ Imager
constructor
A new instance of Imager.
Constructor Details
#initialize(app, options = {}) ⇒ Imager
Returns a new instance of Imager.
11 12 13 |
# File 'lib/frank/middleware/imager.rb', line 11 def initialize(app, ={}) @app = app end |
Instance Method Details
#call(env) ⇒ Object
catch a request for _img/0x0, get an image, resize it to given dims
25 26 27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/frank/middleware/imager.rb', line 25 def call(env) path = env['PATH_INFO'] image_path = File.join(LIBDIR, 'frank/templates/imager/') if defined?(MiniMagick) && path.include?('_img') dims = '!' + path.split('/').last.match(/\d+x\d+/i).to_s filename = image_filename(dims, env['QUERY_STRING']) image = MiniMagick::Image.from_file(image_path + filename) image.resize dims return [ 200, { 'Content-Type' => 'image/jpg' }, image.to_blob ] end @app.call(env) end |
#image_filename(dims, query) ⇒ Object
choose a random image if random is in the query
16 17 18 19 20 21 22 |
# File 'lib/frank/middleware/imager.rb', line 16 def image_filename(dims, query) if query.include?('random') "frank#{rand(10)}.jpg" else "frank#{dims.hash.to_s[-1..-1]}.jpg" end end |