net-yail 1.6.0 → 1.6.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -10,15 +10,19 @@ require 'getopt/long'
10
10
  opt = Getopt::Long.getopts(
11
11
  ['--network', Getopt::REQUIRED],
12
12
  ['--nick', Getopt::REQUIRED],
13
+ ['--port', Getopt::REQUIRED],
13
14
  ['--loud', Getopt::BOOLEAN]
14
15
  )
15
16
 
16
- irc = Net::YAIL.new(
17
+ opts = {
17
18
  :address => opt['network'],
18
- :username => 'Frakking Bot',
19
+ :username => 'FrakkingBot',
19
20
  :realname => 'John Botfrakker',
20
- :nicknames => [opt['nick']]
21
- )
21
+ :nicknames => [opt['nick']],
22
+ }
23
+ opts[:port] = opt['port'] if opt['port']
24
+
25
+ irc = Net::YAIL.new(opts)
22
26
 
23
27
  irc.log.level = Logger::DEBUG if opt['loud']
24
28
 
@@ -0,0 +1,52 @@
1
+ require 'rubygems'
2
+
3
+ # Want a specific version of net/yail? Try uncommenting this:
4
+ # gem 'net-yail', '1.x.y'
5
+
6
+ require 'net/yail'
7
+ require 'getopt/long'
8
+
9
+ # User specifies channel and nick
10
+ opt = Getopt::Long.getopts(
11
+ ['--network', Getopt::REQUIRED],
12
+ ['--nick', Getopt::REQUIRED],
13
+ ['--port', Getopt::REQUIRED],
14
+ ['--loud', Getopt::BOOLEAN]
15
+ )
16
+
17
+ opts = {
18
+ :address => opt['network'],
19
+ :username => 'FrakkingBot',
20
+ :realname => 'John Botfrakker',
21
+ :nicknames => [opt['nick']],
22
+ }
23
+ opts[:port] = opt['port'] if opt['port']
24
+
25
+ irc = Net::YAIL.new(opts)
26
+
27
+ irc.log.level = Logger::DEBUG if opt['loud']
28
+
29
+ # Register handlers
30
+ irc.heard_welcome { |e| irc.join('#bots') } # Filter - runs after the server's welcome message is read
31
+ irc.on_invite { |e| irc.join(e.channel) } # Handler - runs on an invite message
32
+
33
+ # WHOIS example (this could be useful for other numerics as well)
34
+ data = {}
35
+ irc.heard_join do |e|
36
+ data = {:nick => e.nick}
37
+ irc.whois(e.nick)
38
+ end
39
+ irc.heard_whoisuser do |e|
40
+ data[:name] = e.parameters[4]
41
+ data[:host] = e.parameters[2]
42
+ end
43
+ irc.heard_whoischannels do |e|
44
+ data[:channels] = e.parameters.last
45
+ end
46
+ irc.heard_endofwhois do |e|
47
+ irc.msg(data[:nick], "I know who you are, #{data[:nick]}")
48
+ irc.msg(data[:nick], data.inspect)
49
+ end
50
+
51
+ # Start the bot and enjoy the endless loop
52
+ irc.start_listening!
@@ -245,6 +245,7 @@ module Net
245
245
  # If <tt>server</tt> is present, the request is forwarded to the given server.
246
246
  # * <tt>invite(nick, channel)</tt>: Invites a user to the given channel.
247
247
  # * <tt>kick(nick, channel, [message])</tt>: "KICK :channel :nick", :nick, :channel, :reason, " ::reason"
248
+ # * <tt>whois(nick, [server]): Issues a WHOIS command for the given nickname with an optional server.
248
249
  #
249
250
  # =Simple Example
250
251
  #
@@ -380,7 +381,7 @@ class YAIL
380
381
  @log = options[:log]
381
382
  else
382
383
  @log = Logger.new(options[:log_io] || STDERR)
383
- @log.level = Logger::WARN
384
+ @log.level = Logger::INFO
384
385
 
