messagefactory 0.0.1 → 0.0.2
Sign up to get free protection for your applications and to get access to all the features.
- data/Rakefile +5 -4
- data/lib/messagefactory.rb +1 -0
- data/lib/{Factory.rb → messagefactory/Factory.rb} +10 -4
- data/lib/{Handler.rb → messagefactory/Handler.rb} +6 -1
- data/lib/{handlers/Welcome.rb → messagefactory/handlers/001.rb} +0 -0
- data/lib/{handlers/YourHost.rb → messagefactory/handlers/002.rb} +0 -0
- data/lib/{handlers/Created.rb → messagefactory/handlers/003.rb} +0 -0
- data/lib/{handlers/Bounce.rb → messagefactory/handlers/005.rb} +0 -0
- data/lib/{handlers/LuserChannels.rb → messagefactory/handlers/254.rb} +0 -0
- data/lib/messagefactory/handlers/311.rb +140 -0
- data/lib/{handlers/Inviting.rb → messagefactory/handlers/341.rb} +0 -0
- data/lib/messagefactory/handlers/352.rb +99 -0
- data/lib/{handlers/Names.rb → messagefactory/handlers/353.rb} +0 -0
- data/lib/{handlers/BadNick.rb → messagefactory/handlers/432.rb} +0 -0
- data/lib/{handlers/Invite.rb → messagefactory/handlers/INVITE.rb} +0 -0
- data/lib/{handlers/Join.rb → messagefactory/handlers/JOIN.rb} +0 -0
- data/lib/{handlers/Kick.rb → messagefactory/handlers/KICK.rb} +0 -0
- data/lib/{handlers/Mode.rb → messagefactory/handlers/MODE.rb} +1 -0
- data/lib/{handlers/Nick.rb → messagefactory/handlers/NICK.rb} +0 -0
- data/lib/{handlers/Notice.rb → messagefactory/handlers/NOTICE.rb} +0 -0
- data/lib/{handlers/Part.rb → messagefactory/handlers/PART.rb} +0 -0
- data/lib/messagefactory/handlers/PING.rb +41 -0
- data/lib/messagefactory/handlers/PONG.rb +37 -0
- data/lib/messagefactory/handlers/PRIVMSG.rb +40 -0
- data/lib/messagefactory/handlers/QUIT.rb +40 -0
- data/lib/messagefactory/handlers/Raw.rb +12 -0
- metadata +32 -24
data/Rakefile
CHANGED
@@ -13,17 +13,18 @@ require 'spec/rake/spectask'
|
|
13
13
|
|
14
14
|
spec = Gem::Specification.new do |s|
|
15
15
|
s.name = 'messagefactory'
|
16
|
-
s.version = '0.0.
|
16
|
+
s.version = '0.0.2'
|
17
17
|
s.has_rdoc = true
|
18
18
|
s.extra_rdoc_files = ['README.rdoc', 'LICENSE']
|
19
|
-
s.summary = '
|
19
|
+
s.summary = 'Objectifies content from an IRC server'
|
20
20
|
s.description = s.summary
|
21
|
-
s.author = ''
|
22
|
-
s.email = ''
|
21
|
+
s.author = 'spox'
|
22
|
+
s.email = 'spox@modspox.com'
|
23
23
|
# s.executables = ['your_executable_here']
|
24
24
|
s.files = %w(LICENSE README.rdoc Rakefile) + Dir.glob("{bin,lib,spec}/**/*")
|
25
25
|
s.require_path = "lib"
|
26
26
|
s.bindir = "bin"
|
27
|
+
s.required_ruby_version = '>= 1.8.7'
|
27
28
|
end
|
28
29
|
|
29
30
|
Rake::GemPackageTask.new(spec) do |p|
|
@@ -0,0 +1 @@
|
|
1
|
+
require 'messagefactory/Factory'
|
@@ -21,18 +21,24 @@ module MessageFactory
|
|
21
21
|
rescue
|
22
22
|
raise 'Failed to determine message type'
|
23
23
|
end
|
24
|
-
t
|
24
|
+
t.to_sym
|
25
25
|
end
|
26
26
|
|
27
27
|
# string:: String from IRC server to process
|
28
28
|
# Process the given string and return parsed
|
29
29
|
# message or nil
|
30
|
-
def process(string)
|
30
|
+
def process(string, do_require=true)
|
31
31
|
s = nil
|
32
|
-
|
32
|
+
mtype = type(string)
|
33
|
+
if(@handlers[mtype])
|
33
34
|
s = @handlers.process(string)
|
34
35
|
else
|
35
|
-
|
36
|
+
if(do_require)
|
37
|
+
require "messagefactory/handlers/#{mtype}"
|
38
|
+
s = process(string, false)
|
39
|
+
else
|
40
|
+
raise NoMethodError.new("No handler found to process string: #{string}")
|
41
|
+
end
|
36
42
|
end
|
37
43
|
s
|
38
44
|
end
|
@@ -8,6 +8,11 @@ unless(OpenStruct.new.type.nil?)
|
|
8
8
|
end
|
9
9
|
end
|
10
10
|
|
11
|
+
module MessageFactory
|
12
|
+
class Message < OpenStruct
|
13
|
+
end
|
14
|
+
end
|
15
|
+
|
11
16
|
module MessageFactory
|
12
17
|
module Handlers
|
13
18
|
class Handler
|
@@ -28,7 +33,7 @@ module Handlers
|
|
28
33
|
# orig:: Original message string
|
29
34
|
# Helper to generate the message struct
|
30
35
|
def mk_struct(orig=nil)
|
31
|
-
m =
|
36
|
+
m = Message.new
|
32
37
|
m.direction = :incoming
|
33
38
|
m.received = Time.now
|
34
39
|
m.raw = orig.dup
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,140 @@
|
|
1
|
+
# To change this template, choose Tools | Templates
|
2
|
+
# and open the template in the editor.
|
3
|
+
|
4
|
+
module MessageFactory
|
5
|
+
module Handlers
|
6
|
+
class Whois < Handler
|
7
|
+
def initialize
|
8
|
+
@cache = {}
|
9
|
+
end
|
10
|
+
def clear_cache
|
11
|
+
@cache.clear
|
12
|
+
end
|
13
|
+
def types_process
|
14
|
+
[:'311', :'319', :'312', :'307', :'330', :'317', :'318', :'378']
|
15
|
+
end
|
16
|
+
# string:: string to process
|
17
|
+
# Create a new Mode message
|
18
|
+
# OpenStruct will contain:
|
19
|
+
# #type #direction #raw #received #source #target #channels #voice #ops
|
20
|
+
# #irc_host #idle #signon #nickserv
|
21
|
+
def process(string)
|
22
|
+
string = string.dup
|
23
|
+
orig = string.dup
|
24
|
+
m = nil
|
25
|
+
begin
|
26
|
+
string.slice!(0)
|
27
|
+
server = string.slice!(0, string.index(' '))
|
28
|
+
string.slice!(0)
|
29
|
+
action = string.slice!(0, string.index(' '))
|
30
|
+
raise unless types_process.include?(action.to_sym)
|
31
|
+
string.slice!(0)
|
32
|
+
action = ('process_'+action)
|
33
|
+
if(self.methods.include?(action))
|
34
|
+
m = self.send(action, string, orig)
|
35
|
+
else
|
36
|
+
m = store_raw(string, orig)
|
37
|
+
end
|
38
|
+
m.source = server if m
|
39
|
+
rescue => boom
|
40
|
+
raise "Failed to parse Whois message: #{orig}"
|
41
|
+
end
|
42
|
+
m
|
43
|
+
end
|
44
|
+
|
45
|
+
def store_raw(string, orig)
|
46
|
+
parts = string.split
|
47
|
+
m = @cache[parts[1]]
|
48
|
+
raise unless m
|
49
|
+
m.raw << orig
|
50
|
+
nil
|
51
|
+
end
|
52
|
+
|
53
|
+
#:swiftco.wa.us.dal.net 311 spox spox ~spox pool-96-225-201-176.ptldor.dsl-w.verizon.net * :spox
|
54
|
+
def process_311(string, orig)
|
55
|
+
m = mk_struct(orig)
|
56
|
+
m.raw = [orig]
|
57
|
+
m.type = :whois
|
58
|
+
parts = string.split
|
59
|
+
m.target = parts[1]
|
60
|
+
m.username = parts[2]
|
61
|
+
m.host = parts[3]
|
62
|
+
parts[5].slice!(0)
|
63
|
+
m.real_name = parts[5]
|
64
|
+
@cache[m.target] = m
|
65
|
+
nil
|
66
|
+
end
|
67
|
+
#:swiftco.wa.us.dal.net 319 spox spox :+#php #ruby #mysql @#mod_spox
|
68
|
+
def process_319(string, orig)
|
69
|
+
parts = string.split
|
70
|
+
parts.shift
|
71
|
+
m = @cache[parts.shift]
|
72
|
+
raise unless m
|
73
|
+
m.raw << orig
|
74
|
+
parts[0].slice!(0)
|
75
|
+
parts.each do |chan|
|
76
|
+
start = chan[0,1]
|
77
|
+
case start
|
78
|
+
when '+'
|
79
|
+
chan.slice!(0)
|
80
|
+
m.voice ||= []
|
81
|
+
m.voice << chan
|
82
|
+
when '@'
|
83
|
+
chan.slice!(0)
|
84
|
+
m.ops ||= []
|
85
|
+
m.ops << chan
|
86
|
+
end
|
87
|
+
m.channels ||= []
|
88
|
+
m.channels << chan
|
89
|
+
end
|
90
|
+
nil
|
91
|
+
end
|
92
|
+
#:swiftco.wa.us.dal.net 317 spox spox 529 1265393189 :seconds idle, signon time
|
93
|
+
def process_317(string, orig)
|
94
|
+
parts = string.split
|
95
|
+
parts.shift
|
96
|
+
m = @cache[parts.shift]
|
97
|
+
raise unless m
|
98
|
+
m.raw << orig
|
99
|
+
m.idle = parts.shift.to_i
|
100
|
+
m.signon = parts.shift.to_i
|
101
|
+
nil
|
102
|
+
end
|
103
|
+
#:swiftco.wa.us.dal.net 312 spox spox swiftco.wa.us.dal.net :www.swiftco.net - Swift Communications
|
104
|
+
def process_312(string, orig)
|
105
|
+
parts = string.split
|
106
|
+
parts.shift
|
107
|
+
m = @cache[parts.shift]
|
108
|
+
raise unless m
|
109
|
+
m.raw << orig
|
110
|
+
m.irc_host = parts.shift
|
111
|
+
nil
|
112
|
+
end
|
113
|
+
#:swiftco.wa.us.dal.net 307 spox spox :has identified for this nick
|
114
|
+
def process_307(string, orig)
|
115
|
+
parts = string.split
|
116
|
+
parts.shift
|
117
|
+
m = @cache[parts.shift]
|
118
|
+
raise unless m
|
119
|
+
m.nickserv = :identified
|
120
|
+
m.raw << orig
|
121
|
+
nil
|
122
|
+
end
|
123
|
+
#:wolfe.freenode.net 330 spox spox spox :is logged in as
|
124
|
+
def process_330(string, orig)
|
125
|
+
process_307(string, orig)
|
126
|
+
end
|
127
|
+
#:wolfe.freenode.net 318 spox spox :End of /WHOIS list.
|
128
|
+
def process_318(string, orig)
|
129
|
+
parts = string.split
|
130
|
+
parts.shift
|
131
|
+
target = parts.shift
|
132
|
+
m = @cache[target]
|
133
|
+
raise unless m
|
134
|
+
m.raw << orig
|
135
|
+
@cache.delete(target)
|
136
|
+
m
|
137
|
+
end
|
138
|
+
end
|
139
|
+
end
|
140
|
+
end
|
File without changes
|
@@ -0,0 +1,99 @@
|
|
1
|
+
# To change this template, choose Tools | Templates
|
2
|
+
# and open the template in the editor.
|
3
|
+
|
4
|
+
module MessageFactory
|
5
|
+
module Handlers
|
6
|
+
class Who < Handler
|
7
|
+
def initialize
|
8
|
+
@cache = {}
|
9
|
+
end
|
10
|
+
def types_process
|
11
|
+
[:'352', :'315']
|
12
|
+
end
|
13
|
+
# string:: string to process
|
14
|
+
# Create a new Who message
|
15
|
+
# OpenStruct will contain:
|
16
|
+
# #type #direction #raw #received #source #channel #message
|
17
|
+
# :nodoc: Nick style:
|
18
|
+
# :swiftco.wa.us.dal.net 352 spox * ~metallic codemunkey.net punch.va.us.dal.net metallic H :2 Sean Grimes
|
19
|
+
# :swiftco.wa.us.dal.net 315 spox metallic :End of /WHO list.
|
20
|
+
# Channel style:
|
21
|
+
# :swiftco.wa.us.dal.net 352 spox #php ~chendo 24.47.233.220.static.exetel.com.au punch.va.us.dal.net chendo H@ :2 chendo
|
22
|
+
# :swiftco.wa.us.dal.net 315 spox #php :End of /WHO list.
|
23
|
+
def process(string)
|
24
|
+
string = string.dup
|
25
|
+
orig = string.dup
|
26
|
+
m = nil
|
27
|
+
begin
|
28
|
+
server = string.slice!(0, string.index(' '))
|
29
|
+
string.slice!(0)
|
30
|
+
action = string.slice!(0, string.index(' ')).to_sym
|
31
|
+
string.slice!(0)
|
32
|
+
string.slice!(0, string.index(' ')+1)
|
33
|
+
if(action == :'352')
|
34
|
+
m = who_content(string, orig)
|
35
|
+
elsif(action == :'315')
|
36
|
+
m = who_end(string, orig)
|
37
|
+
else
|
38
|
+
raise
|
39
|
+
end
|
40
|
+
rescue
|
41
|
+
raise "Failed to parse Who message: #{orig}"
|
42
|
+
end
|
43
|
+
m
|
44
|
+
end
|
45
|
+
|
46
|
+
def who_content(string, orig)
|
47
|
+
name = string.slice!(0, string.index(' '))
|
48
|
+
string.slice!(0)
|
49
|
+
nick = OpenStruct.new
|
50
|
+
nick.username = string.slice!(0, string.index(' '))
|
51
|
+
string.slice!(0)
|
52
|
+
nick.host = string.slice!(0, string.index(' '))
|
53
|
+
string.slice!(0)
|
54
|
+
nick.irc_host = string.slice!(0, string.index(' '))
|
55
|
+
string.slice!(0)
|
56
|
+
nick.nick = string.slice!(0, string.index(' '))
|
57
|
+
string.slice!(0)
|
58
|
+
status = string.slice!(0, string.index(' '))
|
59
|
+
string.slice!(0, string.index(':')+1)
|
60
|
+
nick.hops = string.slice!(0, string.index(' ')).to_i
|
61
|
+
string.slice!(0)
|
62
|
+
nick.real_name = string
|
63
|
+
target = name == '*' ? nick.nick : name
|
64
|
+
m = fetch_target(target, orig, name != '*')
|
65
|
+
m.nicks << nick
|
66
|
+
m.ops.push nick if status.index('@')
|
67
|
+
m.voice.push nick if status.index('+')
|
68
|
+
m.raw << orig
|
69
|
+
nil
|
70
|
+
end
|
71
|
+
|
72
|
+
def fetch_target(target, orig, channel=true)
|
73
|
+
unless(@cache[target])
|
74
|
+
m = mk_struct(orig)
|
75
|
+
m.type = :who
|
76
|
+
m.raw = []
|
77
|
+
m.nicks = []
|
78
|
+
if(channel)
|
79
|
+
m.ops = []
|
80
|
+
m.voice = []
|
81
|
+
m.channel = target
|
82
|
+
end
|
83
|
+
@cache[target] = m
|
84
|
+
end
|
85
|
+
@cache[target]
|
86
|
+
end
|
87
|
+
|
88
|
+
def who_end(string, orig)
|
89
|
+
name = string.slice!(0, string.index(' '))
|
90
|
+
m = @cache[name]
|
91
|
+
if(m)
|
92
|
+
@cache.delete(name)
|
93
|
+
m.raw << orig
|
94
|
+
end
|
95
|
+
m
|
96
|
+
end
|
97
|
+
end
|
98
|
+
end
|
99
|
+
end
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
File without changes
|
@@ -0,0 +1,41 @@
|
|
1
|
+
# To change this template, choose Tools | Templates
|
2
|
+
# and open the template in the editor.
|
3
|
+
|
4
|
+
module MessageFactory
|
5
|
+
module Handlers
|
6
|
+
class Ping < Handler
|
7
|
+
def types_process
|
8
|
+
:PING
|
9
|
+
end
|
10
|
+
# string:: string to process
|
11
|
+
# Create a new Ping message
|
12
|
+
# OpenStruct will contain:
|
13
|
+
# #type #direction #raw #received #server #message
|
14
|
+
# :nodoc: PING :not.configured
|
15
|
+
# :nodoc: :not.configured PING :test
|
16
|
+
def process(string)
|
17
|
+
string = string.dup
|
18
|
+
m = mk_struct(string)
|
19
|
+
begin
|
20
|
+
m.type = :ping
|
21
|
+
if(string.slice(0).chr == ':')
|
22
|
+
string.slice!(0)
|
23
|
+
m.server = string.slice!(0, string.index(' '))
|
24
|
+
string.slice!(0)
|
25
|
+
raise 'error' unless string.slice!(0, string.index(' ')).to_sym == :PING
|
26
|
+
string.slice!(0, string.index(':')+1)
|
27
|
+
m.message = string
|
28
|
+
else
|
29
|
+
raise 'error' unless string.slice!(0, string.index(' ')).to_sym == :PING
|
30
|
+
string.slice!(0, string.index(':')+1)
|
31
|
+
m.server = string
|
32
|
+
m.message = string
|
33
|
+
end
|
34
|
+
rescue
|
35
|
+
raise "Failed to parse Ping message: #{m.raw}"
|
36
|
+
end
|
37
|
+
m
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
41
|
+
end
|
@@ -0,0 +1,37 @@
|
|
1
|
+
# To change this template, choose Tools | Templates
|
2
|
+
# and open the template in the editor.
|
3
|
+
|
4
|
+
module MessageFactory
|
5
|
+
module Handlers
|
6
|
+
class Pong < Handler
|
7
|
+
def types_process
|
8
|
+
:PONG
|
9
|
+
end
|
10
|
+
# string:: string to process
|
11
|
+
# Create a new Ping message
|
12
|
+
# OpenStruct will contain:
|
13
|
+
# #type #direction #raw #received #server #message
|
14
|
+
# :nodoc: :swiftco.wa.us.dal.net PONG swiftco.wa.us.dal.net :FOO
|
15
|
+
def process(string)
|
16
|
+
string = string.dup
|
17
|
+
m = mk_struct(string)
|
18
|
+
begin
|
19
|
+
m.type = :pong
|
20
|
+
string.slice!(0)
|
21
|
+
m.server = string.slice!(0, string.index(' '))
|
22
|
+
string.slice!(0)
|
23
|
+
raise 'error' unless string.slice!(0, string.index(' ')).to_sym == :PONG
|
24
|
+
if(string.index(':'))
|
25
|
+
string.slice!(0, string.index(':')+1)
|
26
|
+
m.message = string
|
27
|
+
else
|
28
|
+
m.message = ''
|
29
|
+
end
|
30
|
+
rescue
|
31
|
+
raise "Failed to parse Pong message: #{m.raw}"
|
32
|
+
end
|
33
|
+
m
|
34
|
+
end
|
35
|
+
end
|
36
|
+
end
|
37
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# To change this template, choose Tools | Templates
|
2
|
+
# and open the template in the editor.
|
3
|
+
|
4
|
+
module MessageFactory
|
5
|
+
module Handlers
|
6
|
+
class Privmsg < Handler
|
7
|
+
def types_process
|
8
|
+
:PRIVMSG
|
9
|
+
end
|
10
|
+
# string:: string to process
|
11
|
+
# Create a new Privmsg message
|
12
|
+
# OpenStruct will contain:
|
13
|
+
# #type #direction #raw #received #source #target #message
|
14
|
+
# :nodoc: I thoguht about adding in #public and #private methods and
|
15
|
+
# something for the nick a message is addressing, but we want
|
16
|
+
# to keep this stuff simple, so we will let the implementation program
|
17
|
+
# worry about extras like that.
|
18
|
+
# :nodoc: :spox!~spox@host PRIVMSG #m :foobar
|
19
|
+
# :nodoc: :spox!~spox@host PRIVMSG mod_spox :foobar
|
20
|
+
def process(string)
|
21
|
+
string = string.dup
|
22
|
+
m = mk_struct(string)
|
23
|
+
begin
|
24
|
+
m.type = :privmsg
|
25
|
+
string.slice!(0)
|
26
|
+
m.source = string.slice!(0, string.index(' '))
|
27
|
+
string.slice!(0)
|
28
|
+
raise 'error' unless string.slice!(0, string.index(' ')).to_sym == :PRIVMSG
|
29
|
+
string.slice!(0)
|
30
|
+
m.target = string.slice!(0, string.index(' '))
|
31
|
+
string.slice!(0, string.index(':')+1)
|
32
|
+
m.message = string
|
33
|
+
rescue
|
34
|
+
raise "Failed to parse Privmsg message: #{m.raw}"
|
35
|
+
end
|
36
|
+
m
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
@@ -0,0 +1,40 @@
|
|
1
|
+
# To change this template, choose Tools | Templates
|
2
|
+
# and open the template in the editor.
|
3
|
+
|
4
|
+
module MessageFactory
|
5
|
+
module Handlers
|
6
|
+
class Quit < Handler
|
7
|
+
def types_process
|
8
|
+
:QUIT
|
9
|
+
end
|
10
|
+
# string:: string to process
|
11
|
+
# Create a new Quit message
|
12
|
+
# OpenStruct will contain:
|
13
|
+
# #type #direction #raw #received #source #message
|
14
|
+
# :nodoc: :spox!~spox@host QUIT :Ping timeout
|
15
|
+
# :spox!~spox@host QUIT :
|
16
|
+
def process(string)
|
17
|
+
string = string.dup
|
18
|
+
m = mk_struct(string)
|
19
|
+
begin
|
20
|
+
m.type = :quit
|
21
|
+
string.slice!(0)
|
22
|
+
m.source = string.slice!(0, string.index(' '))
|
23
|
+
string.slice!(0)
|
24
|
+
idx = string.index(' ')
|
25
|
+
idx ||= string.length
|
26
|
+
raise unless string.slice!(0, idx).to_sym == :QUIT
|
27
|
+
if(string.index(':'))
|
28
|
+
string.slice!(0, string.index(':')+1)
|
29
|
+
m.message = string
|
30
|
+
else
|
31
|
+
m.message = ''
|
32
|
+
end
|
33
|
+
rescue
|
34
|
+
raise "Failed to parse Quit message: #{m.raw}"
|
35
|
+
end
|
36
|
+
m
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
40
|
+
end
|
metadata
CHANGED
@@ -1,20 +1,20 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: messagefactory
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
|
-
-
|
7
|
+
- spox
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
11
|
|
12
|
-
date: 2010-
|
12
|
+
date: 2010-04-18 00:00:00 -07:00
|
13
13
|
default_executable:
|
14
14
|
dependencies: []
|
15
15
|
|
16
|
-
description:
|
17
|
-
email:
|
16
|
+
description: Objectifies content from an IRC server
|
17
|
+
email: spox@modspox.com
|
18
18
|
executables: []
|
19
19
|
|
20
20
|
extensions: []
|
@@ -26,23 +26,31 @@ files:
|
|
26
26
|
- LICENSE
|
27
27
|
- README.rdoc
|
28
28
|
- Rakefile
|
29
|
-
- lib/
|
30
|
-
- lib/
|
31
|
-
- lib/
|
32
|
-
- lib/handlers/
|
33
|
-
- lib/handlers/
|
34
|
-
- lib/handlers/
|
35
|
-
- lib/handlers/
|
36
|
-
- lib/handlers/
|
37
|
-
- lib/handlers/
|
38
|
-
- lib/handlers/
|
39
|
-
- lib/handlers/
|
40
|
-
- lib/handlers/
|
41
|
-
- lib/handlers/
|
42
|
-
- lib/handlers/
|
43
|
-
- lib/handlers/
|
44
|
-
- lib/handlers/
|
45
|
-
- lib/handlers/
|
29
|
+
- lib/messagefactory.rb
|
30
|
+
- lib/messagefactory/Factory.rb
|
31
|
+
- lib/messagefactory/Handler.rb
|
32
|
+
- lib/messagefactory/handlers/001.rb
|
33
|
+
- lib/messagefactory/handlers/002.rb
|
34
|
+
- lib/messagefactory/handlers/003.rb
|
35
|
+
- lib/messagefactory/handlers/005.rb
|
36
|
+
- lib/messagefactory/handlers/254.rb
|
37
|
+
- lib/messagefactory/handlers/311.rb
|
38
|
+
- lib/messagefactory/handlers/341.rb
|
39
|
+
- lib/messagefactory/handlers/352.rb
|
40
|
+
- lib/messagefactory/handlers/353.rb
|
41
|
+
- lib/messagefactory/handlers/432.rb
|
42
|
+
- lib/messagefactory/handlers/INVITE.rb
|
43
|
+
- lib/messagefactory/handlers/JOIN.rb
|
44
|
+
- lib/messagefactory/handlers/KICK.rb
|
45
|
+
- lib/messagefactory/handlers/MODE.rb
|
46
|
+
- lib/messagefactory/handlers/NICK.rb
|
47
|
+
- lib/messagefactory/handlers/NOTICE.rb
|
48
|
+
- lib/messagefactory/handlers/PART.rb
|
49
|
+
- lib/messagefactory/handlers/PING.rb
|
50
|
+
- lib/messagefactory/handlers/PONG.rb
|
51
|
+
- lib/messagefactory/handlers/PRIVMSG.rb
|
52
|
+
- lib/messagefactory/handlers/QUIT.rb
|
53
|
+
- lib/messagefactory/handlers/Raw.rb
|
46
54
|
- spec/dummy.rb
|
47
55
|
has_rdoc: true
|
48
56
|
homepage:
|
@@ -57,7 +65,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
57
65
|
requirements:
|
58
66
|
- - ">="
|
59
67
|
- !ruby/object:Gem::Version
|
60
|
-
version:
|
68
|
+
version: 1.8.7
|
61
69
|
version:
|
62
70
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
63
71
|
requirements:
|
@@ -71,6 +79,6 @@ rubyforge_project:
|
|
71
79
|
rubygems_version: 1.3.5
|
72
80
|
signing_key:
|
73
81
|
specification_version: 3
|
74
|
-
summary:
|
82
|
+
summary: Objectifies content from an IRC server
|
75
83
|
test_files: []
|
76
84
|
|