-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathexample.rb
More file actions
30 lines (23 loc) · 730 Bytes
/
example.rb
File metadata and controls
30 lines (23 loc) · 730 Bytes
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
require 'pipestalk'
Pipestalk.connection.configure do |c|
c.namespace = 'example'
end
producer_out = Pipestalk.pipe("producer")
consumer_in = Pipestalk.pipe("consumer")
Pipestalk.filter("lowercase") { |data| data.downcase }
# connections can be forked--consumer will get both processed and
# unprocessed data:
Pipestalk.connect "producer" => ["lowercase.in", "consumer"],
"lowercase.out" => "consumer"
# connect to nil and pass a block to consume data from the pipeline:
consumer_in.connect(nil) do |data|
puts data
end
produce = Thread.new do
%w(THIS is SOME Example Data).each { |word| producer_out << word }
end
consume = Thread.new do
Pipestalk.process! # blocks
end
produce.join
consume.join