dazeus 0.0.1.201306161619 → 0.0.1.201306161750

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.
@@ -9,7 +9,11 @@ module Dazeus
9
9
  end
10
10
 
11
11
  def send(message)
12
- @socket.sendmsg(dazeusify message)
12
+ if !@socket.closed?
13
+ @socket.sendmsg(dazeusify message)
14
+ else
15
+ false
16
+ end
13
17
  end
14
18
 
15
19
  def receive
@@ -19,22 +23,37 @@ module Dazeus
19
23
  message = message.strip
20
24
 
21
25
  while message.length > 0
22
- digits = ""
23
- while message[0] =~ /\d/
24
- digits += message.slice! 0
25
- end
26
- @cache.push JSON.parse(message.slice!(0, digits.to_i))
27
- message = message.strip
26
+ message = dezeusify(message)
28
27
  end
29
28
  end
30
29
  @cache.shift
31
30
  end
32
31
 
32
+ def dezeusify(message)
33
+ digits = ""
34
+ while message[0] =~ /\d/
35
+ digits += message.slice! 0
36
+ end
37
+ current = message.slice!(0, digits.to_i)
38
+ # puts "<- " + current
39
+ @cache.push JSON.parse(current)
40
+ message.strip
41
+ end
42
+
33
43
  def dazeusify(message)
34
44
  msg = JSON.dump(message)
45
+ # puts "-> " + msg
35
46
  msg.bytesize.to_s + msg
36
47
  end
37
48
 
49
+ def close
50
+ @socket.close
51
+ end
52
+
53
+ def closed?
54
+ @socket.closed?
55
+ end
56
+
38
57
  private
39
58
  def create_socket(address)
40
59
  if address.start_with? 'tcp://'
data/lib/dazeus/dazeus.rb CHANGED
@@ -68,7 +68,7 @@ module Dazeus
68
68
  def names(network, channel, &block)
69
69
  fn = lambda do |response|
70
70
  block.call(response)
71
- unsubscribe &fn
71
+ unsubscribe('NAMES', &fn)
72
72
  end
73
73
  subscribe('NAMES', &fn)
74
74
  send_names(network, channel)
@@ -82,7 +82,7 @@ module Dazeus
82
82
  def whois(network, nick, &block)
83
83
  fn = lambda do |response|
84
84
  block.call(response)
85
- unsubscribe &fn
85
+ unsubscribe('WHOIS', &fn)
86
86
  end
87
87
  subscribe('WHOIS', &fn)
88
88
  send_whois(network, nick)
@@ -194,19 +194,28 @@ module Dazeus
194
194
  end
195
195
 
196
196
  def run
197
+
197
198
  loop do
199
+ break if conn.closed?
198
200
  handle_event conn.receive
199
201
  end
200
202
  end
201
203
 
204
+ def stop
205
+ conn.close
206
+ end
207
+
202
208
  private
203
209
  def send_receive(message)
204
210
  conn.send message
205
211
  response = nil
206
212
  loop do
213
+ break if conn.closed?
207
214
  response = conn.receive
208
215
  break unless handle_event response
209
216
  end
217
+
218
+ return {} if response == nil
210
219
  response
211
220
  end
212
221
 
@@ -3,7 +3,15 @@ require 'dazeus/event/event'
3
3
  module Dazeus
4
4
  module Event
5
5
  class Names < Event
6
+ attr_accessor :names, :network, :server, :channel
6
7
 
8
+ def post_init
9
+ super
10
+ @network = @params[0]
11
+ @server = @params[1]
12
+ @channel = @params[2]
13
+ @names = @params[3..-1]
14
+ end
7
15
  end
8
16
  end
9
17
  end
@@ -3,7 +3,14 @@ require 'dazeus/event/event'
3
3
  module Dazeus
4
4
  module Event
5
5
  class Whois < Event
6
-
6
+ attr_accessor :network, :server, :nick, :secure
7
+ def post_init
8
+ super
9
+ @network = @params[0]
10
+ @server = @params[1]
11
+ @nick = @params[2]
12
+ @secure = @params[3]
13
+ end
7
14
  end
8
15
  end
9
16
  end
@@ -1,3 +1,3 @@
1
1
  module Dazeus
2
- VERSION = "0.0.1.201306161619"
2
+ VERSION = "0.0.1.201306161750"
3
3
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: dazeus
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1.201306161619
4
+ version: 0.0.1.201306161750
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -84,7 +84,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
84
84
  version: '0'
85
85
  segments:
86
86
  - 0
87
- hash: -4211769068045469357
87
+ hash: -899128978511928206
88
88
  required_rubygems_version: !ruby/object:Gem::Requirement
89
89
  none: false
90
90
  requirements:
@@ -93,7 +93,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
93
93
  version: '0'
94
94
  segments:
95
95
  - 0
96
- hash: -4211769068045469357
96
+ hash: -899128978511928206
97
97
  requirements: []
98
98
  rubyforge_project:
99
99
  rubygems_version: 1.8.25