Module: RubyCms::CommandsRegistry

Included in:
RubyCms
Defined in:
lib/ruby_cms/commands_registry.rb

Overview

Host apps register runnable commands (usually Rake tasks) shown on Admin → Commands.

Instance Method Summary collapse

Instance Method Details

#find_command(key) ⇒ Object



34
35
36
# File 'lib/ruby_cms/commands_registry.rb', line 34

def find_command(key)
  registered_commands.find {|e| e[:key] == key.to_s }
end

#register_command(key:, label:, rake_task:, description: nil, permission: :manage_admin) ⇒ Object

Register a button-triggered command for the admin Commands screen.

Parameters:

  • key (String, Symbol)

    Unique id (e.g. :copy_en_to_nl)

  • label (String)

    Button label

  • rake_task (String)

    Full rake task name, including args in brackets if needed

  • description (String, nil) (defaults to: nil)

    Optional help text under the button

  • permission (Symbol) (defaults to: :manage_admin)

    Required to run (can?); default :manage_admin



21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/ruby_cms/commands_registry.rb', line 21

def register_command(key:, label:, rake_task:, description: nil, permission: :manage_admin)
  k = key.to_s
  entry = {
    key: k,
    label: label.to_s,
    rake_task: rake_task.to_s,
    description: description.to_s.presence,
    permission: permission.to_sym
  }
  self.registered_commands = registered_commands.reject {|e| e[:key] == k } + [entry]
  entry
end

#registered_commandsObject



6
7
8
# File 'lib/ruby_cms/commands_registry.rb', line 6

def registered_commands
  @registered_commands ||= []
end

#registered_commands=(list) ⇒ Object



10
11
12
# File 'lib/ruby_cms/commands_registry.rb', line 10

def registered_commands=(list)
  @registered_commands = list
end