Sha256: 3113034f0c603d720781d5f8b43768f3ff30b58da54d22130997e8723bae12c3
Contents?: true
Size: 1.18 KB
Versions: 1
Compression:
Stored size: 1.18 KB
Contents
RSpec.describe "Blocks", actor_system: :global do class MyBlockActor include Celluloid def initialize(name) @name = name end attr_reader :name def ask_for_something(other) sender_actor = current_actor $data << [:outside, @name, current_actor.name] other.do_something_and_callback do |value| $data << [:yielded, @name, current_actor.name] $data << receive_result(:self) $data << current_actor.receive_result(:current_actor) $data << sender_actor.receive_result(:sender) "somevalue" end end def do_something_and_callback $data << [:something, @name, current_actor.name] $data << yield(:foo) end def receive_result(result) [result, @name, current_actor.name] end end it "works" do $data = [] a1 = MyBlockActor.new("one") a2 = MyBlockActor.new("two") a1.ask_for_something a2 expected = [ [:outside, "one", "one"], [:something, "two", "two"], [:yielded, "one", "one"], [:self, "one", "one"], [:current_actor, "one", "one"], [:sender, "one", "one"], "somevalue", ] expect($data).to eq(expected) end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
celluloid-0.17.0 | spec/celluloid/block_spec.rb |