diff options
author | Valery Sizov <valery@gitlab.com> | 2017-06-06 11:49:36 +0300 |
---|---|---|
committer | Valery Sizov <valery@gitlab.com> | 2017-06-07 09:47:26 +0300 |
commit | 223b87d7b1eccfc844631118e454c69a6312004d (patch) | |
tree | 118e73eb1974eee04d7d3aaff3b64c490aa48049 /lib/gitlab | |
parent | 1d5e5f754df345d7e3748bef4030b7210cff63c9 (diff) | |
download | gitlab-ce-223b87d7b1eccfc844631118e454c69a6312004d.tar.gz |
Backport Fix '/unassign' slash commandbackport_fix_slash_commands_for_multiple_assignee
Diffstat (limited to 'lib/gitlab')
-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 |