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)
Defined Under Namespace
Modules: Interface
Instance Method Summary collapse
- #new_serial_adapter(port, opts = {}) ⇒ Object
- #new_tcp_adapter(ip, port, opts = {}) ⇒ Object
- #new_usb_adapter(_port, _opts = {}) ⇒ Object
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
45 46 47 |
# File 'lib/digital/transport/adapters.rb', line 45 def new_usb_adapter(_port, _opts = {}) raise NotImplementedError end |