Class: Actor::Filter
- Inherits:
-
Object
- Object
- Actor::Filter
- Defined in:
- lib/girl_friday/actor.rb
Instance Attribute Summary collapse
-
#timeout ⇒ Object
readonly
Returns the value of attribute timeout.
-
#timeout_action ⇒ Object
readonly
Returns the value of attribute timeout_action.
Instance Method Summary collapse
- #action_for(value) ⇒ Object
- #after(seconds, &action) ⇒ Object
-
#initialize ⇒ Filter
constructor
A new instance of Filter.
- #timeout? ⇒ Boolean
- #when(pattern, &action) ⇒ Object
Constructor Details
#initialize ⇒ Filter
Returns a new instance of Filter.
438 439 440 441 442 |
# File 'lib/girl_friday/actor.rb', line 438 def initialize @pairs = [] @timeout = nil @timeout_action = nil end |
Instance Attribute Details
#timeout ⇒ Object (readonly)
Returns the value of attribute timeout.
435 436 437 |
# File 'lib/girl_friday/actor.rb', line 435 def timeout @timeout end |
#timeout_action ⇒ Object (readonly)
Returns the value of attribute timeout_action.
436 437 438 |
# File 'lib/girl_friday/actor.rb', line 436 def timeout_action @timeout_action end |
Instance Method Details
#action_for(value) ⇒ Object
465 466 467 468 |
# File 'lib/girl_friday/actor.rb', line 465 def action_for(value) pair = @pairs.find { |pattern, action| pattern === value } pair ? pair.last : nil end |
#after(seconds, &action) ⇒ Object
454 455 456 457 458 459 460 461 462 463 |
# File 'lib/girl_friday/actor.rb', line 454 def after(seconds, &action) raise ArgumentError, "no block given" unless action seconds = seconds.to_f if !@timeout or seconds < @timeout @timeout = seconds @timeout_action = action end self end |
#timeout? ⇒ Boolean
444 445 446 |
# File 'lib/girl_friday/actor.rb', line 444 def timeout? not @timeout.nil? end |
#when(pattern, &action) ⇒ Object
448 449 450 451 452 |
# File 'lib/girl_friday/actor.rb', line 448 def when(pattern, &action) raise ArgumentError, "no block given" unless action @pairs.push [pattern, action] self end |