class Msgr::Routes

Attributes

routes[R]

Public Class Methods

new() click to toggle source
# File lib/msgr/routes.rb, line 11
def initialize
  @routes = []
end

Public Instance Methods

<<(file) click to toggle source
# File lib/msgr/routes.rb, line 32
def <<(file)
  files << file
end
blocks() click to toggle source
# File lib/msgr/routes.rb, line 24
def blocks
  @blocks ||= []
end
configure(&block) click to toggle source
# File lib/msgr/routes.rb, line 15
def configure(&block)
  blocks << block
  instance_eval(&block)
end
files() click to toggle source
# File lib/msgr/routes.rb, line 20
def files
  @files ||= []
end
files=(files) click to toggle source
# File lib/msgr/routes.rb, line 28
def files=(files)
  @files = Array files
end
load(file) click to toggle source
# File lib/msgr/routes.rb, line 49
def load(file)
  unless File.exist?(file)
    raise ArgumentError.new "File `#{file}` does not exists."
  end

  instance_eval File.read file
end
reload() click to toggle source
# File lib/msgr/routes.rb, line 36
def reload
  routes.clear
  blocks.each {|block| instance_eval(&block) }
  files.uniq!
  files.each do |file|
    if File.exist? file
      load file
    else
      log(:warn) { "Routes file `#{file}` does not exists (anymore)." }
    end
  end
end
route(key, opts = {}) click to toggle source
# File lib/msgr/routes.rb, line 57
def route(key, opts = {})
  if (route = routes.find {|r| r.accept?(key, opts) })
    route.add key
  else
    routes << Msgr::Route.new(key, opts)
  end
end