Module: Nonnative

Defined in:
lib/nonnative.rb,
lib/nonnative/pool.rb,
lib/nonnative/port.rb,
lib/nonnative/error.rb,
lib/nonnative/logger.rb,
lib/nonnative/server.rb,
lib/nonnative/command.rb,
lib/nonnative/timeout.rb,
lib/nonnative/version.rb,
lib/nonnative/grpc_server.rb,
lib/nonnative/http_client.rb,
lib/nonnative/http_server.rb,
lib/nonnative/configuration.rb,
lib/nonnative/configuration_server.rb,
lib/nonnative/configuration_process.rb

Defined Under Namespace

Classes: Command, Configuration, ConfigurationProcess, ConfigurationServer, Error, GRPCServer, HTTPClient, HTTPServer, Logger, Pool, Port, Server, Timeout

Constant Summary collapse

VERSION =
'1.6.0'

Class Method Summary collapse

Class Method Details

.clear ⇒ Object



63
64
65
66
67
68
# File 'lib/nonnative.rb', line 63

def clear
  @logger = nil
  @configuration = nil
  @process_pool = nil
  @pool = nil
end

.configuration ⇒ Object



37
38
39
# File 'lib/nonnative.rb', line 37

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

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

Yields:



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

def configure
  yield configuration if block_given?

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

.load_configuration(path) ⇒ Object



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

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

.logger ⇒ Object



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

def logger
  @logger ||= Nonnative::Logger.create
end

.start ⇒ Object



47
48
49
50
51
52
53
# File 'lib/nonnative.rb', line 47

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

  @pool.start do |name, id, result|
    logger.error('Started though did respond in time', id: id, name: name) unless result
  end
end

.stop ⇒ Object



55
56
57
58
59
60
61
# File 'lib/nonnative.rb', line 55

def stop
  return if @pool.nil?

  @pool.stop do |name, id, result|
    logger.error('Stopped though did respond in time', id: id, name: name) unless result
  end
end