16 Jul
duccio

duccio il 16 July 2010 parla di Rails3, plugin

Rails3 e fleximage

Ho provato ad installare la gemma con rails3 ma non ha funzionato, il problema è nel template “.flexi”. La soluzione più veloce è quella di spostare dal template flexi al controllore, le operazioni sulle immagini e renderizzare con il send_data. Ma se non volete sporcare l’azione del controllore, allora provate a scaricare la fork del progetto di Squeegy.

Praticamente ho solo ridefinito il template per il render in rails3:

    1 module ActionView
    2   module TemplateHandlers
    3     class Rails3View < TemplateHandler
    4       include Compilable
    5       class TemplateDidNotReturnImage < RuntimeError #:nodoc:
    6       end
    7 
    8       def compile(template)
    9         <<-CODE
   10         @template_format = :flexi
   11         controller.response.content_type ||= Mime::JPG    
   12         result = #{template.source}
   13         requested_format = (params[:format] || :jpg).to_sym
   14         begin
   15           # Raise an error if object returned from template is not an image record
   16           unless result.class.include?(Fleximage::Model::InstanceMethods)
   17             raise TemplateDidNotReturnImage, ".flexi template was expected to return a model instance that acts_as_fleximage, but got an instance of instead."
   18           end
   19           # Figure out the proper format
   20           raise 'Image must be requested with an image type format.  jpg, gif and png only are supported.' unless [:jpg, :gif, :png].include?(requested_format)
   21           result.output_image(:format => requested_format)
   22         rescue Exception => e
   23           e
   24         end
   25         CODE
   26       ensure
   27         GC.start
   28       end
   29     end
   30   end
   31 end

C’era anche un piccolo problema nell’image_file_url con il formato del’url, così in model.rb ho aggiunto file = open(URI.parse(URI.encode(file_url))) per evitare il problema.

2 Commenti a “Rails3 e fleximage”

  1. Diego Scataglini il 27 July 2010 alle 16:58 dice:

    Duccio,
    quando credi che ci sara una conferenza in italia per rails o ruby?
    O dove vanno gli italiani per conferenze su questi soggetti?

    Grazie,
    btw, Io vivo negli USA. E’ per questo che domando.

  2. duccio il 15 September 2010 alle 09:34 dice:

    Ciao Diego,
    vedo ora il tuo commento sono stato un po’ in ferie… e i primi di agosto sono stato un po’ incasinato!
    Beh qui non ci sono moltissime conf, l’anno scorso ne hanno fatta una a Pisa che non era niente male.

Scrivi un commento