Class: SequelTools::ActionsManager::Action
- Inherits:
-
Object
- Object
- SequelTools::ActionsManager::Action
show all
- Defined in:
- lib/sequel_tools/actions_manager.rb
Defined Under Namespace
Classes: AlreadyRegisteredAction
Constant Summary
collapse
- @@registered =
[]
- @@registered_by_name =
{}
Instance Attribute Summary collapse
Class Method Summary
collapse
Instance Method Summary
collapse
Constructor Details
#initialize(name, description, arg_names: [], &block) ⇒ Action
Returns a new instance of Action.
45
46
47
|
# File 'lib/sequel_tools/actions_manager.rb', line 45
def initialize(name, description, arg_names: [], &block)
@name, @description, @arg_names, @block = name, description, arg_names, block
end
|
Instance Attribute Details
#arg_names ⇒ Object
Returns the value of attribute arg_names.
43
44
45
|
# File 'lib/sequel_tools/actions_manager.rb', line 43
def arg_names
@arg_names
end
|
#block ⇒ Object
Returns the value of attribute block.
43
44
45
|
# File 'lib/sequel_tools/actions_manager.rb', line 43
def block
@block
end
|
#description ⇒ Object
Returns the value of attribute description.
43
44
45
|
# File 'lib/sequel_tools/actions_manager.rb', line 43
def description
@description
end
|
#name ⇒ Object
Returns the value of attribute name.
43
44
45
|
# File 'lib/sequel_tools/actions_manager.rb', line 43
def name
@name
end
|
Class Method Details
.[](name) ⇒ Object
68
69
70
|
# File 'lib/sequel_tools/actions_manager.rb', line 68
def self.[](name)
@@registered_by_name[name]
end
|
.register(name, description, arg_names: [], &block) ⇒ Object
56
57
58
59
60
61
62
|
# File 'lib/sequel_tools/actions_manager.rb', line 56
def self.register(name, description, arg_names: [], &block)
if @@registered_by_name[name]
raise AlreadyRegisteredAction, "Attempt to register #{name} twice"
end
@@registered <<
(@@registered_by_name[name] = Action.new name, description, arg_names: arg_names, &block)
end
|
.register_action(action) ⇒ Object
83
84
85
|
# File 'lib/sequel_tools/actions_manager.rb', line 83
def self.register_action(action)
register action.name, action.description, arg_names: action.arg_names, &action.block
end
|
.registered ⇒ Object
64
65
66
|
# File 'lib/sequel_tools/actions_manager.rb', line 64
def self.registered
@@registered
end
|
.replace(name, description, arg_names: [], &block) ⇒ Object
78
79
80
81
|
# File 'lib/sequel_tools/actions_manager.rb', line 78
def self.replace(name, description, arg_names: [], &block)
unregister name
register name, description, arg_names: arg_names, &block
end
|
.unregister(name) ⇒ Object
72
73
74
75
76
|
# File 'lib/sequel_tools/actions_manager.rb', line 72
def self.unregister(name)
return unless action = @@registered_by_name.delete(name)
@@registered.delete action
action
end
|
Instance Method Details
#run(args, context) ⇒ Object
49
50
51
|
# File 'lib/sequel_tools/actions_manager.rb', line 49
def run(args, context)
@block.call args, context
end
|