385
386
  if (options[:silent] || options[:loud])
386
387
  @log.warn '[DEPRECATED] - passing :silent and :loud options to constructor are deprecated as of 1.4.1'
@@ -496,6 +497,7 @@ class YAIL
496
497
  set_callback :outgoing_act, self.method(:magic_out_act)
497
498
 
498
499
  # WHOIS is tricky due to how weird its argument positioning is, so can't use create_command, either
500
+ set_callback :outgoing_whois, self.method(:magic_out_whois)
499
501
 
500
502
  # All PRIVMSG events eventually hit this - it's a legacy thing, and kinda dumb, but there you
501
503
  # have it. Just sends a raw PRIVMSG out to the socket.
@@ -720,7 +722,8 @@ class YAIL
720
722
  # Reports may not get printed in the proper order since I scrubbed the
721
723
  # IRCSocket report capturing, but this is way more straightforward to me.
722
724
  def report(*lines)
723
- lines.each {|line| $stdout.puts "(#{Time.now.strftime('%H:%M.%S')}) #{line}"}
725
+ @log.warn '[DEPRECATED] - Net::YAIL#report is deprecated and will be removed in 2.0 - use the logger (e.g., "@irc.log.info") instead'
726
+ lines.each {|line| @log.info line}
724
727
  end
725
728
 
726
729
  # Converts events that are numerics into the internal "incoming_numeric_xxx" format
@@ -10,13 +10,13 @@ module Defaults
10
10
  # quitting may be fine, but for something else, we may want to prompt a
11
11
  # user or try again in 20 minutes or something. Note that we only fail
12
12
  # when the adapter hasn't gotten logged in yet - an attempt at changing
13
- # nick after registration (welcome message) just generates a report.
13
+ # nick after registration (welcome message) just generates a log message.
14
14
  #
15
15
  # TODO: This should really not even be here. Client should have full control over whether or not
16
16
  # they want this. Base IRC bot class should have this, but not the core YAIL lib.
17
17
  def _nicknameinuse(event)
18
18
  event.message =~ /^(\S+)/
19
- report "Nickname #{$1} is already in use."
19
+ @log.warn "Nickname #{$1} is already in use."
20
20
 
21
21
  if (!@registered)
22
22
  begin
@@ -24,11 +24,11 @@ module Defaults
24
24
  if (nextnick != nil)
25
25
  nick nextnick
26
26
  else
27
- report '*** All nicknames in use. ***'
27
+ @log.error '*** All nicknames in use. ***'
28
28
  raise ArgumentError.new("All nicknames in use")
29
29
  end
30
30
  rescue
31
- report '*** Nickname selection error. ***'
31
+ @log.error '*** Nickname selection error. ***'
32
32
  raise
33
33
  end
34
34
  end
@@ -40,10 +40,10 @@ module Defaults
40
40
  def _namreply(event)
41
41
  event.message =~ /^(@|\*|=) (\S+) :?(.+)$/
42
42
  channeltype = {'@' => 'Secret', '*' => 'Private', '=' => 'Normal'}[$1]
43
- report "{#{$2}} #{channeltype} channel nickname list: #{$3}"
43
+ @log.info "{#{$2}} #{channeltype} channel nickname list: #{$3}"
44
44
  @nicklist = $3.split(' ')
45
45
  @nicklist.collect!{|name| name.sub(/^\W*/, '')}
46
- report "First nick: #{@nicklist[0]}"
46
+ @log.info "First nick: #{@nicklist[0]}"
47
47
  end
48
48
 
49
49
  end
@@ -144,9 +144,10 @@ class IRCBot
144
144
  @irc.join(*args)
145
145
  end
146
146
 
147
- # Wraps Net::YAIL.report
148
- def report(*args)
149
- @irc.report(*args)
147
+ # Logs the requested lines using the internal logger - deprecated to push logger on people
148
+ def report(*lines)
149
+ @log.warn '[DEPRECATED] - IRCBot#report is deprecated and will be removed in 2.0 - use the logger (e.g., "@bot.log.info") instead'
150
+ lines.each {|line| @irc.log.info line}
150
151
  end
