rlyeh 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/.gitignore +1 -0
- data/examples/echo.rb +13 -0
- data/{example → examples}/middleware.rb +3 -1
- data/examples/simple.rb +20 -0
- data/lib/rlyeh/base.rb +14 -11
- data/lib/rlyeh/connection.rb +15 -15
- data/lib/rlyeh/deep_ones/auth.rb +72 -0
- data/lib/rlyeh/deep_ones/builder.rb +37 -0
- data/lib/rlyeh/deep_ones/closer.rb +18 -0
- data/lib/rlyeh/deep_ones/logger.rb +22 -0
- data/lib/rlyeh/deep_ones/parser.rb +21 -0
- data/lib/rlyeh/{middleware → deep_ones}/typablemap.rb +1 -1
- data/lib/rlyeh/deep_ones.rb +9 -0
- data/lib/rlyeh/dispatcher.rb +18 -10
- data/lib/rlyeh/environment.rb +16 -13
- data/lib/rlyeh/filters.rb +91 -0
- data/lib/rlyeh/numeric_reply.rb +206 -0
- data/lib/rlyeh/runner.rb +18 -1
- data/lib/rlyeh/sendable.rb +11 -0
- data/lib/rlyeh/server.rb +6 -9
- data/lib/rlyeh/session.rb +15 -15
- data/lib/rlyeh/settings.rb +35 -0
- data/lib/rlyeh/utils.rb +25 -0
- data/lib/rlyeh/version.rb +1 -1
- data/lib/rlyeh.rb +12 -8
- data/spec/rlyeh/numeric_reply_spec.rb +21 -0
- data/spec/rlyeh/settings_spec.rb +54 -0
- data/spec/spec_helper.rb +1 -1
- metadata +33 -16
- data/example/simple.rb +0 -16
- data/lib/rlyeh/filter.rb +0 -77
- data/lib/rlyeh/middleware/builder.rb +0 -31
data/example/simple.rb
DELETED
@@ -1,16 +0,0 @@
|
|
1
|
-
#!/usr/bin/env ruby
|
2
|
-
# -*- coding: utf-8 -*-
|
3
|
-
$LOAD_PATH.unshift 'lib'
|
4
|
-
require 'rlyeh'
|
5
|
-
|
6
|
-
class MyApp < Rlyeh::Base
|
7
|
-
on :privmsg do |env|
|
8
|
-
p "MyApp1: #{env.message}"
|
9
|
-
end
|
10
|
-
|
11
|
-
on :privmsg do |env|
|
12
|
-
p "MyApp2: #{env.message}"
|
13
|
-
end
|
14
|
-
end
|
15
|
-
|
16
|
-
Rlyeh.run MyApp
|
data/lib/rlyeh/filter.rb
DELETED
@@ -1,77 +0,0 @@
|
|
1
|
-
module Rlyeh
|
2
|
-
module Filter
|
3
|
-
def self.included(base)
|
4
|
-
base.extend ClassMethods
|
5
|
-
end
|
6
|
-
|
7
|
-
module ClassMethods
|
8
|
-
def define_filter(*names, &block)
|
9
|
-
names.each do |name|
|
10
|
-
unless method_defined?("#{name}_with_filter")
|
11
|
-
define_method(:"#{name}_with_filter") do |*args, &block|
|
12
|
-
_run_filter_callbacks(:"#{name}", [:before, :around], *args, &block)
|
13
|
-
result = send(:"#{name}_without_filter", *args, &block)
|
14
|
-
_run_filter_callbacks(:"#{name}", [:around, :after], *args, &block)
|
15
|
-
result
|
16
|
-
end
|
17
|
-
alias_method :"#{name}_without_filter", :"#{name}"
|
18
|
-
alias_method :"#{name}", :"#{name}_with_filter"
|
19
|
-
end
|
20
|
-
end
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
def _filter_callbacks
|
25
|
-
@_filter_callbacks ||= {}
|
26
|
-
end
|
27
|
-
private :_filter_callbacks
|
28
|
-
|
29
|
-
def _run_filter_callbacks(name, types, *args, &block)
|
30
|
-
named_filter_callbacks = _filter_callbacks[name] || {}
|
31
|
-
types.each do |type|
|
32
|
-
(named_filter_callbacks[type] || []).each do |callback|
|
33
|
-
callback.call(*args, &block)
|
34
|
-
end
|
35
|
-
end
|
36
|
-
end
|
37
|
-
private :_run_filter_callbacks
|
38
|
-
|
39
|
-
def _insert_filter_callbacks(names, type, block, options = {})
|
40
|
-
prepend = options[:prepend]
|
41
|
-
names.each do |name|
|
42
|
-
named_filter_callbacks = (_filter_callbacks[:"#{name}"] ||= {})
|
43
|
-
callbacks = (named_filter_callbacks[type] ||= [])
|
44
|
-
if prepend
|
45
|
-
callbacks.unshift block
|
46
|
-
else
|
47
|
-
callbacks.push block
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
51
|
-
private :_insert_filter_callbacks
|
52
|
-
|
53
|
-
def _remove_filter_callbacks(names, type, block)
|
54
|
-
names.each do |name|
|
55
|
-
named_filter_callbacks = (_filter_callbacks[:"#{name}"] ||= {})
|
56
|
-
callbacks = (named_filter_callbacks[type] ||= [])
|
57
|
-
callbacks.delete block
|
58
|
-
end
|
59
|
-
end
|
60
|
-
private :_remove_filter_callbacks
|
61
|
-
|
62
|
-
[:before, :after, :around].each do |type|
|
63
|
-
define_method(:"#{type}_filter") do |*names, &block|
|
64
|
-
_insert_filter_callbacks(names, type, block)
|
65
|
-
end
|
66
|
-
alias_method :"append_#{type}_filter", :"#{type}_filter"
|
67
|
-
|
68
|
-
define_method(:"prepend_#{type}_filter") do |*names, &block|
|
69
|
-
_insert_filter_callbacks(names, type, block, :prepend => true)
|
70
|
-
end
|
71
|
-
|
72
|
-
define_method(:"remove_#{type}_filter") do |*names, &block|
|
73
|
-
_remove_filter_callbacks(names, type, block)
|
74
|
-
end
|
75
|
-
end
|
76
|
-
end
|
77
|
-
end
|
@@ -1,31 +0,0 @@
|
|
1
|
-
module Rlyeh
|
2
|
-
module Middleware
|
3
|
-
class Builder
|
4
|
-
def initialize(&block)
|
5
|
-
@ins = []
|
6
|
-
instance_eval(&block) if block_given?
|
7
|
-
end
|
8
|
-
|
9
|
-
def self.app(&block)
|
10
|
-
self.new(&block).to_app
|
11
|
-
end
|
12
|
-
|
13
|
-
def use(middleware, *args, &block)
|
14
|
-
@ins << lambda { |app| middleware.new(app, *args, &block) }
|
15
|
-
end
|
16
|
-
|
17
|
-
def run(app)
|
18
|
-
@ins << app #lambda { |nothing| app }
|
19
|
-
end
|
20
|
-
|
21
|
-
def to_app
|
22
|
-
inner_app = @ins.last
|
23
|
-
@ins[0...-1].reverse.inject(inner_app) { |a, e| e.call(a) }
|
24
|
-
end
|
25
|
-
|
26
|
-
def call(env)
|
27
|
-
to_app.call(env)
|
28
|
-
end
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|