on_irc 2.1.1 → 2.1.3

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.
data/VERSION CHANGED
@@ -1 +1 @@
1
- 2.1.1
1
+ 2.1.3
@@ -8,14 +8,14 @@ class IRC
8
8
 
9
9
  ## EventMachine callbacks
10
10
  def post_init
11
- send_data("USER #{@server.ident || @server.irc.ident} * * #{@server.realname || @server.irc.realname}\r\n")
11
+ send_data("USER #{@server.ident || @server.irc.ident} * * :#{@server.realname || @server.irc.realname}\r\n")
12
12
  send_data("NICK #{@server.nick || @server.irc.nick}\r\n")
13
13
  rescue => e
14
14
  p e
15
15
  end
16
16
 
17
17
  def receive_line(line)
18
- @server.receive_line(line.force_encoding('utf-8'))
18
+ @server.receive_line(RUBY_VERSION < "1.9" ? line : line.force_encoding('utf-8'))
19
19
  end
20
20
 
21
21
  def unbind
data/lib/on_irc/parser.rb CHANGED
@@ -8,11 +8,11 @@ class IRC
8
8
 
9
9
  if msg.peek(1) == ':'
10
10
  msg.pos += 1
11
- prefix = msg.scan /\S+/
11
+ prefix = msg.scan /\S+/u
12
12
  msg.skip /\s+/
13
13
  end
14
14
 
15
- command = msg.scan /\S+/
15
+ command = msg.scan /\S+/u
16
16
 
17
17
  until msg.eos?
18
18
  msg.skip /\s+/
@@ -22,7 +22,7 @@ class IRC
22
22
  params << msg.rest
23
23
  msg.terminate
24
24
  else
25
- params << msg.scan(/\S+/)
25
+ params << msg.scan(/\S+/u)
26
26
  end
27
27
  end
28
28
 
metadata CHANGED
@@ -1,36 +1,34 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: on_irc
3
- version: !ruby/object:Gem::Version
4
- version: 2.1.1
3
+ version: !ruby/object:Gem::Version
4
+ version: 2.1.3
5
+ prerelease:
5
6
  platform: ruby
6
- authors:
7
+ authors:
7
8
  - Scott Olson
8
9
  autorequire:
9
10
  bindir: bin
10
11
  cert_chain: []
11
-
12
- date: 2010-01-19 00:00:00 -06:00
13
- default_executable:
14
- dependencies:
15
- - !ruby/object:Gem::Dependency
12
+ date: 2011-12-11 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
16
15
  name: eventmachine
16
+ requirement: &14911800 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: '0'
17
22
  type: :runtime
18
- version_requirement:
19
- version_requirements: !ruby/object:Gem::Requirement
20
- requirements:
21
- - - ">="
22
- - !ruby/object:Gem::Version
23
- version: "0"
24
- version:
23
+ prerelease: false
24
+ version_requirements: *14911800
25
25
  description: An event driven IRC library with an easy to use DSL
26
26
  email: scott@scott-olson.org
27
27
  executables: []
28
-
29
28
  extensions: []
30
-
31
- extra_rdoc_files:
29
+ extra_rdoc_files:
32
30
  - LICENSE
33
- files:
31
+ files:
34
32
  - LICENSE
35
33
  - Rakefile
36
34
  - VERSION
@@ -45,35 +43,28 @@ files:
45
43
  - lib/on_irc/parser.rb
46
44
  - lib/on_irc/sender.rb
47
45
  - lib/on_irc/server.rb
48
- has_rdoc: true
49
46
  homepage: http://github.com/tsion/on_irc
50
47
  licenses: []
51
-
52
48
  post_install_message:
53
- rdoc_options:
54
- - --charset=UTF-8
55
- require_paths:
49
+ rdoc_options: []
50
+ require_paths:
56
51
  - lib
57
- required_ruby_version: !ruby/object:Gem::Requirement
58
- requirements:
59
- - - ">="
60
- - !ruby/object:Gem::Version
61
- version: "0"
62
- version:
63
- required_rubygems_version: !ruby/object:Gem::Requirement
64
- requirements:
65
- - - ">="
66
- - !ruby/object:Gem::Version
67
- version: "0"
68
- version:
52
+ required_ruby_version: !ruby/object:Gem::Requirement
53
+ none: false
54
+ requirements:
55
+ - - ! '>='
56
+ - !ruby/object:Gem::Version
57
+ version: '0'
58
+ required_rubygems_version: !ruby/object:Gem::Requirement
59
+ none: false
60
+ requirements:
61
+ - - ! '>='
62
+ - !ruby/object:Gem::Version
63
+ version: '0'
69
64
  requirements: []
70
-
71
65
  rubyforge_project:
72
- rubygems_version: 1.3.5
66
+ rubygems_version: 1.8.11
73
67
  signing_key:
74
68
  specification_version: 3
75
69
  summary: An event driven IRC library with an easy to use DSL
