Method: Limited::Action#initialize

Defined in:
lib/limited/action.rb

#initialize(name, limit, interval = nil, identifier = []) ⇒ Action

:call-seq:

Limited::Action.new(name, limit) -> Limited::Action

constructor for an action

Example

Limited::Action.new :do_stuff, 1000

Raises:

  • (ArgumentError)


26
27
28
29
30
31
32
33
34
35
36
37
38
39
# File 'lib/limited/action.rb', line 26

def initialize(name, limit, interval = nil, identifier = [])
  raise ArgumentError.new("Limited::Action::name needs to be a Symbol") unless name.is_a?(Symbol)
  raise ArgumentError.new("Limited::Action::limit needs to be an Integer") unless limit.is_a?(Integer)
  raise ArgumentError.new("Limited::Action::limit needs to be positive") if limit < 0

  @name = name
  @limit = limit
  @num_executed = 0
  @interval = Interval.new(interval.nil? ? :endless : interval)
  @identifier = identifier.is_a?(Limited::Actor::Identifier) ? identifier : Limited::Actor::Identifier.new(*identifier)

  @actors = []
  check_new_interval
end