Module: Backport

Defined in:
lib/backport.rb,
lib/backport/client.rb,
lib/backport/server.rb,
lib/backport/adapter.rb,
lib/backport/machine.rb,
lib/backport/version.rb,
lib/backport/server/base.rb,
lib/backport/server/stdio.rb,
lib/backport/server/tcpip.rb,
lib/backport/server/interval.rb,
lib/backport/server/connectable.rb

Overview

An event-driven IO library.

Defined Under Namespace

Modules: Server Classes: Adapter, Client, Machine

Constant Summary collapse

VERSION =
'1.2.0'.freeze

Class Method Summary collapse

Class Method Details

.loggerLogger

Returns:

  • (Logger)


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

def logger
  @logger ||= Logger.new(STDERR, level: Logger::WARN, progname: 'Backport')
end

.prepare_interval(period, &block) ⇒ void

This method returns an undefined value.

Prepare an interval server to run in Backport.

Parameters:

  • period (Float)

    Seconds between intervals



35
36
37
# 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) ⇒ void

This method returns an undefined value.

Prepare a STDIO server to run in Backport.

Parameters:

  • adapter (Adapter) (defaults to: Adapter)


17
18
19
# 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) ⇒ void

This method returns an undefined value.

Prepare a TCP server to run in Backport.

Parameters:

  • host (String) (defaults to: 'localhost')
  • port (Integer) (defaults to: 1117)
  • adapter (Adapter) (defaults to: Adapter)


27
28
29
# 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) ⇒ void

This method returns an undefined value.

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

Examples:

Print “tick” once per second

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


50
51
52
53
54
55
# File 'lib/backport.rb', line 50

def run &block
  machine = Machine.new
  machines.push machine
  machine.run &block
  machines.delete machine
end

.stopvoid

This method returns an undefined value.

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 “‘



70
71
72
# File 'lib/backport.rb', line 70

def stop
  machines.last.stop unless machines.empty?
end