class Nonnative::Configuration

Attributes

processes[RW]
servers[RW]
services[RW]
strategy[R]

Public Class Methods

new() click to toggle source
# File lib/nonnative/configuration.rb, line 5
def initialize
  @strategy = Strategy.new
  @processes = []
  @servers = []
  @services = []
end

Public Instance Methods

load_file(path) click to toggle source
# File lib/nonnative/configuration.rb, line 15
def load_file(path)
  file = YAML.load_file(path)

  self.strategy = file['strategy']

  add_processes(file)
  add_servers(file)
  add_services(file)
end
process() { |process| ... } click to toggle source
# File lib/nonnative/configuration.rb, line 29
def process
  process = Nonnative::ConfigurationProcess.new
  yield process

  processes << process
end
server() { |server| ... } click to toggle source
# File lib/nonnative/configuration.rb, line 36
def server
  server = Nonnative::ConfigurationServer.new
  yield server

  servers << server
end
service() { |service| ... } click to toggle source
# File lib/nonnative/configuration.rb, line 43
def service
  service = Nonnative::ConfigurationService.new
  yield service

  services << service
end
strategy=(value) click to toggle source
# File lib/nonnative/configuration.rb, line 25
def strategy=(value)
  @strategy = Strategy.new(value)
end

Private Instance Methods

add_processes(file) click to toggle source
# File lib/nonnative/configuration.rb, line 52
def add_processes(file)
  processes = file['processes'] || []
  processes.each do |fd|
    process do |d|
      d.name = fd['name']
      d.command = command(fd)
      d.timeout = fd['timeout']
      d.port = fd['port']
      d.log = fd['log']
      d.signal = fd['signal']
      d.environment = fd['environment']

      proxy d, fd['proxy']
    end
  end
end
add_servers(file) click to toggle source
# File lib/nonnative/configuration.rb, line 79
def add_servers(file)
  servers = file['servers'] || []
  servers.each do |fd|
    server do |s|
      s.name = fd['name']
      s.klass = Object.const_get(fd['class'])
      s.timeout = fd['timeout']
      s.port = fd['port']
      s.log = fd['log']

      proxy s, fd['proxy']
    end
  end
end
add_services(file) click to toggle source
# File lib/nonnative/configuration.rb, line 94
def add_services(file)
  services = file['services'] || []
  services.each do |fd|
    service do |s|
      s.name = fd['name']
      s.port = fd['port']

      proxy s, fd['proxy']
    end
  end
end
command(process) click to toggle source
# File lib/nonnative/configuration.rb, line 69
def command(process)
  go = process['go']
  if go
    params = go['parameters'] || []
    Nonnative.go_executable(go['output'], go['executable'], go['command'], *params)
  else
    process['command']
  end
end
proxy(runner, proxy) click to toggle source
# File lib/nonnative/configuration.rb, line 106
def proxy(runner, proxy)
  return unless proxy

  runner.proxy = {
    type: proxy['type'],
    port: proxy['port'],
    log: proxy['log'],
    options: proxy['options']
  }
end