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.
54
55
56
|
# File 'lib/sequel_tools/actions_manager.rb', line 54
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.
52
53
54
|
# File 'lib/sequel_tools/actions_manager.rb', line 52
def arg_names
@arg_names
end
|
#block ⇒ Object
Returns the value of attribute block.
52
53
54
|
# File 'lib/sequel_tools/actions_manager.rb', line 52
def block
@block
end
|
#description ⇒ Object
Returns the value of attribute description.
52
53
54
|
# File 'lib/sequel_tools/actions_manager.rb', line 52
def description
@description
end
|
#name ⇒ Object
Returns the value of attribute name.
52
53
54
|
# File 'lib/sequel_tools/actions_manager.rb', line 52
def name
@name
end
|
Class Method Details
.[](name) ⇒ Object
77
78
79
|
# File 'lib/sequel_tools/actions_manager.rb', line 77
def self.[](name)
@@registered_by_name[name]
end
|
.register(name, description, arg_names: [], &block) ⇒ Object
65
66
67
68
69
70
71
|
# File 'lib/sequel_tools/actions_manager.rb', line 65
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
92
93
94
|
# File 'lib/sequel_tools/actions_manager.rb', line 92
def self.register_action(action)
register action.name, action.description, arg_names: action.arg_names, &action.block
end
|
.registered ⇒ Object
73
74
75
|
# File 'lib/sequel_tools/actions_manager.rb', line 73
def self.registered
@@registered
end
|
.replace(name, description, arg_names: [], &block) ⇒ Object
87
88
89
90
|
# File 'lib/sequel_tools/actions_manager.rb', line 87
def self.replace(name, description, arg_names: [], &block)
unregister name
register name, description, arg_names: arg_names, &block
end
|
.unregister(name) ⇒ Object
81
82
83
84
85
|
# File 'lib/sequel_tools/actions_manager.rb', line 81
def self.unregister(name)
return unless action = @@registered_by_name.delete(name)
@@registered.delete action
action
end
|
Instance Method Details
#run(args, context) ⇒ Object
58
59
60
|
# File 'lib/sequel_tools/actions_manager.rb', line 58
def run(args, context)
@block.call args, context
end
|