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.
49
50
51
|
# File 'lib/sequel_tools/actions_manager.rb', line 49
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.
47
48
49
|
# File 'lib/sequel_tools/actions_manager.rb', line 47
def arg_names
@arg_names
end
|
#block ⇒ Object
Returns the value of attribute block.
47
48
49
|
# File 'lib/sequel_tools/actions_manager.rb', line 47
def block
@block
end
|
#description ⇒ Object
Returns the value of attribute description.
47
48
49
|
# File 'lib/sequel_tools/actions_manager.rb', line 47
def description
@description
end
|
#name ⇒ Object
Returns the value of attribute name.
47
48
49
|
# File 'lib/sequel_tools/actions_manager.rb', line 47
def name
@name
end
|
Class Method Details
.[](name) ⇒ Object
72
73
74
|
# File 'lib/sequel_tools/actions_manager.rb', line 72
def self.[](name)
@@registered_by_name[name]
end
|
.register(name, description, arg_names: [], &block) ⇒ Object
60
61
62
63
64
65
66
|
# File 'lib/sequel_tools/actions_manager.rb', line 60
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
87
88
89
|
# File 'lib/sequel_tools/actions_manager.rb', line 87
def self.register_action(action)
register action.name, action.description, arg_names: action.arg_names, &action.block
end
|
.registered ⇒ Object
68
69
70
|
# File 'lib/sequel_tools/actions_manager.rb', line 68
def self.registered
@@registered
end
|
.replace(name, description, arg_names: [], &block) ⇒ Object
82
83
84
85
|
# File 'lib/sequel_tools/actions_manager.rb', line 82
def self.replace(name, description, arg_names: [], &block)
unregister name
register name, description, arg_names: arg_names, &block
end
|
.unregister(name) ⇒ Object
76
77
78
79
80
|
# File 'lib/sequel_tools/actions_manager.rb', line 76
def self.unregister(name)
return unless action = @@registered_by_name.delete(name)
@@registered.delete action
action
end
|
Instance Method Details
#run(args, context) ⇒ Object
53
54
55
|
# File 'lib/sequel_tools/actions_manager.rb', line 53
def run(args, context)
@block.call args, context
end
|