lib/shutterbug/handlers/convert_handler.rb in shutterbug-0.4.3 vs lib/shutterbug/handlers/convert_handler.rb in shutterbug-0.5.0
- old
+ new
@@ -15,36 +15,23 @@
def handle(helper, req, env)
response_text = convert(req).image_tag
helper.response(response_text, 'text/plain')
end
- 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
+ def get_options(req)
+ opts = {}
+ opts[:html] = req.POST()['content']
+ opts[:width] = req.POST()['width']
+ opts[:height] = req.POST()['height']
+ opts[:css] = req.POST()['css']
+ opts[:format] = req.POST()['format']
+ opts[:quality] = req.POST()['quality']
+ return opts
end
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)
+ config = self.class.config
+ job = PhantomJob.new(config.base_url(req), get_options(req))
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