Class: Rubinius::Actor::Filter

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

Instance Attribute Summary collapse

Instance Method Summary collapse

Constructor Details

#initializeFilter

Returns a new instance of Filter.



37
38
39
40
41
# File 'lib/rubinius/actor/filter.rb', line 37

def initialize
  @pairs = []
  @timeout = nil
  @timeout_action = nil
end

Instance Attribute Details

#timeoutObject (readonly)

Returns the value of attribute timeout.



34
35
36
# File 'lib/rubinius/actor/filter.rb', line 34

def timeout
  @timeout
end

#timeout_actionObject (readonly)

Returns the value of attribute timeout_action.



35
36
37
# File 'lib/rubinius/actor/filter.rb', line 35

def timeout_action
  @timeout_action
end

Instance Method Details

#action_for(value) ⇒ Object



64
65
66
67
# File 'lib/rubinius/actor/filter.rb', line 64

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

#after(seconds, &action) ⇒ Object

Raises:

  • (ArgumentError)


53
54
55
56
57
58
59
60
61
62
# File 'lib/rubinius/actor/filter.rb', line 53

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)


43
44
45
# File 'lib/rubinius/actor/filter.rb', line 43

def timeout?
  not @timeout.nil?
end

#when(pattern, &action) ⇒ Object

Raises:

  • (ArgumentError)


47
48
49
50
51
# File 'lib/rubinius/actor/filter.rb', line 47

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