summaryrefslogtreecommitdiff
path: root/bocelli/base.rb
diff options
context:
space:
mode:
Diffstat (limited to 'bocelli/base.rb')
-rw-r--r--bocelli/base.rb22
1 files changed, 4 insertions, 18 deletions
diff --git a/bocelli/base.rb b/bocelli/base.rb
index bc7e617..1b4ffa9 100644
--- a/bocelli/base.rb
+++ b/bocelli/base.rb
@@ -1,4 +1,5 @@
require_relative 'core/irc'
+require_relative 'core/router'
module Bocelli
class Base
@@ -21,9 +22,11 @@ module Bocelli
class << self
include Bocelli::Core::IRC
+ include Bocelli::Core::Router
def setup
- @routes = {}
+ setup_router
+
@modules = {}
end
@@ -33,27 +36,10 @@ module Bocelli
subclass.setup
end
- def on(route, &block)
- @routes[route] = block
- end
-
def register(mod)
@modules[mod.name[/[^:]+$/].downcase.intern] ||= mod
end
- def match?(str, route)
- case route
- when Regexp
- str =~ route
- when String
- str == route
- end
- end
-
- def match(str)
- @routes.detect { |k, _| match?(str, k) }
- end
-
def mod_match(str)
if str =~ /\A(\S+) (.*)/
if (mod = Hash[@modules.map { |k, v| [k.to_s, v] }][$1])