tribe_em 0.0.1 → 0.0.2
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/README.md +1 -1
- data/lib/tribe_em/connection.rb +10 -16
- data/lib/tribe_em/tcp_server.rb +2 -15
- data/lib/tribe_em/version.rb +1 -1
- data/lib/tribe_em.rb +6 -1
- data/tribe_em.gemspec +1 -1
- metadata +4 -4
data/README.md
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
# Tribe EM
|
2
2
|
|
3
|
-
Tribe EM is a Ruby gem that adds network IO to
|
3
|
+
Tribe EM is a Ruby gem that adds event-driven network IO to [Tribe] (https://github.com/chadrem/tribe "Tribe").
|
4
4
|
It is based on [EventMachine] (http://rubyeventmachine.com/ "EventMachine").
|
5
5
|
|
6
6
|
## Installation
|
data/lib/tribe_em/connection.rb
CHANGED
@@ -3,42 +3,36 @@ module Tribe
|
|
3
3
|
class Connection < ::EM::Connection
|
4
4
|
include Tribe::Actable
|
5
5
|
|
6
|
-
|
7
|
-
init_actable(options)
|
8
|
-
end
|
9
|
-
|
6
|
+
# EM callback. Don't call directly.
|
10
7
|
def post_init
|
11
8
|
enqueue(:post_init, nil)
|
12
9
|
end
|
13
10
|
|
11
|
+
# EM callback. Don't call directly.
|
14
12
|
def receive_data(data)
|
15
13
|
enqueue(:receive_data, data)
|
16
14
|
end
|
17
15
|
|
16
|
+
# EM callback. Don't call directly.
|
18
17
|
def unbind
|
19
18
|
enqueue(:unbind, nil)
|
20
19
|
end
|
21
20
|
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
when :receive_data
|
27
|
-
receive_data_handler(event)
|
28
|
-
when :unbind
|
29
|
-
unbind_handler(event)
|
30
|
-
end
|
21
|
+
private
|
22
|
+
|
23
|
+
def initialize(options = {})
|
24
|
+
init_actable(options)
|
31
25
|
end
|
32
26
|
|
33
|
-
def
|
27
|
+
def on_post_init(event)
|
34
28
|
puts "Actor (#{identifier}) connected to client using thread (#{Thread.current.object_id})."
|
35
29
|
end
|
36
30
|
|
37
|
-
def
|
31
|
+
def on_receive_data(event)
|
38
32
|
puts "Actor (#{identifier}) received data (#{event.data}) using thread (#{Thread.current.object_id})."
|
39
33
|
end
|
40
34
|
|
41
|
-
def
|
35
|
+
def on_unbind(event)
|
42
36
|
puts "Actor (#{identifier}) disconnected from client using thread (#{Thread.current.object_id})."
|
43
37
|
end
|
44
38
|
end
|
data/lib/tribe_em/tcp_server.rb
CHANGED
@@ -13,20 +13,11 @@ module Tribe
|
|
13
13
|
start_listener
|
14
14
|
end
|
15
15
|
|
16
|
-
def
|
17
|
-
case event.command
|
18
|
-
when :start_listener
|
19
|
-
start_listener_handler(event)
|
20
|
-
when :stop_listener
|
21
|
-
stop_listener_handler(event)
|
22
|
-
end
|
23
|
-
end
|
24
|
-
|
25
|
-
def start_listener_handler(event)
|
16
|
+
def on_start_listener(event)
|
26
17
|
start_listener
|
27
18
|
end
|
28
19
|
|
29
|
-
def
|
20
|
+
def on_stop_listener(event)
|
30
21
|
stop_listener
|
31
22
|
end
|
32
23
|
|
@@ -34,10 +25,6 @@ module Tribe
|
|
34
25
|
stop_server
|
35
26
|
end
|
36
27
|
|
37
|
-
def set_server_sig_handler(event)
|
38
|
-
@server_sig = event.data
|
39
|
-
end
|
40
|
-
|
41
28
|
def start_listener
|
42
29
|
return if @server_sig
|
43
30
|
|
data/lib/tribe_em/version.rb
CHANGED
data/lib/tribe_em.rb
CHANGED
@@ -8,7 +8,12 @@ require 'tribe_em/tcp_server'
|
|
8
8
|
module Tribe
|
9
9
|
module EM
|
10
10
|
def self.start
|
11
|
-
@em_thread = Thread.new
|
11
|
+
@em_thread = Thread.new do
|
12
|
+
::EM.run do
|
13
|
+
::EM.kqueue = true if ::EM.kqueue?
|
14
|
+
::EM.epoll = true if ::EM.epoll?
|
15
|
+
end
|
16
|
+
end
|
12
17
|
|
13
18
|
return nil
|
14
19
|
end
|
data/tribe_em.gemspec
CHANGED
@@ -17,6 +17,6 @@ Gem::Specification.new do |gem|
|
|
17
17
|
gem.test_files = gem.files.grep(%r{^(test|spec|features)/})
|
18
18
|
gem.require_paths = ["lib"]
|
19
19
|
|
20
|
-
gem.add_dependency('tribe', ['0.0.
|
20
|
+
gem.add_dependency('tribe', ['0.0.8'])
|
21
21
|
gem.add_dependency('eventmachine', '>= 1.0.0')
|
22
22
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: tribe_em
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
prerelease:
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2013-01-
|
12
|
+
date: 2013-01-27 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: tribe
|
@@ -18,7 +18,7 @@ dependencies:
|
|
18
18
|
requirements:
|
19
19
|
- - '='
|
20
20
|
- !ruby/object:Gem::Version
|
21
|
-
version: 0.0.
|
21
|
+
version: 0.0.8
|
22
22
|
type: :runtime
|
23
23
|
prerelease: false
|
24
24
|
version_requirements: !ruby/object:Gem::Requirement
|
@@ -26,7 +26,7 @@ dependencies:
|
|
26
26
|
requirements:
|
27
27
|
- - '='
|
28
28
|
- !ruby/object:Gem::Version
|
29
|
-
version: 0.0.
|
29
|
+
version: 0.0.8
|
30
30
|
- !ruby/object:Gem::Dependency
|
31
31
|
name: eventmachine
|
32
32
|
requirement: !ruby/object:Gem::Requirement
|