151
152
 
152
153
  # Wraps Net::YAIL.nick
@@ -189,7 +189,7 @@ module LegacyEvents
189
189
  return handle(event.type, event.nick, event.channel)
190
190
 
191
191
  when :outgoing_kick
192
- return handle(event.type, event.nick, event.channel, event.reason)
192
+ return handle(event.type, event.nick, event.channel, event.message)
193
193
 
194
194
  when :outgoing_begin_connection
195
195
  return handle(event.type, event.username, event.address, event.realname)
@@ -18,8 +18,7 @@ module Magic
18
18
  # We were welcomed, so we need to set up initial nickname and set that we
19
19
  # registered so nick change failure doesn't cause DEATH!
20
20
  def magic_welcome(event)
21
- # TODO: Ditch this call to report - move to report lib if necessary
22
- report "#{event.from} welcome message: #{event.message}"
21
+ @log.info "#{event.from} welcome message: #{event.message}"
23
22
  if (event.message =~ /(\S+)!\S+$/)
24
23
  @me = $1
25
24
  elsif (event.message =~ /(\S+)$/)
@@ -55,7 +54,8 @@ module Magic
55
54
 
56
55
  # WHOIS - here because first parameter might be the nick and might be the optional server
57
56
  def magic_out_whois(event)
58
- raw "WHOIS %s%s" % [event.server.to_s.empty? ? "" : event.server, event.nick]
57
+ string = "WHOIS %s%s" % [event.server.to_s.empty? ? "" : event.server, event.nick]
58
+ raw string
59
59
  end
60
60
 
61
61
  end
@@ -35,137 +35,137 @@ module Reports
35
35
 
36
36
  private
37
37
  def r_msg(event)
38
- report "{%s} <%s> %s" % [event.target || event.channel, event.nick, event.message]
38
+ @yail.log.info "{%s} <%s> %s" % [event.target || event.channel, event.nick, event.message]
39
39
  end
40
40
 
41
41
  def r_act(event)
42
- report "{%s} * %s %s" % [event.target || event.channel, event.nick, event.message]
42
+ @yail.log.info "{%s} * %s %s" % [event.target || event.channel, event.nick, event.message]
43
43
  end
44
44
 
45
45
  def r_notice(event)
46
46
  nick = event.server? ? '' : event.nick
47
- report "{%s} -%s- %s" % [event.target || event.channel, nick, event.message]
47
+ @yail.log.info "{%s} -%s- %s" % [event.target || event.channel, nick, event.message]
48
48
  end
49
49
 
50
50
  def r_ctcp(event)
51
- report "{%s} [%s %s]" % [event.target || event.channel, event.nick, event.message]
51
+ @yail.log.info "{%s} [%s %s]" % [event.target || event.channel, event.nick, event.message]
52
52
  end
53
53
 
54
54
  def r_ctcpreply(event)
55
- report "{%s} [Reply: %s %s]" % [event.target || event.channel, event.nick, event.message]
55
+ @yail.log.info "{%s} [Reply: %s %s]" % [event.target || event.channel, event.nick, event.message]
56
56
  end
57
57
 
58
58
  def r_mode(event)
59
- report "{%s} %s sets mode %s %s" % [event.channel, event.from, event.message, event.targets.join(' ')]
59
+ @yail.log.info "{%s} %s sets mode %s %s" % [event.channel, event.from, event.message, event.targets.join(' ')]
60
60
  end
61
61
 
62
62
  def r_join(event)
63
- report "{#{event.channel}} #{event.nick} joins"
63
+ @yail.log.info "{#{event.channel}} #{event.nick} joins"
64
64
  end
65
65
 
66
66
  def r_part(event)
