Module: RubyCms::CommandsRegistry
- Included in:
- RubyCms
- Defined in:
- lib/generators/ruby_cms/templates/lib/ruby_cms/commands_registry.rb
Overview
Host apps register runnable commands (usually Rake tasks) shown on Admin → Commands.
Constant Summary collapse
- CATEGORIES =
%w[content maintenance email custom].freeze
- PARAM_TYPES =
%w[toggle text select].freeze
Instance Method Summary collapse
- #find_command(key) ⇒ Object
-
#register_command(key:, label:, rake_task:, description: nil, permission: :manage_admin, category: :custom, schedule: nil, params: []) ⇒ Object
Register a button-triggered command for the admin Commands screen.
- #registered_commands ⇒ Object
- #registered_commands=(list) ⇒ Object
Instance Method Details
#find_command(key) ⇒ Object
44 45 46 |
# File 'lib/generators/ruby_cms/templates/lib/ruby_cms/commands_registry.rb', line 44 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, category: :custom, schedule: nil, params: []) ⇒ Object
Register a button-triggered command for the admin Commands screen.
27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 |
# File 'lib/generators/ruby_cms/templates/lib/ruby_cms/commands_registry.rb', line 27 def register_command(key:, label:, rake_task:, description: nil, permission: :manage_admin, category: :custom, schedule: nil, params: []) k = key.to_s entry = { key: k, label: label.to_s, rake_task: rake_task.to_s, description: description.to_s.presence, permission: .to_sym, category: normalize_category(category), schedule: schedule.to_s.presence, params: Array(params).map { |p| normalize_param(p) } } self.registered_commands = registered_commands.reject { |e| e[:key] == k } + [ entry ] entry end |
#registered_commands ⇒ Object
6 7 8 |
# File 'lib/generators/ruby_cms/templates/lib/ruby_cms/commands_registry.rb', line 6 def registered_commands @registered_commands ||= [] end |
#registered_commands=(list) ⇒ Object
10 11 12 |
# File 'lib/generators/ruby_cms/templates/lib/ruby_cms/commands_registry.rb', line 10 def registered_commands=(list) @registered_commands = list end |