module Digital::Transport::Adapters

@example

require ‘digital/transport’

include Digital::Transport::Adapters

@see Proc#new connected = -> x {

x.write("Hello, World!") #=> either monad
x.read 2                 #=> either monad

}

@see Proc#new failed = -> x {

# perform exceptional situation handling
# x will be yielded in to function as an Exception covariant interface.
puts "Wasn't able to connect due to: #{x.message}. Handling failure."

}

@see Tcp#connect maybe = new_tcp_adapter(‘10.0.0.250’, 6789).connect

@see Either#either maybe.either(failed, connected)

Public Instance Methods

new_serial_adapter(port, opts = {}) click to toggle source
# File lib/digital/transport/adapters.rb, line 41
def new_serial_adapter(port, opts = {})
  Serial.new(port, opts.dup.freeze)
end
new_tcp_adapter(ip, port, opts = {}) click to toggle source
# File lib/digital/transport/adapters.rb, line 37
def new_tcp_adapter(ip, port, opts = {})
  Tcp.new(ip.dup.freeze, port, opts.dup.freeze)
end
new_usb_adapter(_port, _opts = {}) click to toggle source
# File lib/digital/transport/adapters.rb, line 45
def new_usb_adapter(_port, _opts = {})
  raise NotImplementedError
end