class Stargate::Server::Caller
Internal: We need a way to call registered stuff. This little service handles it. Caller
is defined per registry version and operates only within its context.
Public Class Methods
new(registry_version)
click to toggle source
# File lib/stargate/server/caller.rb, line 9 def initialize(registry_version) @marshaller = Marshaller.new(registry_version) @registry_version = registry_version end
Public Instance Methods
call(klass_name, method, *args)
click to toggle source
# File lib/stargate/server/caller.rb, line 14 def call(klass_name, method, *args) method, metadata = method.to_sym, @registry_version[klass_name] metadata.class_methods.include?(method) or raise MethodNotExposedError, "Method not exposed: #{klass_name}.#{method}" result = metadata.klass.send(method, *args) log.debug("Method call performed", class: klass_name, method: method, result:result.inspect) @marshaller.marshal(result) end