class Magickly::App

Constants

DEMO_IMAGE
RESERVED_PARAMS

Public Instance Methods

ordered_options() click to toggle source
# File lib/magickly/app.rb, line 102
def ordered_options
  options = ActiveSupport::OrderedHash.new
  request.query_string.split('&').each do |e|
    k,v = e.split('=')
    options[k] = URI.unescape(v) unless RESERVED_PARAMS.include?(k)
  end
  options
end
process_path(splat) click to toggle source
# File lib/magickly/app.rb, line 66
def process_path splat
  src = nil
  opts = []

  splat.split('/').each_slice(2) do |k, v|
    if RESERVED_PARAMS.include? k
      if k == 'src'
        src = URI.unescape(v)
        # slashes come in double-escaped by Apache so we
        # need to unescape again
        src = URI.unescape(src) if src =~ /%2F/
      end
    else
      opts << [k, URI.unescape(v)]
    end
  end

  process_src_or_display_demo src, opts
end
process_src_or_display_demo(src, options) click to toggle source
# File lib/magickly/app.rb, line 86
def process_src_or_display_demo src, options
  if src
    # process image
    url = uri_to_url src
    image = Magickly.process_src(url, options)
    image.to_response(env)
  else
    # display demo page

    # get combined list of jobs and processor methods
    @methods = ( Magickly.dragonfly.job_methods | Magickly.dragonfly.processor_methods )
    @methods.sort!{|m1, m2| m1.to_s <=> m2.to_s }
    erb :index
  end
end
uri_to_url(uri) click to toggle source
# File lib/magickly/app.rb, line 111
def uri_to_url(uri)
  url = Addressable::URI.parse(uri)
  url.site ||= Addressable::URI.parse(request.url).site
  url.to_s
end