moonbot 0.0.2 → 0.0.3

Sign up to get free protection for your applications and to get access to all the features.
data/lib/MoonBot/bot.rb CHANGED
@@ -11,11 +11,15 @@ module MoonBot
11
11
 
12
12
  def start
13
13
  EventMachine.run do
14
- @client = EventMachine.connect @host, @port, Client, Proc.new { |m| self.handle m }
14
+ @client = EventMachine.connect @host, @port, Client, Proc.new do |message|
15
+ message = message.split("\r\n")
16
+ message.each do {|m| self.handle m}
17
+ end
15
18
  end
16
19
  end
17
20
 
18
21
  def handle message
22
+ return if message.nil?
19
23
  @plugins.each do |name, instance|
20
24
  instance.send('on_' + message[:command].downcase, message) rescue nil
21
25
  instance.send('any', message) if instance.respond_to? 'any'
@@ -26,6 +30,10 @@ module MoonBot
26
30
  @plugins[plugin.to_s] = plugin.new(self)
27
31
  puts "Loading #{plugin.to_s}"
28
32
  end
33
+
34
+ def command message
35
+ self.client.send_data(message + '\r\n')
36
+ end
29
37
 
30
38
  end
31
- end
39
+ end
@@ -3,7 +3,7 @@ module MoonBot
3
3
  def self.parse data
4
4
  message = {}
5
5
  # if not empty
6
- if !data.scan(/^:/).empty?
6
+ if data.scan(/^:/)
7
7
  separated = data.split ':'
8
8
  body = separated[1].split ' '
9
9
  message[:prefix] = body.shift
@@ -17,7 +17,9 @@ module MoonBot
17
17
  message[:args] = body
18
18
  end
19
19
  message
20
+ rescue
21
+ nil
20
22
  end
21
23
 
22
24
  end
23
- end
25
+ end
@@ -0,0 +1,19 @@
1
+ module MoonBot::Helpers
2
+ def parse_user user_string
3
+ user = {}
4
+ nick, host = user_string.split('@')
5
+ nick, name = nick.split('!')
6
+ user[:nick] = nick
7
+ user[:name] = name
8
+ user[:host] = host
9
+ user
10
+ end
11
+
12
+ def match msg, regex
13
+ if msg[:trailing].scan(regex)
14
+ args = msg[:trailing].gsub(regex, '')
15
+ yield args
16
+ end
17
+ end
18
+
19
+ end
@@ -1,3 +1,3 @@
1
1
  module MoonBot
2
- VERSION = "0.0.2"
2
+ VERSION = "0.0.3"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: moonbot
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.2
4
+ version: 0.0.3
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,11 +9,11 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-01-12 00:00:00.000000000Z
12
+ date: 2012-01-30 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: eventmachine
16
- requirement: &70302262152900 !ruby/object:Gem::Requirement
16
+ requirement: &70287282711580 !ruby/object:Gem::Requirement
17
17
  none: false
18
18
  requirements:
19
19
  - - ! '>='
@@ -21,7 +21,7 @@ dependencies:
21
21
  version: '0'
22
22
  type: :runtime
23
23
  prerelease: false
24
- version_requirements: *70302262152900
24
+ version_requirements: *70287282711580
25
25
  description: Amazingly simple IRC bot that handles everything via plugins with the
26
26
  exception of connecting.
27
27
  email:
@@ -40,6 +40,7 @@ files:
40
40
  - lib/MoonBot/parser.rb
41
41
  - lib/MoonBot/plugin.rb
42
42
  - lib/MoonBot/plugins/auth.rb
43
+ - lib/MoonBot/plugins/helpers.rb
43
44
  - lib/MoonBot/plugins/ping.rb
44
45
  - lib/MoonBot/plugins/verbose.rb
45
46
  - lib/MoonBot/version.rb
@@ -64,7 +65,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
64
65
  version: '0'
65
66
  requirements: []
66
67
  rubyforge_project:
67
- rubygems_version: 1.8.12
68
+ rubygems_version: 1.8.11
68
69
  signing_key:
69
70
  specification_version: 3
70
71
  summary: Amazingly simple IRC bot.