Welcome to mirror list, hosted at ThFree Co, Russian Federation.

gitlab.com/gitlab-org/gitlab-foss.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDouwe Maan <douwe@selenight.nl>2016-08-13 19:58:51 +0300
committerDouwe Maan <douwe@selenight.nl>2016-08-17 01:42:34 +0300
commit029b7d2e9266246feff2f165a10b16be1d7fe88e (patch)
tree41581f4e08043530161c95aef9ccb533ec58a5e7 /lib/gitlab/slash_commands
parentb2b1b4a4226267dbc442d62e19949909d9e58235 (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.rb11
-rw-r--r--lib/gitlab/slash_commands/dsl.rb5
-rw-r--r--lib/gitlab/slash_commands/extractor.rb12
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