76
- test_files:
77
- - examples/regex_bot.rb
78
- - examples/relay.rb
79
- - examples/bot.rb
70
+ test_files: []
data/examples/bot.rb DELETED
@@ -1,40 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.join(File.dirname(__FILE__), '..', 'lib', 'on_irc')
3
-
4
- bot = IRC.new do
5
- nick 'on_irc'
6
- ident 'on_irc'
7
- realname 'on_irc Ruby IRC library'
8
-
9
- server :eighthbit do
10
- address 'irc.eighthbit.net'
11
- end
12
- end
13
-
14
-
15
- bot[:eighthbit].on '001' do
16
- join '#bots'
17
- end
18
-
19
- bot.on :privmsg do
20
- case params[1]
21
- when '!ping'
22
- respond "#{sender.nick}: pong"
23
- when /^!echo (.*)/
24
- respond "#{sender.nick}: #{$1}"
25
- when /^!join (.*)/
26
- join $1
27
- end
28
- end
29
-
30
- bot.on :ping do
31
- pong params[0]
32
- end
33
-
34
- bot.on :all do
35
- p = "(#{sender}) " unless sender.empty?
36
- puts "#{server.name}: #{p}#{command} #{params.inspect}"
37
- end
38
-
39
- bot.connect
40
-
@@ -1,96 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.join(File.dirname(__FILE__), '..', 'lib', 'on_irc')
3
-
4
- MAX_BANGS = 3
5
- CH_USER_MEMORY = {}
6
- CHANNEL_MEMORY = {}
7
-
8
- bot = IRC.new do
9
- nick 'reggie'
10
- ident 'reggie'
11
- realname 'uses on_irc Ruby IRC library'
12
-
13
- server :eighthbit do
14
- address 'irc.eighthbit.net'
15
- end
16
-
17
- # server :freenode do
18
- # address 'irc.freenode.org'
19
- # end
20
- end
21
-
22
- bot[:eighthbit].on :'001' do
23
- join '#programming'
24
- join '#offtopic'
25
- end
26
-
27
- bot.on :privmsg do
28
- next unless params[0][0,1] == '#' # make sure regex replace only happens in channels
29
- channel = params[0]
30
- message = params[1]
31
-
32
- CHANNEL_MEMORY[channel] ||= []
33
- CH_USER_MEMORY[channel] ||= {}
34
- CH_USER_MEMORY[channel][sender.nick] ||= []
35
-
36
- if params[1] =~ %r"^(!*)s/((?:[^\\/]|\\.)*)/((?:[^\\/]|\\.)*)/(?:(\w*))?"
37
- bangs = $1
38
- match = $2
39
- replace = $3
40
- flags = $4
41
-
42
- if bangs.length > MAX_BANGS
43
- respond "#{sender.nick}: I only support up to #{MAX_BANGS} !'s."
44
- respond 'in bed' if rand(1000) == 42
45
- next
46
- end
47
-
48
- begin
49
- match = Regexp.new match
50
- rescue RegexpError => err
51
- respond "RegexpError: #{err.message}"
52
- next
53
- end
54
-
55
- target = if bangs.length == 0
56
- CHANNEL_MEMORY[channel][1] || ''
57
- else
58
- CH_USER_MEMORY[channel][sender.nick][-bangs.length] || ''
59
- end
60
-
61
- if flags.chars.include? 'g'
62
- answer = target.gsub(match, replace)
63
- else
64
- answer = target.sub(match, replace)
65
- end
66
-
67
- if bangs.length > 0 || CHANNEL_MEMORY[channel][0] == sender.nick
68
- respond "#{sender.nick} meant: #{answer}"
69
- else
70
- respond "#{sender.nick} thinks #{CHANNEL_MEMORY[channel][0]} meant: #{answer}"
71
- end
72
-
73
- else
74
- if message =~ /^\x01(\S+) (.*)\x01$/
75
- next unless $1 == 'ACTION'
76
-
77
- message = "* #{sender.nick} #{$2}"
78
- end
79
-
80
- CH_USER_MEMORY[channel][sender.nick] << message
81
- CH_USER_MEMORY[channel][sender.nick].unshift if CH_USER_MEMORY[channel][sender.nick].length > MAX_BANGS
82
-
83
- CHANNEL_MEMORY[channel] = [sender.nick, message]
84
- end
85
- end
86
-
87
- bot.on :ping do
88
- pong params[0]
89
- end
90
-
91
- bot.on :all do
92
- p = "(#{sender}) " unless sender.empty?
93
- puts "#{server.name}: #{p}#{command} #{params.inspect}"
94
- end
95
-
96
- bot.connect
data/examples/relay.rb DELETED
@@ -1,46 +0,0 @@
1
- #!/usr/bin/env ruby
2
- require File.join(File.dirname(__FILE__), '..', 'lib', 'on_irc')
3
-
4
- bot = IRC.new do
5
- nick 'on_irc-relay'
6
- ident 'on_irc'
7
- realname 'on_irc Ruby IRC library - relay example'
8
-
9
- server :eighthbit do
10
- address 'irc.eighthbit.net'
11
- end
12
-
13
- server :freenode do
14
- address 'irc.freenode.org'
15
- end
16
- end
17
-
18
-
19
- bot[:freenode].on '001' do
20
- join '#botters'
21
- end
22
-
23
- bot[:eighthbit].on '001' do
24
- join '#offtopic'
25
- end
26
-
27
- bot.on :privmsg do
28
- case params[1]
29
- when /^fn> (.*)/
30
- bot[:freenode].msg('#botters', "<8b:#{sender.nick}> #{$1}") if params[0] == '#offtopic' && server.name == :eighthbit
31
- when /^8b> (.*)/
32
- bot[:eighthbit].msg('#offtopic', "<fn:#{sender.nick}> #{$1}") if params[0] == '#botters' && server.name == :freenode
33
- end
34
- end
35
-
36
- bot.on :ping do
37
- pong params[0]
38
- end
39
-
40
- bot.on :all do
41
- p = "(#{sender}) " unless sender.empty?
42
- puts "#{server.name}: #{p}#{command} #{params.inspect}"
43
- end
44
-
45
- bot.connect
46
-