Class: Magickly::App
- Inherits:
-
Sinatra::Base
- Object
- Sinatra::Base
- Magickly::App
- Defined in:
- lib/magickly/app.rb
Direct Known Subclasses
Constant Summary collapse
- RESERVED_PARAMS =
['src']
- DEMO_IMAGE =
'http://farm4.static.flickr.com/3351/3450592233_c29fde01ef_z.jpg'
Instance Method Summary collapse
- #ordered_options ⇒ Object
- #process_path(splat) ⇒ Object
- #process_src_or_display_demo(src, options) ⇒ Object
- #uri_to_url(uri) ⇒ Object
Instance Method Details
#ordered_options ⇒ Object
102 103 104 105 106 107 108 109 |
# File 'lib/magickly/app.rb', line 102 def = ActiveSupport::OrderedHash.new request.query_string.split('&').each do |e| k,v = e.split('=') [k] = URI.unescape(v) unless RESERVED_PARAMS.include?(k) end end |
#process_path(splat) ⇒ Object
66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 |
# 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) ⇒ Object
86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 |
# File 'lib/magickly/app.rb', line 86 def process_src_or_display_demo src, if src # process image url = uri_to_url src image = Magickly.process_src(url, ) 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) ⇒ Object
111 112 113 114 115 |
# 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 |