class Thumbor::Cascade
Constants
- FILTER_REGEX
Attributes
crypto[RW]
filters[RW]
image[RW]
options[RW]
Public Class Methods
new(key = nil, image = nil)
click to toggle source
# File lib/thumbor/cascade.rb 37 def initialize(key = nil, image = nil) 38 @key = key 39 @image = image 40 @options = {} 41 @filters = [] 42 @crypto = Thumbor::CryptoURL.new @key 43 end
Public Instance Methods
generate()
click to toggle source
# File lib/thumbor/cascade.rb 45 def generate 46 @crypto.generate prepare_options(@options).merge({ image: @image, filters: @filters }) 47 end
method_missing(method, *args)
click to toggle source
Calls superclass method
# File lib/thumbor/cascade.rb 49 def method_missing(method, *args) 50 if method =~ FILTER_REGEX 51 @filters << "#{FILTER_REGEX.match(method)[1]}(#{escape_args(args).join(',')})" 52 self 53 else 54 super 55 end 56 end
respond_to_missing?(method, include_private = false)
click to toggle source
Calls superclass method
# File lib/thumbor/cascade.rb 58 def respond_to_missing?(method, include_private = false) 59 method =~ FILTER_REGEX || super 60 end
Private Instance Methods
escape_args(args)
click to toggle source
# File lib/thumbor/cascade.rb 64 def escape_args(args) 65 args.map do |arg| 66 arg = CGI.escape(arg) if arg.is_a?(String) && arg.match(%r{^https?://}) 67 arg 68 end 69 end
prepare_options(options)
click to toggle source
# File lib/thumbor/cascade.rb 71 def prepare_options(options) 72 options.each_with_object({}) do |item, final_options| 73 value = if item[1].length == 1 74 item[1].first 75 else 76 item[1] 77 end 78 final_options[item[0]] = value 79 end 80 end