Class: Ask::Tokens::ActivityRegistry

Inherits:
Object
  • Object
show all
Defined in:
lib/ask/tokens/activity_registry.rb

Overview

Stores declared activities by name.

Instance Method Summary collapse

Constructor Details

#initializeActivityRegistry

Returns a new instance of ActivityRegistry.



7
8
9
# File 'lib/ask/tokens/activity_registry.rb', line 7

def initialize
  @activities = {}
end

Instance Method Details

#clearObject



30
31
32
# File 'lib/ask/tokens/activity_registry.rb', line 30

def clear
  @activities.clear
end

#each(&block) ⇒ Object



26
27
28
# File 'lib/ask/tokens/activity_registry.rb', line 26

def each(&block)
  @activities.each_value(&block)
end

#fetch(name) ⇒ Object



16
17
18
19
20
# File 'lib/ask/tokens/activity_registry.rb', line 16

def fetch(name)
  @activities.fetch(name.to_sym) do
    raise KeyError, "Unknown activity: #{name.inspect}. Registered: #{@activities.keys.inspect}"
  end
end

#namesObject



22
23
24
# File 'lib/ask/tokens/activity_registry.rb', line 22

def names
  @activities.keys
end

#register(name, cost: nil, &block) ⇒ Object



11
12
13
14
# File 'lib/ask/tokens/activity_registry.rb', line 11

def register(name, cost: nil, &block)
  activity = Activity.new(name, cost: cost, &block)
  @activities[activity.name] = activity
end