Method: RubySkynet::Client#initialize

Defined in:
lib/ruby_skynet/client.rb

#initialize(skynet_name = self.class.skynet_name, skynet_version = self.class.skynet_version, skynet_region = self.class.skynet_region) ⇒ Client

Returns a new RubySkynet Client for the named service

Calls to an instance of the Client are thread-safe and can be called concurrently from multiple threads at the same time

Parameters:

:skynet_name
  Only required when creating instance of RubySkynet::Client directly
  Otherwise it defaults to the name of the class
  Name of the service to look for and connect to on Skynet

:skynet_version
  Optional version number of the service in Skynet
  Default: '*' being the latest version of the service

:skynet_region
  Optional region for this service in Skynet
  Default: RubySkynet.region

Example using Client class

require 'ruby_skynet'
SemanticLogger.default_level = :info
SemanticLogger.add_appender(STDOUT)

class EchoService < RubySkynet::Client
end

echo_service = EchoService.new
p echo_service.echo(:value => 5)

Example using Ruby Client directly

require 'ruby_skynet'
SemanticLogger.default_level = :info
SemanticLogger.add_appender(STDOUT)

tutorial_service = RubySkynet::Client.new('TutorialService')
p tutorial_service.call('Add', :value => 5)


61
62
63
64
65
66
67
68
# File 'lib/ruby_skynet/client.rb', line 61

def initialize(skynet_name=self.class.skynet_name, skynet_version=self.class.skynet_version, skynet_region=self.class.skynet_region)
  @skynet_name    = skynet_name
  @skynet_version = skynet_version
  @skynet_region  = skynet_region
  self.logger = SemanticLogger["#{self.class.name}: #{@skynet_name}/#{@skynet_version}/#{@skynet_region}"]

  raise "skynet_name is mandatory when using RubySkynet::Client directly" if @skynet_name == RubySkynet::Client.name
end