67
- report "{#{event.channel}} #{event.nick} parts (#{event.message})"
67
+ @yail.log.info "{#{event.channel}} #{event.nick} parts (#{event.message})"
68
68
  end
69
69
 
70
70
  def r_kick(event)
71
- report "{#{event.channel}} #{event.nick} kicked #{event.target} (#{event.message})"
71
+ @yail.log.info "{#{event.channel}} #{event.nick} kicked #{event.target} (#{event.message})"
72
72
  end
73
73
 
74
74
  def r_quit(event)
75
- report "#{event.nick} quit (#{event.message})"
75
+ @yail.log.info "#{event.nick} quit (#{event.message})"
76
76
  end
77
77
 
78
78
  # Incoming invitation
79
79
  def r_invite(event)
80
- report "[#{event.nick}] INVITE to #{event.target}"
80
+ @yail.log.info "[#{event.nick}] INVITE to #{event.target}"
81
81
  end
82
82
 
83
83
  # Reports nick change unless nickname is us - we check nickname here since
84
84
  # the magic method changes @yail.me to the new nickname.
85
85
  def r_nick(event)
86
- report "#{event.nick} changed nick to #{event.message}" unless event.nick == @yail.me
86
+ @yail.log.info "#{event.nick} changed nick to #{event.message}" unless event.nick == @yail.me
87
87
  end
88
88
 
89
89
  def r_bannedfromchan(event)
90
90
  event.message =~ /^(\S*) :Cannot join channel/
91
- report "Banned from channel #{$1}"
91
+ @yail.log.info "Banned from channel #{$1}"
92
92
  end
93
93
 
94
94
  def r_badchannelkey(event)
95
95
  event.message =~ /^(\S*) :Cannot join channel/
96
- report "Bad channel key (password) for #{$1}"
96
+ @yail.log.info "Bad channel key (password) for #{$1}"
97
97
  end
98
98
 
99
99
  def r_welcome(event)
100
- report "*** Logged in as #{@yail.me}. ***"
100
+ @yail.log.info "*** Logged in as #{@yail.me}. ***"
101
101
  end
102
102
 
103
103
  # Channel URL
104
104
  def r_channelurl(event)
105
105
  event.message =~ /^(\S+) :?(.+)$/
106
- report "{#{$1}} URL is #{$2}"
106
+ @yail.log.info "{#{$1}} URL is #{$2}"
107
107
  end
108
108
 
109
109
  # Channel topic
110
110
  def r_topic(event)
111
111
  event.message =~ /^(\S+) :?(.+)$/
112
- report "{#{$1}} Topic is: #{$2}"
112
+ @yail.log.info "{#{$1}} Topic is: #{$2}"
113
113
  end
114
114
 
115
115
  # Channel topic setter
116
116
  def r_topicinfo(event)
117
117
  event.message =~ /^(\S+) (\S+) (\d+)$/
118
- report "{#{$1}} Topic set by #{$2} on #{Time.at($3.to_i).asctime}"
118
+ @yail.log.info "{#{$1}} Topic set by #{$2} on #{Time.at($3.to_i).asctime}"
119
119
  end
120
120
 
121
121
  # End of names
122
122
  def r_endofnames(event)
123
123
  event.message =~ /^(\S+)/
124
- report "{#{$1}} Nickname list complete"
124
+ @yail.log.info "{#{$1}} Nickname list complete"
125
125
  end
126
126
 
127
127
  # MOTD line
128
128
  def r_motd(event)
129
129
  event.message =~ /^:?(.+)$/
130
- report "*MOTD* #{$1}"
130
+ @yail.log.info "*MOTD* #{$1}"
131
131
  end
132
132
 
133
133
  # Beginning of MOTD
134
134
  def r_motdstart(event)
135
135
  event.message =~ /^:?(.+)$/
136
- report "*MOTD* #{$1}"
136
+ @yail.log.info "*MOTD* #{$1}"
137
137
  end
138
138
 
139
139
  # End of MOTD
140
140
  def r_endofmotd(event)
