Class: Concurrent::Actors::Mailbox::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/concurrent/actors/mailbox.rb

Instance Method Summary collapse

Constructor Details

#initializeFilter

Returns a new instance of Filter.



92
93
94
# File 'lib/concurrent/actors/mailbox.rb', line 92

def initialize
  @pairs = []
end

Instance Method Details

#action_for(value) ⇒ Object



101
102
103
104
# File 'lib/concurrent/actors/mailbox.rb', line 101

def action_for(value)
  pair = @pairs.find { |pattern, action| pattern === value }
  pair ? pair[1] : nil
end

#when(pattern, &action) ⇒ Object

Raises:

  • (ArgumentError)


96
97
98
99
# File 'lib/concurrent/actors/mailbox.rb', line 96

def when(pattern, &action)
  raise ArgumentError, "no block given" unless action
  @pairs.push [pattern, action]
end