Module: Digital::Transport::Adapters

Defined in:
lib/digital/transport/adapters.rb,
lib/digital/transport/adapters/tcp.rb,
lib/digital/transport/adapters/serial.rb,
lib/digital/transport/adapters/interface.rb

Overview

require ‘digital/transport’

include Digital::Transport::Adapters

connected = -> x

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

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."

}

maybe = new_tcp_adapter(‘10.0.0.250’, 6789).connect

maybe.either(failed, connected)

See Also:

Defined Under Namespace

Modules: Interface

Instance Method Summary collapse

Instance Method Details

#new_serial_adapter(port, opts = {}) ⇒ Object



41
42
43
# 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 = {}) ⇒ Object



37
38
39
# 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 = {}) ⇒ Object

Raises:

  • (NotImplementedError)


45
46
47
# File 'lib/digital/transport/adapters.rb', line 45

def new_usb_adapter(_port, _opts = {})
  raise NotImplementedError
end