141
- report "*MOTD* End of MOTD"
141
+ @yail.log.info "*MOTD* End of MOTD"
142
142
  end
143
143
 
144
144
  # Sent a privmsg (non-ctcp)
145
145
  def r_out_msg(event)
146
- report "{#{event.target}} <#{@yail.me}> #{event.message}"
146
+ @yail.log.info "{#{event.target}} <#{@yail.me}> #{event.message}"
147
147
  end
148
148
 
149
149
  # Sent a ctcp
150
150
  def r_out_ctcp(event)
151
- report "{#{event.target}} [#{@yail.me} #{event.message}]"
151
+ @yail.log.info "{#{event.target}} [#{@yail.me} #{event.message}]"
152
152
  end
153
153
 
154
154
  # Sent ctcp action
155
155
  def r_out_act(event)
156
- report "{#{event.target}} <#{@yail.me}> #{event.message}"
156
+ @yail.log.info "{#{event.target}} <#{@yail.me}> #{event.message}"
157
157
  end
158
158
 
159
159
  def r_out_notice(event)
160
- report "{#{event.target}} -#{@yail.me}- #{event.message}"
160
+ @yail.log.info "{#{event.target}} -#{@yail.me}- #{event.message}"
161
161
  end
162
162
 
163
163
  def r_out_ctcpreply(event)
164
- report "{#{event.target}} [Reply: #{@yail.me} #{event.message}]"
164
+ @yail.log.info "{#{event.target}} [Reply: #{@yail.me} #{event.message}]"
165
165
  end
166
166
 
167
167
  def r_out_generic(event)
168
- report "bot: #{event.inspect}"
168
+ @yail.log.info "bot: #{event.inspect}"
169
169
  end
170
170
  end
171
171
 
@@ -1,5 +1,5 @@
1
1
  module Net
2
2
  class YAIL
3
- VERSION = '1.6.0'
3
+ VERSION = '1.6.1'
4
4
  end
5
5
  end
@@ -55,12 +55,13 @@ class YailSessionTest < Test::Unit::TestCase
55
55
  @notices.push({:from => f, :nick => actor, :target => target, :message => message})
56
56
  end
57
57
 
58
- @yail.prepend_handler(:incoming_ping) { |message| @ping_message = message; false }
59
- @yail.prepend_handler(:incoming_quit) { |f, actor, message| @quit = {:full => f, :nick => actor, :message => message}; false }
58
+ @yail.prepend_handler(:incoming_ping) { |message| @ping_message = message; false }
59
+ @yail.prepend_handler(:incoming_quit) { |f, actor, message| @quit = {:full => f, :nick => actor, :message => message}; false }
60
60
  @yail.prepend_handler(:outgoing_join) { |channel, pass| @out_join = {:channel => channel, :password => pass}; false }
61
- @yail.prepend_handler(:incoming_msg) { |f, actor, channel, message| @privmsg = {:channel => channel, :nick => actor, :message => message}; false }
62
- @yail.prepend_handler(:incoming_ctcp) { |f, actor, channel, message| @ctcp = {:channel => channel, :nick => actor, :message => message}; false }
63
- @yail.prepend_handler(:incoming_act) { |f, actor, channel, message| @act = {:channel => channel, :nick => actor, :message => message}; false }
61
+ @yail.prepend_handler(:outgoing_kick) { |nick, channel, reason| @out_kick = {:channel => channel, :nick => nick, :message => reason}; false }
62
+ @yail.prepend_handler(:incoming_msg) { |f, actor, channel, message| @privmsg = {:channel => channel, :nick => actor, :message => message}; false }
63
+ @yail.prepend_handler(:incoming_ctcp) { |f, actor, channel, message| @ctcp = {:channel => channel, :nick => actor, :message => message}; false }
64
+ @yail.prepend_handler(:incoming_act) { |f, actor, channel, message| @act = {:channel => channel, :nick => actor, :message => message}; false }
64
65
  end
