0
# Renders a .flexi template
0
+ class View
< ActionView::TemplateHandler #:nodoc:
0
class TemplateDidNotReturnImage < RuntimeError #:nodoc:
0
- def render(template, local_assigns = {})
0
result = @view.instance_eval do
0
@@ -22,38 +18,27 @@ module Fleximage
0
- # inject assigns into instance variables
0
- assigns.each do |key, value|
0
- instance_variable_set "@#{key}", value
0
- value.load_image if value.respond_to?(:load_image)
0
- # inject local assigns into reader methods
0
- local_assigns.each do |key, value|
0
- class << self; self; end.send(:define_method, key) { val }
0
# Raise an error if object returned from template is not an image record
0
unless result.class.include?(Fleximage::Model::InstanceMethods)
0
- raise TemplateDidNotReturnImage, ".flexi template was expected to return a model instance that acts_as_fleximage, but got an instance of <#{result.class}> instead."
0
+ raise TemplateDidNotReturnImage,
0
+ ".flexi template was expected to return a model instance that acts_as_fleximage, but got an instance of <#{result.class}> instead."
0
# Figure out the proper format
0
requested_format = (@view.params[:format] || :jpg).to_sym
0
- raise 'Image must be requested with an image type format. jpg, gif and png only are supported.' unless [:jpg, :gif, :png].include?(requested_format)
0
+ unless [:jpg, :gif, :png].include?(requested_format)
0
+ raise 'Image must be requested with an image type format. jpg, gif and png only are supported.'
0
# Set proper content type
0
- @view.controller.headers["Content-Type"] = Mime::Type.lookup_by_extension(requested_format.to_s).to_s
0
- rendered_image = result.output_image(:format => requested_format)
0
+ @view.controller.response.content_type = Mime::Type.lookup_by_extension(requested_format.to_s).to_s
0
+ # return rendered result
0
+ return result.output_image(:format => requested_format)
0
# ensure garbage collection happens after every flex image render
Comments
No one has commented yet.