Going 
Go for Ruby
Installation
Add this line to your application's Gemfile:
gem 'going'
And then execute:
$ bundle
Or install it yourself as:
$ gem install going
Usage
Brings Go's Channel and Goroutines to Ruby.
require 'going'
# Require 'going/kernel' to get the unnamespaced `go` function
# require 'going/kernel'
class ConcurrentSieve
def generator
ch = Going::Channel.new
Going.go do
i = 1
loop { ch.push(i += 1) }
end
ch
end
def filter(prime, from)
ch = Going::Channel.new
Going.go do
loop do
i = from.receive
ch.push(i) if i % prime != 0
end
end
ch
end
def initialize(n)
ch = generator
n.times do
prime = ch.receive
puts prime
ch = filter(prime, ch)
end
end
end
Contributing
- Fork it ( https://github.com/jridgewell/going/fork )
- Create your feature branch (
git checkout -b my-new-feature) - Commit your changes (
git commit -am 'Add some feature') - Push to the branch (
git push origin my-new-feature) - Create a new Pull Request