Class: Murmur::API::Server
- Inherits:
-
Object
- Object
- Murmur::API::Server
show all
- Defined in:
- lib/murmur/server.rb
Instance Method Summary
collapse
Constructor Details
#initialize(host, meta, options) ⇒ Server
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
# File 'lib/murmur/server.rb', line 8
def initialize(host, meta, options)
@host = host
@meta = meta
if !options[:id] and !options[:interface]
options.delete :id
options.delete :interface
server = @host.new_server_interface
@interface = host.add_proxy_router(server)
options.each do |key, value|
setConf(key, value)
end
end
@interface = @interface || options[:interface] || begin
server = @meta.getServer(options[:id])
raise ::Murmur::Ice::InvalidServerException if server.nil?
host.add_proxy_router(server)
end
@channels = {}
@users = {}
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
103
104
105
106
107
|
# File 'lib/murmur/server.rb', line 103
def method_missing(method, *args)
method = method.to_s
method.gsub!(/_([a-z])/) { $1.upcase }
ret = @interface.send method, *args
end
|
Instance Method Details
#[](key) ⇒ Object
87
88
89
90
|
# File 'lib/murmur/server.rb', line 87
def [](key)
key = key.to_s
config[key]
end
|
#[]=(key, val) ⇒ Object
92
93
94
95
96
|
# File 'lib/murmur/server.rb', line 92
def []=(key, val)
key - key.to_s
@interface.setConf(key, val.to_s)
@config = nil
end
|
#channel(id) ⇒ Object
43
44
45
46
47
|
# File 'lib/murmur/server.rb', line 43
def channel(id)
channels
@channels[id]
end
|
#channels ⇒ Object
49
50
51
52
53
54
55
|
# File 'lib/murmur/server.rb', line 49
def channels
@channels = {}
@interface.getChannels.each do |_, channel|
@channels[channel.id] = Channel.new(@host, @meta, self, channel)
end
@channels
end
|
#config ⇒ Object
71
72
73
|
# File 'lib/murmur/server.rb', line 71
def config
@config = @meta.getDefaultConf.merge(@interface.getAllConf)
end
|
#destroy! ⇒ Object
Also known as:
delete
75
76
77
78
79
|
# File 'lib/murmur/server.rb', line 75
def destroy!
@interface.stop if running?
@host.uncache_server id
@interface.delete
end
|
#id ⇒ Object
35
36
37
|
# File 'lib/murmur/server.rb', line 35
def id
@interface.id
end
|
#restart! ⇒ Object
82
83
84
85
|
# File 'lib/murmur/server.rb', line 82
def restart!
@interface.stop if running?
@interface.start
end
|
#running? ⇒ Boolean
39
40
41
|
# File 'lib/murmur/server.rb', line 39
def running?
@interface.isRunning
end
|
#setConf(key, val) ⇒ Object
98
99
100
101
|
# File 'lib/murmur/server.rb', line 98
def setConf(key, val)
key = key.to_s
self[key] = val
end
|
#user(session) ⇒ Object
65
66
67
68
69
|
# File 'lib/murmur/server.rb', line 65
def user(session)
users
@users[:session]
end
|
#users ⇒ Object
57
58
59
60
61
62
63
|
# File 'lib/murmur/server.rb', line 57
def users
@users = {}
@interface.getUsers.each do |_, user|
@users[user.session] = User.new(@host, @meta, self, user)
end
@users
end
|