class Rohbau::RuntimeLoader

Attributes

registrar[RW]

Public Class Methods

instance() click to toggle source
# File lib/rohbau/runtime_loader.rb, line 4
def instance
  @instance
end
new(*args) click to toggle source
Calls superclass method
# File lib/rohbau/runtime_loader.rb, line 23
def new(*args)
  super(*args)
  self
end
new(runtime) click to toggle source
# File lib/rohbau/runtime_loader.rb, line 29
def initialize(runtime)
  return if singleton_assigned?
  build_singleton(runtime)
end
registered(registrar) click to toggle source
# File lib/rohbau/runtime_loader.rb, line 19
def registered(registrar)
  self.registrar = registrar
end
running?() click to toggle source
# File lib/rohbau/runtime_loader.rb, line 8
def running?
  !!instance
end
terminate() click to toggle source
# File lib/rohbau/runtime_loader.rb, line 12
def terminate
  instance.terminate if instance.respond_to? :terminate
  remove_instance_variable :@instance if defined? @instance
end

Private Instance Methods

assign_to_singleton(instance) click to toggle source
# File lib/rohbau/runtime_loader.rb, line 53
def assign_to_singleton(instance)
  self.class.instance_variable_set singleton_variable, instance
end
build_singleton(runtime) click to toggle source
# File lib/rohbau/runtime_loader.rb, line 57
def build_singleton(runtime)
  initialize_with_immediate_callback runtime do |instance|
    assign_to_singleton(instance)
  end
end
initialize_with_immediate_callback(cls, &callback) click to toggle source
Calls superclass method
# File lib/rohbau/runtime_loader.rb, line 44
def initialize_with_immediate_callback(cls, &callback)
  cls.send :define_method, :initialize do |*args|
    callback.call(self)
    super(*args)
  end

  cls.new
end
singleton() click to toggle source
# File lib/rohbau/runtime_loader.rb, line 40
def singleton
  self.class.instance_variable_get singleton_variable
end
singleton_assigned?() click to toggle source
# File lib/rohbau/runtime_loader.rb, line 36
def singleton_assigned?
  self.class.instance_variable_defined? singleton_variable
end
singleton_variable() click to toggle source
# File lib/rohbau/runtime_loader.rb, line 63
def singleton_variable
  :@instance
end