class Gopher::Application
Attributes
root[RW]
selectors[RW]
Public Class Methods
new(&block)
click to toggle source
# File lib/gopher.rb, line 15 def initialize(&block) reset! self.instance_eval(&block) end
Public Instance Methods
add_handler(selector, handler)
click to toggle source
# File lib/gopher.rb, line 63 def add_handler(selector, handler) selector = Gopher.sanitize_selector(selector) selector.sub!(/^\/*/, '') selectors[/^\/?#{selector}$/] = handler end
app(selector, handler)
click to toggle source
# File lib/gopher.rb, line 46 def app(selector, handler) add_handler selector, handler end
Also aliased as: application
helpers(&block)
click to toggle source
# File lib/gopher.rb, line 41 def helpers(&block) MapContext.class_eval(&block) TextContext.class_eval(&block) end
lookup(selector)
click to toggle source
# File lib/gopher.rb, line 56 def lookup(selector) selectors.find do |k, v| return v, *$~[1..-1] if k =~ Gopher.sanitize_selector(selector) end raise NotFound end
map(selector, &block)
click to toggle source
# File lib/gopher.rb, line 31 def map(selector, &block) add_handler selector.gsub(/:(.+)/, '(.+)'), MapHandler.new(&block).with(self) end
mount(selector, path)
click to toggle source
# File lib/gopher.rb, line 26 def mount(selector, path) add_handler "#{selector}/?(.*)", DirectoryHandler.new(path, selector).with(self) end
reload(*f)
click to toggle source
# File lib/gopher.rb, line 20 def reload(*f); Gopher.reload(*f) end
request(selector)
click to toggle source
# File lib/gopher.rb, line 51 def request(selector) handler, *args = lookup(selector) handler.call(*args) end
text(selector, &block)
click to toggle source
# File lib/gopher.rb, line 36 def text(selector, &block) add_handler selector.gsub(/:(.+)/, '(.+)'), TextHandler.new(&block).with(self) end
use(mod)
click to toggle source
# File lib/gopher.rb, line 22 def use(mod) extend(mod) end
Private Instance Methods
reset!()
click to toggle source
# File lib/gopher.rb, line 70 def reset! @selectors = {} end