module Backport

An event-driven IO library.

Constants

VERSION

Public Class Methods

logger() click to toggle source

@return [Logger]

# File lib/backport.rb, line 75
def logger
  @logger ||= Logger.new(STDERR, level: Logger::WARN, progname: 'Backport')
end
prepare_interval(period, &block) click to toggle source

Prepare an interval server to run in Backport.

@param period [Float] Seconds between intervals @return [void]

# File lib/backport.rb, line 35
def prepare_interval period, &block
  machines.last.prepare Backport::Server::Interval.new(period, &block)
end
prepare_stdio_server(adapter: Adapter) click to toggle source

Prepare a STDIO server to run in Backport.

@param adapter [Adapter] @return [void]

# File lib/backport.rb, line 17
def prepare_stdio_server adapter: Adapter
  machines.last.prepare Backport::Server::Stdio.new(adapter: adapter)
end
prepare_tcp_server(host: 'localhost', port: 1117, adapter: Adapter) click to toggle source

Prepare a TCP server to run in Backport.

@param host [String] @param port [Integer] @param adapter [Adapter] @return [void]

# File lib/backport.rb, line 27
def prepare_tcp_server host: 'localhost', port: 1117, adapter: Adapter
  machines.last.prepare Backport::Server::Tcpip.new(host: host, port: port, adapter: adapter)
end
run(&block) click to toggle source

Run the Backport machine. The provided block will be executed before the machine starts. Program execution is blocked until the machine stops.

@example Print “tick” once per second

Backport.run do
  Backport.prepare_interval 1 do
    puts "tick"
  end
end

@return [void]

# File lib/backport.rb, line 50
def run &block
  machine = Machine.new
  machines.push machine
  machine.run &block
  machines.delete machine
end
stop() click to toggle source

Stop all running Backport machines.

For more accurate control, consider stopping the machine from the self reference in Machine#run, e.g.:

“` Backport.run do |machine|

# ...
machine.stop

end “`

@return [void]

# File lib/backport.rb, line 70
def stop
  machines.last.stop unless machines.empty?
end

Private Class Methods

machines() click to toggle source

@return [Array<Machine>]

# File lib/backport.rb, line 82
def machines
  @machines ||= []
end