Class: DRbProxy::Server

Inherits:
Object
  • Object
show all
Defined in:
lib/drbproxy/server.rb

Constant Summary collapse

@@klasses =
[]

Instance Method Summary collapse

Constructor Details

#initialize(options = {}) ⇒ Server

Returns a new instance of Server.



4
5
6
# File 'lib/drbproxy/server.rb', line 4

def initialize(options={})
  @debug = options[:debug]
end

Instance Method Details

#constant_for(klass_name, const_name) ⇒ Object



22
23
24
25
# File 'lib/drbproxy/server.rb', line 22

def constant_for(klass_name, const_name)
  puts "Retrieving constant #{klass_name}::#{const_name}" if @debug
  return get_klass(klass_name).const_get(const_name)
end

#get_klass(klass_name) ⇒ Object



27
28
29
30
31
32
33
34
35
36
37
38
# File 'lib/drbproxy/server.rb', line 27

def get_klass(klass_name)
  klass_arch = klass_name.split('::')
  klass = Kernel
  klass_arch.each { |k| klass = klass.const_get(k) }
  unless @@klasses.include?(klass)
    klass.send :include, DRb::DRbUndumped
    klass.send :extend, DRb::DRbUndumped
    @@klasses << klass
    puts "Defined new class #{klass_name}" if @debug
  end
  klass
end

#klass_for(klass_name) ⇒ Object



18
19
20
# File 'lib/drbproxy/server.rb', line 18

def klass_for(klass_name)
  return get_klass(klass_name)
end

#new_object_for(klass_name, *args) ⇒ Object



12
13
14
15
16
# File 'lib/drbproxy/server.rb', line 12

def new_object_for(klass_name, *args)
  puts "Initializing new object #{klass_name}" if @debug
  klass = get_klass(klass_name)
  return klass.new(*args)
end

#ready?Boolean

Returns:

  • (Boolean)


8
9
10
# File 'lib/drbproxy/server.rb', line 8

def ready?
  true
end