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
- #process_path(splat) ⇒ Object
- #process_src_or_display_demo(src, options) ⇒ Object
- #uri_to_url(uri) ⇒ Object
Instance Method Details
#process_path(splat) ⇒ Object
73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 |
# File 'lib/magickly/app.rb', line 73 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
93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 |
# File 'lib/magickly/app.rb', line 93 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
109 110 111 112 113 |
# File 'lib/magickly/app.rb', line 109 def uri_to_url(uri) url = Addressable::URI.parse(uri) url.site ||= Addressable::URI.parse(request.url).site url.to_s end |