module Backport
An event-driven IO library.
Constants
- VERSION
Public Class Methods
@return [Logger]
# File lib/backport.rb, line 75 def logger @logger ||= Logger.new(STDERR, level: Logger::WARN, progname: 'Backport') end
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 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 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 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 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
@return [Array<Machine>]
# File lib/backport.rb, line 82 def machines @machines ||= [] end