mirror of
https://github.com/lloeki/normandy.git
synced 2025-12-06 01:54:40 +01:00
Channels for CSP style Ruby
| examples | ||
| lib | ||
| test | ||
| .gitignore | ||
| .rubocop.yml | ||
| .travis.yml | ||
| channel.gemspec | ||
| Gemfile | ||
| Gemfile.lock | ||
| Rakefile | ||
| README.md | ||
Channels for ruby
A complete implementation of channels for Ruby, including size and close.
How?
The usual gem insall channel, or gem channel in your Gemfile.
require 'channel'
c = Channel.new
go -> { c << 'Hello, world!' }
puts c.recv
Why?
While some packages already exist, many fail at providing a thorough
implementation, often limited to send/recv, and most critically, all
missing close support. A complete implementation makes channels much more
useful, as most patterns rely much more details than simply send/recv.
To prove this point and to serve as a nice tutorial anyway, some examples ported over from Go by example are included in examples.
- channels
- channel buffering
- channel synchronization
- channel direction
- select
- timeouts
- non-block channel operations
- closing channels
- range over channels
License
MIT