Module: Nonnative

Defined in:
lib/nonnative.rb,
lib/nonnative/pool.rb,
lib/nonnative/port.rb,
lib/nonnative/error.rb,
lib/nonnative/proxy.rb,
lib/nonnative/server.rb,
lib/nonnative/command.rb,
lib/nonnative/service.rb,
lib/nonnative/timeout.rb,
lib/nonnative/version.rb,
lib/nonnative/no_proxy.rb,
lib/nonnative/stop_error.rb,
lib/nonnative/chaos_proxy.rb,
lib/nonnative/grpc_server.rb,
lib/nonnative/http_client.rb,
lib/nonnative/http_server.rb,
lib/nonnative/start_error.rb,
lib/nonnative/configuration.rb,
lib/nonnative/observability.rb,
lib/nonnative/proxy_factory.rb,
lib/nonnative/configuration_proxy.rb,
lib/nonnative/configuration_server.rb,
lib/nonnative/configuration_process.rb

Defined Under Namespace

Classes: ChaosProxy, Command, Configuration, ConfigurationProcess, ConfigurationProxy, ConfigurationServer, Error, GRPCServer, HTTPClient, HTTPServer, NoProxy, Observability, Pool, Port, Proxy, ProxyFactory, Server, Service, StartError, StopError, Timeout

Constant Summary collapse

VERSION =
'1.19.0'

Class Method Summary collapse

Class Method Details

.clearObject



79
80
81
82
# File 'lib/nonnative.rb', line 79

def clear
  @configuration = nil
  @pool = nil
end

.configurationObject



46
47
48
# File 'lib/nonnative.rb', line 46

def configuration
  @configuration ||= Nonnative::Configuration.new
end

.configure {|configuration| ... } ⇒ Object

Yields:



50
51
52
53
54
# File 'lib/nonnative.rb', line 50

def configure
  yield configuration

  require "nonnative/#{configuration.strategy}"
end

.load_configuration(path) ⇒ Object



42
43
44
# File 'lib/nonnative.rb', line 42

def load_configuration(path)
  @configuration ||= Nonnative::Configuration.load_file(path) # rubocop:disable Naming/MemoizedInstanceVariableName
end

.startObject

Raises:



56
57
58
59
60
61
62
63
64
65
# File 'lib/nonnative.rb', line 56

def start
  @pool ||= Nonnative::Pool.new(configuration)
  errors = []

  @pool.start do |name, id, result|
    errors << "Started #{name} with id #{id}, though did respond in time" unless result
  end

  raise Nonnative::StartError, errors.join("\n") unless errors.empty?
end

.stopObject

Raises:



67
68
69
70
71
72
73
74
75
76
77
# File 'lib/nonnative.rb', line 67

def stop
  return if @pool.nil?

  errors = []

  @pool.stop do |name, id, result|
    errors << "Stopped #{name} with id #{id}, though did respond in time" unless result
  end

  raise Nonnative::StopError, errors.join("\n") unless errors.empty?
end