diff options
author | Douwe Maan <douwe@selenight.nl> | 2016-08-13 19:58:51 +0300 |
---|---|---|
committer | Douwe Maan <douwe@selenight.nl> | 2016-08-17 01:42:34 +0300 |
commit | 029b7d2e9266246feff2f165a10b16be1d7fe88e (patch) | |
tree | 41581f4e08043530161c95aef9ccb533ec58a5e7 /lib/gitlab/slash_commands | |
parent | b2b1b4a4226267dbc442d62e19949909d9e58235 (diff) |
Fixed specs and fixes based on failing specs
Diffstat (limited to 'lib/gitlab/slash_commands')
-rw-r--r-- | lib/gitlab/slash_commands/command_definition.rb | 11 | ||||
-rw-r--r-- | lib/gitlab/slash_commands/dsl.rb | 5 | ||||
-rw-r--r-- | lib/gitlab/slash_commands/extractor.rb | 12 |
3 files changed, 12 insertions, 16 deletions
diff --git a/lib/gitlab/slash_commands/command_definition.rb b/lib/gitlab/slash_commands/command_definition.rb index 5dec6c91869..187c1c9489f 100644 --- a/lib/gitlab/slash_commands/command_definition.rb +++ b/lib/gitlab/slash_commands/command_definition.rb @@ -3,8 +3,8 @@ module Gitlab class CommandDefinition attr_accessor :name, :aliases, :description, :params, :condition_block, :action_block - def valid? - name.present? + def initialize(name) + @name = name end def all_names @@ -22,13 +22,6 @@ module Gitlab context.instance_exec(&condition_block) end - def to_description(opts) - return description unless description.respond_to?(:call) - - context = OpenStruct.new(opts) - context.instance_exec(&description) rescue '' - end - def execute(context, opts, *args) return if noop? || !available?(opts) diff --git a/lib/gitlab/slash_commands/dsl.rb b/lib/gitlab/slash_commands/dsl.rb index 58ba7027f84..7b1a094a7e6 100644 --- a/lib/gitlab/slash_commands/dsl.rb +++ b/lib/gitlab/slash_commands/dsl.rb @@ -73,16 +73,13 @@ module Gitlab def command(*command_names, &block) name, *aliases = command_names - definition = CommandDefinition.new - definition.name = name + definition = CommandDefinition.new(name) definition.aliases = aliases definition.description = @description || '' definition.params = @params || [] definition.condition_block = @condition_block definition.action_block = block - return unless definition.valid? - self.command_definitions << definition definition.all_names.each do |name| diff --git a/lib/gitlab/slash_commands/extractor.rb b/lib/gitlab/slash_commands/extractor.rb index a6838cb5e7c..02c4c8c492e 100644 --- a/lib/gitlab/slash_commands/extractor.rb +++ b/lib/gitlab/slash_commands/extractor.rb @@ -29,8 +29,8 @@ module Gitlab # commands = extractor.extract_commands(msg) #=> [['labels', '~foo ~"bar baz"']] # msg #=> "hello\nworld" # ``` - def extract_commands(content, opts) - return [] unless content + def extract_commands(content, opts = {}) + return [content, []] unless content content = content.dup @@ -107,7 +107,13 @@ module Gitlab # Command not in a blockquote, blockcode, or HTML tag: # /close - ^\/(?<cmd>#{Regexp.union(names)})(?:$|\ (?<args>[^\/\n]*)$) + ^\/ + (?<cmd>#{Regexp.union(names)}) + (?: + [ ] + (?<args>[^\/\n]*) + )? + (?:\n|$) ) }mx end |