65
66
 
66
67
  # "New" handlers are set up (the 1.5+ way of doing things) here to perform tests in common with
@@ -110,6 +111,7 @@ class YailSessionTest < Test::Unit::TestCase
110
111
  @yail.heard_ping { |event| @ping_message = event.message }
111
112
  @yail.on_quit { |event| @quit = {:full => event.fullname, :nick => event.nick, :message => event.message} }
112
113
  @yail.saying_join { |event| @out_join = {:channel => event.channel, :password => event.password} }
114
+ @yail.saying_kick { |event| @out_kick = {:channel => event.channel, :nick => event.nick, :message => event.message} }
113
115
  @yail.on_msg { |event| @privmsg = {:channel => event.channel, :nick => event.nick, :message => event.message} }
114
116
  @yail.on_ctcp { |event| @ctcp = {:channel => event.channel, :nick => event.nick, :message => event.message} }
115
117
  @yail.on_act { |event| @act = {:channel => event.channel, :nick => event.nick, :message => event.message} }
@@ -194,6 +196,19 @@ class YailSessionTest < Test::Unit::TestCase
194
196
  assert_equal "pass", @out_join[:password]
195
197
  assert_equal ['#foosball'], @channels
196
198
 
199
+ # Kick somebody
200
+ @yail.kick("Nerdminion", "#foosball")
201
+ wait_for_irc
202
+ assert_equal("#foosball", @out_kick[:channel])
203
+ assert_equal("Nerdminion", @out_kick[:nick])
204
+
205
+ # Kick with message
206
+ @yail.kick("Nerdminion", "#foosball", "Because you're a bad, bad man")
207
+ wait_for_irc
208
+ assert_equal("#foosball", @out_kick[:channel])
209
+ assert_equal("Nerdminion", @out_kick[:nick])
210
+ assert_equal("Because you're a bad, bad man", @out_kick[:message])
211
+
197
212
  # Mock some chatter to verify PRIVMSG info
198
213
  mock_message ":Nerdmaster!nerd@nerdbucket.com PRIVMSG #foosball :#{@yail.me}: Welcome!" do
199
214
  assert_equal 1, @msg[:msg]
@@ -332,9 +347,9 @@ class YailSessionTest < Test::Unit::TestCase
332
347
 
333
348
  # Conditional filters are really ugly when passing a block instead of a method, so let's
334
349
  # at least try to make this look decent
335
- hearing_food = lambda { @msg[:food] += 1 }
336
- not_hearing_bad = lambda { @msg[:not_bad] += 1 }
337
- heard_nothing = lambda { @msg[:nothing] += 1 }
350
+ hearing_food = lambda { |e| @msg[:food] += 1 }
351
+ not_hearing_bad = lambda { |e| @msg[:not_bad] += 1 }
352
+ heard_nothing = lambda { |e| @msg[:nothing] += 1 }
338
353
 
339
354
  # If the message looks like "food", the handler will be hit
340
355
  @yail.hearing_msg(hearing_food, :if => lambda {|e| e.message =~ /food/})
metadata CHANGED
@@ -1,56 +1,52 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: net-yail
3
- version: !ruby/object:Gem::Version
4
- hash: 15
3
+ version: !ruby/object:Gem::Version
4
+ version: 1.6.1
5
5
  prerelease:
6
- segments:
7
- - 1
8
- - 6
9
- - 0
10
- version: 1.6.0
11
6
  platform: ruby
12
- authors:
7
+ authors:
13
8
  - Jeremy Echols
14
9
  autorequire:
15
10
  bindir: bin
16
11
  cert_chain: []
17
-
18
- date: 2012-11-08 00:00:00 Z
12
+ date: 2013-02-20 00:00:00.000000000 Z
19
13
  dependencies: []
14
+ description: ! 'Net::YAIL is an IRC library written in pure Ruby. Using simple functions,
15
+ it
20
16
 
