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/header.rb,
lib/nonnative/runner.rb,
lib/nonnative/server.rb,
lib/nonnative/process.rb,
lib/nonnative/service.rb,
lib/nonnative/timeout.rb,
lib/nonnative/version.rb,
lib/nonnative/no_proxy.rb,
lib/nonnative/go_command.rb,
lib/nonnative/stop_error.rb,
lib/nonnative/grpc_server.rb,
lib/nonnative/http_client.rb,
lib/nonnative/http_server.rb,
lib/nonnative/socket_pair.rb,
lib/nonnative/start_error.rb,
lib/nonnative/configuration.rb,
lib/nonnative/observability.rb,
lib/nonnative/proxy_factory.rb,
lib/nonnative/not_found_error.rb,
lib/nonnative/delay_socket_pair.rb,
lib/nonnative/configuration_proxy.rb,
lib/nonnative/socket_pair_factory.rb,
lib/nonnative/configuration_runner.rb,
lib/nonnative/configuration_server.rb,
lib/nonnative/close_all_socket_pair.rb,
lib/nonnative/configuration_process.rb,
lib/nonnative/configuration_service.rb,
lib/nonnative/fault_injection_proxy.rb,
lib/nonnative/invalid_data_socket_pair.rb

Defined Under Namespace

Classes: CloseAllSocketPair, Configuration, ConfigurationProcess, ConfigurationProxy, ConfigurationRunner, ConfigurationServer, ConfigurationService, DelaySocketPair, Error, FaultInjectionProxy, GRPCServer, GoCommand, HTTPClient, HTTPServer, Header, InvalidDataSocketPair, NoProxy, NotFoundError, Observability, Pool, Port, Process, Proxy, ProxyFactory, Runner, Server, Service, SocketPair, SocketPairFactory, StartError, StopError, Timeout

Constant Summary collapse

VERSION =
'1.86.0'

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.poolObject (readonly)

Returns the value of attribute pool.



59
60
61
# File 'lib/nonnative.rb', line 59

def pool
  @pool
end

Class Method Details

.clearObject



115
116
117
118
# File 'lib/nonnative.rb', line 115

def clear
  @configuration = nil
  @pool = nil
end

.configurationObject



83
84
85
# File 'lib/nonnative.rb', line 83

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

.configurations(*files) ⇒ Object



67
68
69
# File 'lib/nonnative.rb', line 67

def configurations(*files)
  Config.load_files(files)
end

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

Yields:



87
88
89
# File 'lib/nonnative.rb', line 87

def configure
  yield configuration
end

.go_executable(tools, output, exec, cmd, *params) ⇒ Object



75
76
77
# File 'lib/nonnative.rb', line 75

def go_executable(tools, output, exec, cmd, *params)
  Nonnative::GoCommand.new(tools, exec, output).executable(cmd, params)
end

.log_lines(path, predicate) ⇒ Object



71
72
73
# File 'lib/nonnative.rb', line 71

def log_lines(path, predicate)
  File.readlines(path).select { |l| predicate.call(l) }
end

.observabilityObject



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

def observability
  @observability ||= Nonnative::Observability.new(configuration.url)
end

.startObject



91
92
93
94
95
96
97
98
99
100
101
# File 'lib/nonnative.rb', line 91

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

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

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

.stopObject



103
104
105
106
107
108
109
110
111
112
113
# File 'lib/nonnative.rb', line 103

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

.waitObject



61
62
63
64
65
# File 'lib/nonnative.rb', line 61

def wait
  wait = Nonnative.configuration.wait

  sleep wait if wait
end