Class: Shutterbug::Handlers::ConvertHandler
- Inherits:
-
Object
- Object
- Shutterbug::Handlers::ConvertHandler
- Defined in:
- lib/shutterbug/handlers/convert_handler.rb
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.config ⇒ Object
7 8 9 |
# File 'lib/shutterbug/handlers/convert_handler.rb', line 7 def self.config Configuration.instance end |
.regex ⇒ Object
11 12 13 |
# File 'lib/shutterbug/handlers/convert_handler.rb', line 11 def self.regex /#{self.config.path_prefix}\/make_snapshot/ end |
Instance Method Details
#convert(req) ⇒ Object
37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 |
# File 'lib/shutterbug/handlers/convert_handler.rb', line 37 def convert(req) html = req.POST()['content'] || "" width = req.POST()['width'] || 1000 height = req.POST()['height'] || 700 css = req.POST()['css'] || "" format = req.POST()['format'] || "png" quality = req.POST()['quality'] || 1 quality = convert_quality(quality, format) config = self.class.config job = PhantomJob.new(config.base_url(req), html, css, width, height, format, quality) unless (cache_entry = config.cache_manager.find(job.cache_key)) job.rasterize html_entry = Shutterbug::CacheManager::CacheEntry.new(job.html_file) image_entry = Shutterbug::CacheManager::CacheEntry.new(job.image_file) html_entry.preview_url = image_entry.preview_url config.cache_manager.add_entry(html_entry) cache_entry = config.cache_manager.add_entry(image_entry) end # return the image tag return cache_entry end |
#convert_quality(val, format) ⇒ Object
20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 |
# File 'lib/shutterbug/handlers/convert_handler.rb', line 20 def convert_quality(val, format) # Client sends quality between 0 and 1 (similar to .toDataURL() second argument). # This conversion tries to ensure that the size of the final image is similar to # .toDataURL() output with given quality settings. val = val.to_f case format when "png" val *= 10 when "jpeg" val *= 100 else val *= 100 end # PhantomJS expects integer. val.to_i end |
#handle(helper, req, env) ⇒ Object
15 16 17 18 |
# File 'lib/shutterbug/handlers/convert_handler.rb', line 15 def handle(helper, req, env) response_text = convert(req).image_tag helper.response(response_text, 'text/plain') end |