Sha256: 124ee9629c513509bb4dffed80127e4e5d8764a7f9bbc282f3cae6a4250509f4

Contents?: true

Size: 1.9 KB

Versions: 14

Compression:

Stored size: 1.9 KB

Contents

module Fleximage
  module Helper
    
    # Creates an image tag that links directly to image data.  Recommended for displays of a
    # temporary upload that is not saved to a record in the databse yet.
    def embedded_image_tag(model, options = {})
      model.load_image
      format  = options[:format] || :jpg
      mime    = Mime::Type.lookup_by_extension(format.to_s).to_s
      image   = model.output_image(:format => format)
      data    = Base64.encode64(image)
      
      options = { :alt => model.class.to_s }.merge(options)
      
      result = image_tag("data:#{mime};base64,#{data}", options)
      result.gsub(%r{src=".*/images/data:}, 'src="data:')
      
    rescue Fleximage::Model::MasterImageNotFound => e
      nil
    end
    
    # Creates a link that opens an image for editing in Aviary.
    #
    # Options:
    # 
    # * image_url: url to the master image used by Aviary for editing.  Defauls to <tt>url_for(:action => 'aviary_image', :id => model, :only_path => false)</tt>
    # * post_url:  url where Aviary will post the updated image.  Defauls to <tt>url_for(:action => 'aviary_image_update', :id => model, :only_path => false)</tt>
    #
    # All other options are passed directly to the @link_to@ helper.
    def link_to_edit_in_aviary(text, model, options = {})
      key       = aviary_image_hash(model)
      image_url = options.delete(:image_url)        || url_for(:action => 'aviary_image',        :id => model, :only_path => false, :key => key)
      post_url  = options.delete(:image_update_url) || url_for(:action => 'aviary_image_update', :id => model, :only_path => false, :key => key)
      api_key   = Fleximage::AviaryController.api_key
      url       = "http://aviary.com/flash/aviary/index.aspx?tid=1&phoenix&apil=#{api_key}&loadurl=#{CGI.escape image_url}&posturl=#{CGI.escape post_url}"
      
      link_to text, url, { :target => 'aviary' }.merge(options)
    end
    
  end
end

Version data entries

14 entries across 14 versions & 4 rubygems

Version Path
tvdeyen-fleximage-1.2.0 lib/fleximage/helper.rb
tvdeyen-fleximage-1.1.1 lib/fleximage/helper.rb
tvdeyen-fleximage-1.0.9 lib/fleximage/helper.rb
tvdeyen-fleximage-1.0.8 lib/fleximage/helper.rb
tvdeyen-fleximage-1.0.7 lib/fleximage/helper.rb
robinboening-fleximage-1.0.6 lib/fleximage/helper.rb
robinboening-fleximage-1.0.4 lib/fleximage/helper.rb
tvdeyen-fleximage-1.0.5 lib/fleximage/helper.rb
fleximage-1.0.4 lib/fleximage/helper.rb
dougmcbride-fleximage-1.0.3 lib/fleximage/helper.rb
fleximage-1.0.3 lib/fleximage/helper.rb
fleximage-1.0.2 lib/fleximage/helper.rb
fleximage-1.0.1 lib/fleximage/helper.rb
fleximage-1.0.0 lib/fleximage/helper.rb