diff options
author | Douwe Maan <douwe@gitlab.com> | 2017-06-07 20:57:35 +0300 |
---|---|---|
committer | Timothy Andrew <mail@timothyandrew.net> | 2017-06-12 09:37:14 +0300 |
commit | 72b0fba57d8bea4fedf2cb72a9d36669e133b3b8 (patch) | |
tree | 40af83ac6c2cef600e451bbed04437ba99b7c34e /lib | |
parent | 1d1a55d03380538fc3aa34afb7c2535af0416136 (diff) |
Merge branch 'backport_fix_slash_commands_for_multiple_assignee' into 'master'
Backport from EE: Fix '/unassign' slash command
See merge request !11926
Diffstat (limited to 'lib')
-rw-r--r-- | lib/gitlab/slash_commands/command_definition.rb | 10 | ||||
-rw-r--r-- | lib/gitlab/slash_commands/dsl.rb | 4 |
2 files changed, 10 insertions, 4 deletions
diff --git a/lib/gitlab/slash_commands/command_definition.rb b/lib/gitlab/slash_commands/command_definition.rb index 12a385f90fd..caab8856014 100644 --- a/lib/gitlab/slash_commands/command_definition.rb +++ b/lib/gitlab/slash_commands/command_definition.rb @@ -48,17 +48,23 @@ module Gitlab end def to_h(opts) + context = OpenStruct.new(opts) + desc = description if desc.respond_to?(:call) - context = OpenStruct.new(opts) desc = context.instance_exec(&desc) rescue '' end + prms = params + if prms.respond_to?(:call) + prms = Array(context.instance_exec(&prms)) rescue params + end + { name: name, aliases: aliases, description: desc, - params: params + params: prms } end diff --git a/lib/gitlab/slash_commands/dsl.rb b/lib/gitlab/slash_commands/dsl.rb index 614bafbe1b2..1b5b4566d81 100644 --- a/lib/gitlab/slash_commands/dsl.rb +++ b/lib/gitlab/slash_commands/dsl.rb @@ -40,8 +40,8 @@ module Gitlab # command :command_key do |arguments| # # Awesome code block # end - def params(*params) - @params = params + def params(*params, &block) + @params = block_given? ? block : params end # Allows to give an explanation of what the command will do when |