spec/support/fake_actor.rb in mutant-0.7.1 vs spec/support/fake_actor.rb in mutant-0.7.2

- old
+ new

@@ -38,29 +38,35 @@ messages.empty? end end class Env - include Concord.new(:messages, :actor_names) + include Concord.new(:messages, :mailbox_names) def spawn - name = @actor_names.shift - raise 'Tried to spawn actor when no name available' unless name - actor = actor(name) - yield actor if block_given? - actor.sender + mailbox = mailbox(next_name) + yield mailbox if block_given? + mailbox.sender end - def current - actor(:current) + def mailbox(name) + Mailbox.new(name, @messages) end - def actor(name) - Actor.new(name, @messages) + def new_mailbox + mailbox(:current) end + + private + + def next_name + @mailbox_names.shift.tap do |name| + name or fail 'Tried to spawn actor when no name available' + end + end end # Env - class Actor + class Mailbox include Concord.new(:name, :messages) def receiver Receiver.new(name, messages) end