Class: Actor::Filter

Inherits:
Object
  • Object
show all
Defined in:
lib/girl_friday/actor.rb

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeFilter

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

#timeoutObject (readonly)

Returns the value of attribute timeout



435
436
437
# File 'lib/girl_friday/actor.rb', line 435

def timeout
  @timeout
end

#timeout_actionObject (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

Raises:

  • (ArgumentError)


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

Returns:

  • (Boolean)


444
445
446
# File 'lib/girl_friday/actor.rb', line 444

def timeout?
  not @timeout.nil?
end

#when(pattern, &action) ⇒ Object

Raises:

  • (ArgumentError)


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