21
- description: |-
22
- Net::YAIL is an IRC library written in pure Ruby. Using simple functions, it
23
17
  is trivial to build a complex, event-driven IRC application, such as a bot or
18
+
24
19
  even a full command-line client. All events can have a single callback and
20
+
25
21
  any number of before-callback and after-callback filters. Even outgoing events,
22
+
26
23
  such as when you join a channel or send a message, can have filters for stats
27
- gathering, text filtering, etc.
24
+
25
+ gathering, text filtering, etc.'
28
26
  email: yail<at>nerdbucket dot com
29
27
  executables: []
30
-
31
28
  extensions: []
32
-
33
29
  extra_rdoc_files: []
34
-
35
- files:
30
+ files:
36
31
  - examples/simple/dumbbot.rb
37
- - examples/logger/run.rb
32
+ - examples/simple/whois.rb
38
33
  - examples/logger/default.yml
39
34
  - examples/logger/logger_bot.rb
35
+ - examples/logger/run.rb
40
36
  - lib/net/yail.rb
41
- - lib/net/yail/irc_bot.rb
42
- - lib/net/yail/yail-version.rb
43
- - lib/net/yail/message_parser.rb
44
- - lib/net/yail/magic_events.rb
45
- - lib/net/yail/legacy_events.rb
46
- - lib/net/yail/report_events.rb
47
- - lib/net/yail/output_api.rb
48
- - lib/net/yail/eventmap.yml
37
+ - lib/net/yail/IRCBot.rb
49
38
  - lib/net/yail/default_events.rb
50
39
  - lib/net/yail/dispatch.rb
51
- - lib/net/yail/IRCBot.rb
52
40
  - lib/net/yail/event.rb
41
+ - lib/net/yail/eventmap.yml
53
42
  - lib/net/yail/handler.rb
43
+ - lib/net/yail/irc_bot.rb
44
+ - lib/net/yail/legacy_events.rb
45
+ - lib/net/yail/magic_events.rb
46
+ - lib/net/yail/message_parser.rb
47
+ - lib/net/yail/output_api.rb
48
+ - lib/net/yail/report_events.rb
49
+ - lib/net/yail/yail-version.rb
54
50
  - tests/tc_event.rb
55
51
  - tests/tc_yail.rb
56
52
  - tests/tc_message_parser.rb
@@ -58,41 +54,33 @@ files:
58
54
  - tests/net_yail.rb
59
55
  homepage: http://ruby-irc-yail.nerdbucket.com/
60
56
  licenses: []
61
-
62
57
  post_install_message:
63
- rdoc_options:
58
+ rdoc_options:
64
59
  - -m
65
60
  - Net::YAIL
66
61
  - -f
67
62
  - sdoc
68
- require_paths:
63
+ require_paths:
69
64
  - lib
70
- required_ruby_version: !ruby/object:Gem::Requirement
65
+ required_ruby_version: !ruby/object:Gem::Requirement
71
66
  none: false
72
- requirements:
73
- - - ">="
74
- - !ruby/object:Gem::Version
75
- hash: 3
76
- segments:
77
- - 0
78
- version: "0"
79
- required_rubygems_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
71
+ required_rubygems_version: !ruby/object:Gem::Requirement
80
72
  none: false
81
- requirements:
82
- - - ">="
83
- - !ruby/object:Gem::Version
84
- hash: 3
85
- segments:
86
- - 0
87
- version: "0"
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
88
77
  requirements: []
89
-
90
78
  rubyforge_project: net-yail
91
79
  rubygems_version: 1.8.24
92
80
  signing_key:
93
81
  specification_version: 3
94
- summary: "Yet Another IRC Library: wrapper for IRC communications in Ruby."
95
- test_files:
82
+ summary: ! 'Yet Another IRC Library: wrapper for IRC communications in Ruby.'
83
+ test_files:
96
84
  - tests/tc_event.rb
97
85
  - tests/tc_yail.rb
98
86
  - tests/tc_message_parser.rb