class SequelTools::ActionsManager::Action

Attributes

arg_names[R]
block[R]
description[R]
name[R]

Public Class Methods

[](name) click to toggle source
# File lib/sequel_tools/actions_manager.rb, line 72
def self.[](name)
  @@registered_by_name[name]
end
new(name, description, arg_names: [], &block) click to toggle source
# 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
register(name, description, arg_names: [], &block) click to toggle source
# 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) click to toggle source
# 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() click to toggle source
# File lib/sequel_tools/actions_manager.rb, line 68
def self.registered
  @@registered
end
replace(name, description, arg_names: [], &block) click to toggle source
# 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) click to toggle source
# 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

Public Instance Methods

run(args, context) click to toggle source
# File lib/sequel_tools/actions_manager.rb, line 53
def run(args, context)
  @block.call args, context
end