Module: RubySkynet

Includes:
SyncAttr
Defined in:
lib/ruby_skynet/base.rb,
lib/ruby_skynet.rb,
lib/ruby_skynet/client.rb,
lib/ruby_skynet/common.rb,
lib/ruby_skynet/server.rb,
lib/ruby_skynet/railtie.rb,
lib/ruby_skynet/service.rb,
lib/ruby_skynet/version.rb,
lib/ruby_skynet/connection.rb,
lib/ruby_skynet/exceptions.rb,
lib/ruby_skynet/ruby_skynet.rb,
lib/ruby_skynet/service_registry.rb,
lib/rails/generators/ruby_skynet/config/config_generator.rb

Overview

RubySkynet Sevices Registry

Based on the Skynet Services Registry, obtains and keeps up to date a list of all services and which servers they are available on.

Defined Under Namespace

Modules: Base, Common, Generators, Service Classes: Client, Connection, Exception, InvalidConfigurationException, InvalidServiceException, ProtocolError, Railtie, Server, ServiceException, ServiceRegistry, ServiceUnavailable, SkynetException

Constant Summary collapse

VERSION =
"0.8.1"

Class Method Summary collapse

Class Method Details

.configure!(filename = nil, environment = nil) ⇒ Object

Load the Encryption Configuration from a YAML file filename:

Name of file to read.
   Mandatory for non-Rails apps
   Default: Rails.root/config/ruby_skynet.yml

environment:

Which environment config to load. Usually: production, development, etc.
Default: Rails.env


100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
# File 'lib/ruby_skynet/ruby_skynet.rb', line 100

def self.configure!(filename=nil, environment=nil)
  config_file = filename.nil? ? Rails.root.join('config', 'ruby_skynet.yml') : Pathname.new(filename)
  raise "ruby_skynet config not found. Create a config file at: config/ruby_skynet.yml" unless config_file.file?

  cfg = YAML.load(ERB.new(File.new(config_file).read).result)[environment || Rails.env]
  raise("Environment #{Rails.env} not defined in config/ruby_skynet.yml") unless cfg

  RubySkynet.region = cfg.delete(:region) if [:region]
  RubySkynet.services_path = cfg.delete(:services_path) if [:services_path]
  RubySkynet.server_port = cfg.delete(:server_port) if [:server_port]
  RubySkynet.local_ip_address = cfg.delete(:local_ip_address) if [:local_ip_address]
  RubySkynet.doozer_config = cfg.delete(:doozer) if [:doozer]

  cfg.each_pair {|k,v| RubySkynet::Server.logger.warn "Ignoring unknown RubySkynet config option #{k} => #{v}"}
end

.local_ip_address ⇒ Object

The ip address at which this server instance can be reached by remote Skynet clients Note: Must be an IP address, not the hostname



40
41
42
# File 'lib/ruby_skynet/ruby_skynet.rb', line 40

def self.local_ip_address
  @@local_ip_address ||= Common::local_ip_address
end

.local_ip_address=(local_ip_address) ⇒ Object



44
45
46
# File 'lib/ruby_skynet/ruby_skynet.rb', line 44

def self.local_ip_address=(local_ip_address)
  @@local_ip_address = local_ip_address
end

.region ⇒ Object

Returns the default region for all Ruby Skynet Clients and Services



7
8
9
# File 'lib/ruby_skynet/ruby_skynet.rb', line 7

def self.region
  @@region ||= 'Development'
end

.region=(region) ⇒ Object

Sets the default region to use for Skynet Clients and Services



12
13
14
# File 'lib/ruby_skynet/ruby_skynet.rb', line 12

def self.region=(region)
  @@region = region
end

.server_port ⇒ Object

Returns the starting port for the server to listen on If this port is in use the next available port will be used upto 999 above the server_port value



29
30
31
# File 'lib/ruby_skynet/ruby_skynet.rb', line 29

def self.server_port
  @@server_port ||= 2000
end

.server_port=(server_port) ⇒ Object



33
34
35
# File 'lib/ruby_skynet/ruby_skynet.rb', line 33

def self.server_port=(server_port)
  @@server_port = server_port
end

.services_path ⇒ Object

Returns the service_path where services are located



17
18
19
# File 'lib/ruby_skynet/ruby_skynet.rb', line 17

def self.services_path
  @@services_path ||= 'app/services'
end

.services_path=(services_path) ⇒ Object

Sets the service_path where services are located



22
23
24
# File 'lib/ruby_skynet/ruby_skynet.rb', line 22

def self.services_path=(services_path)
  @@services_path = services_path
end