diff options
Diffstat (limited to 'lib/gitlab/slash_commands/dsl.rb')
-rw-r--r-- | lib/gitlab/slash_commands/dsl.rb | 98 |
1 files changed, 0 insertions, 98 deletions
diff --git a/lib/gitlab/slash_commands/dsl.rb b/lib/gitlab/slash_commands/dsl.rb deleted file mode 100644 index 50b0937d267..00000000000 --- a/lib/gitlab/slash_commands/dsl.rb +++ /dev/null @@ -1,98 +0,0 @@ -module Gitlab - module SlashCommands - module Dsl - extend ActiveSupport::Concern - - included do - cattr_accessor :command_definitions, instance_accessor: false do - [] - end - - cattr_accessor :command_definitions_by_name, instance_accessor: false do - {} - end - end - - class_methods do - # Allows to give a description to the next slash command. - # This description is shown in the autocomplete menu. - # It accepts a block that will be evaluated with the context given to - # `CommandDefintion#to_h`. - # - # Example: - # - # desc do - # "This is a dynamic description for #{noteable.to_ability_name}" - # end - # command :command_key do |arguments| - # # Awesome code block - # end - def desc(text = '', &block) - @description = block_given? ? block : text - end - - # Allows to define params for the next slash command. - # These params are shown in the autocomplete menu. - # - # Example: - # - # params "~label ~label2" - # command :command_key do |arguments| - # # Awesome code block - # end - def params(*params) - @params = params - end - - # Allows to define conditions that must be met in order for the command - # to be returned by `.command_names` & `.command_definitions`. - # It accepts a block that will be evaluated with the context given to - # `CommandDefintion#to_h`. - # - # Example: - # - # condition do - # project.public? - # end - # command :command_key do |arguments| - # # Awesome code block - # end - def condition(&block) - @condition_block = block - end - - # Registers a new command which is recognizeable from body of email or - # comment. - # It accepts aliases and takes a block. - # - # Example: - # - # command :my_command, :alias_for_my_command do |arguments| - # # Awesome code block - # end - def command(*command_names, &block) - name, *aliases = command_names - - definition = CommandDefinition.new( - name, - aliases: aliases, - description: @description, - params: @params, - condition_block: @condition_block, - action_block: block - ) - - self.command_definitions << definition - - definition.all_names.each do |name| - self.command_definitions_by_name[name] = definition - end - - @description = nil - @params = nil - @condition_block = nil - end - end - end - end -end |