Class: Murmur::Ice::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/murmur-rpc/interfaces/ice.rb

Instance Method Summary collapse

Constructor Details

#initialize(host, meta, id = nil, interface = nil) ⇒ Server

Returns a new instance of Server.



103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/murmur-rpc/interfaces/ice.rb', line 103

def initialize(host, meta, id = nil, interface = nil)
  @meta = meta
  @host = host
  if id.nil? and interface.nil? then
    raise "Must pass either a server ID or a server interface instance"
  end
  @interface = interface || begin
  server = @meta.getServer(id)
  raise ::Murmur::Ice::InvalidServerException if server.nil?
  host.add_proxy_router(server)
  end
end

Dynamic Method Handling

This class handles dynamic methods through the method_missing method

#method_missing(method, *args) ⇒ Object



154
155
156
157
158
# File 'lib/murmur-rpc/interfaces/ice.rb', line 154

def method_missing(method, *args)
  method = method.to_s
  method.gsub!(/_([a-z])/) { $1.upcase }
  @interface.send method, *args
end

Instance Method Details

#[](key) ⇒ Object



141
142
143
# File 'lib/murmur-rpc/interfaces/ice.rb', line 141

def [](key)
  config[key]
end

#[]=(key, val) ⇒ Object



145
146
147
148
# File 'lib/murmur-rpc/interfaces/ice.rb', line 145

def []=(key, val)
  @interface.setConf(key, val.to_s)
  @config = nil
end

#configObject



124
125
126
# File 'lib/murmur-rpc/interfaces/ice.rb', line 124

def config
  @config = @meta.getDefaultConf.merge(@interface.getAllConf)
end

#destroy!Object Also known as: delete



128
129
130
131
132
# File 'lib/murmur-rpc/interfaces/ice.rb', line 128

def destroy!
  @interface.stop if running?
  @host.uncache_server @interface.id
  @interface.delete
end

#idObject



116
117
118
# File 'lib/murmur-rpc/interfaces/ice.rb', line 116

def id
  @interface.id
end

#restart!Object



135
136
137
138
139
# File 'lib/murmur-rpc/interfaces/ice.rb', line 135

def restart!
  @interface.stop if running?
  @interface.start
  @running = nil
end

#running?Boolean

Returns:

  • (Boolean)


120
121
122
# File 'lib/murmur-rpc/interfaces/ice.rb', line 120

def running?
  @interface.isRunning
end

#setConf(key, val) ⇒ Object



150
151
152
# File 'lib/murmur-rpc/interfaces/ice.rb', line 150

def setConf(key, val)
  self[key] = val
end