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
Returns a new instance of 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
34
|
# 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 = {}
@registered_users = {}
end
|
Dynamic Method Handling
This class handles dynamic methods through the method_missing method
#method_missing(method, *args) ⇒ Object
124
125
126
127
128
|
# File 'lib/murmur/server.rb', line 124
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
104
105
106
107
|
# File 'lib/murmur/server.rb', line 104
def [](key)
key = key.to_s
config[key]
end
|
#[]=(key, val) ⇒ Object
109
110
111
112
113
|
# File 'lib/murmur/server.rb', line 109
def []=(key, val)
key - key.to_s
@interface.setConf(key, val.to_s)
@config = nil
end
|
#channel(id) ⇒ Object
44
45
46
47
48
|
# File 'lib/murmur/server.rb', line 44
def channel(id)
channels
@channels[id]
end
|
#channels ⇒ Object
50
51
52
53
54
55
56
|
# File 'lib/murmur/server.rb', line 50
def channels
@channels = {}
@interface.getChannels.each do |_, channel|
@channels[channel.id] = Channel.new(@host, @meta, self, channel)
end
@channels
end
|
#config ⇒ Object
80
81
82
|
# File 'lib/murmur/server.rb', line 80
def config
@config = @meta.getDefaultConf.merge(@interface.getAllConf)
end
|
#destroy! ⇒ Object
Also known as:
delete
84
85
86
87
88
|
# File 'lib/murmur/server.rb', line 84
def destroy!
@interface.stop if running?
@host.uncache_server id
@interface.delete
end
|
#id ⇒ Object
36
37
38
|
# File 'lib/murmur/server.rb', line 36
def id
@interface.id
end
|
#raw ⇒ Object
120
121
122
|
# File 'lib/murmur/server.rb', line 120
def raw
@interface
end
|
#registered_users ⇒ Object
66
67
68
69
70
71
72
|
# File 'lib/murmur/server.rb', line 66
def registered_users
@registered_users = {}
@interface.getRegisteredUsers.each do |_, user|
@registered_users[user.session] = User.new(@host, @meta, self, user)
end
@registered_users
end
|
#restart! ⇒ Object
99
100
101
102
|
# File 'lib/murmur/server.rb', line 99
def restart!
@interface.stop if running?
@interface.start
end
|
#running? ⇒ Boolean
40
41
42
|
# File 'lib/murmur/server.rb', line 40
def running?
@interface.isRunning
end
|
#setConf(key, val) ⇒ Object
115
116
117
118
|
# File 'lib/murmur/server.rb', line 115
def setConf(key, val)
key = key.to_s
self[key] = val
end
|
#start! ⇒ Object
91
92
93
|
# File 'lib/murmur/server.rb', line 91
def start!
@interface.start unless running?
end
|
#stop! ⇒ Object
95
96
97
|
# File 'lib/murmur/server.rb', line 95
def stop!
@interface.stop if running?
end
|
#user(session) ⇒ Object
74
75
76
77
78
|
# File 'lib/murmur/server.rb', line 74
def user(session)
users
@users[:session]
end
|
#users ⇒ Object
58
59
60
61
62
63
64
|
# File 'lib/murmur/server.rb', line 58
def users
@users = {}
@interface.getUsers.each do |_, user|
@users[user.session] = User.new(@host, @meta, self, user)
end
@users
end
|