class PerfectQueue::Application::Router
Attributes
patterns[R]
Public Class Methods
new()
click to toggle source
# File lib/perfectqueue/application/router.rb, line 49 def initialize @patterns = [] @cache = {} end
Public Instance Methods
add(pattern, sym, options={})
click to toggle source
# File lib/perfectqueue/application/router.rb, line 54 def add(pattern, sym, options={}) case pattern when Regexp # ok when String, Symbol pattern = /\A#{Regexp.escape(pattern)}\z/ else raise ArgumentError, "pattern should be String or Regexp but got #{pattern.class}: #{pattern.inspect}" end @patterns << [pattern, sym] end
route(type)
click to toggle source
# File lib/perfectqueue/application/router.rb, line 67 def route(type) if @cache.has_key?(type) return @cache[type] end @patterns.each {|(pattern,sym)| if pattern.match(type) base = resolve_application_base(sym) return @cache[type] = base end } return @cache[type] = nil end
Private Instance Methods
resolve_application_base(sym)
click to toggle source
# File lib/perfectqueue/application/router.rb, line 83 def resolve_application_base(sym) case sym when Symbol self.class.const_get(sym) else sym end end