Commit 3e7eeefc authored by Douwe Maan's avatar Douwe Maan

Address feedback

parent 8b8a4626
......@@ -193,9 +193,7 @@ def change_todo(issuable)
todo_service.mark_todo(issuable, current_user)
when 'done'
todo = TodosFinder.new(current_user).execute.find_by(target: issuable)
if todo
todo_service.mark_todos_as_done([todo], current_user)
end
todo_service.mark_todos_as_done([todo], current_user) if todo
end
end
......
......@@ -18,11 +18,11 @@ def execute(content, issuable)
content, commands = extractor.extract_commands(content, opts)
commands.each do |name, *args|
commands.each do |name, args|
definition = self.class.command_definitions_by_name[name.to_sym]
next unless definition
definition.execute(self, opts, *args)
definition.execute(self, opts, args)
end
[content, @updates]
......@@ -76,7 +76,6 @@ def extractor
command :assign do |assignee_param|
user = extract_references(assignee_param, :user).first
user ||= User.find_by(username: assignee_param)
user ||= User.find_by(name: assignee_param)
@updates[:assignee_id] = user.id if user
end
......
......@@ -6,11 +6,11 @@ class CommandDefinition
def initialize(name, attributes = {})
@name = name
@aliases = attributes[:aliases] || []
@description = attributes[:description] || ''
@params = attributes[:params] || []
@condition_block = attributes[:condition_block]
@action_block = attributes[:action_block]
@aliases = attributes[:aliases] || []
@description = attributes[:description] || ''
@params = attributes[:params] || []
@condition_block = attributes[:condition_block]
@action_block = attributes[:action_block]
end
def all_names
......@@ -28,13 +28,13 @@ def available?(opts)
context.instance_exec(&condition_block)
end
def execute(context, opts, *args)
def execute(context, opts, args)
return if noop? || !available?(opts)
block_arity = action_block.arity
return unless block_arity == -1 || block_arity == args.size
return unless (args.present? && block_arity == 1) || (args.blank? && block_arity <= 0)
context.instance_exec(*args, &action_block)
context.instance_exec(args, &action_block)
end
def to_h(opts)
......
......@@ -50,15 +50,6 @@ def extract_commands(content, opts = {})
end
private
def command_names(opts)
command_definitions.flat_map do |command|
next if command.noop?
command.all_names
end.compact
end
# Builds a regular expression to match known commands.
# First match group captures the command name and
# second match group captures its arguments.
......@@ -117,6 +108,14 @@ def commands_regex(opts)
)
}mx
end
def command_names(opts)
command_definitions.flat_map do |command|
next if command.noop?
command.all_names
end.compact
end
end
end
end
Markdown is supported
0% or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment