From cb57168d6b977eff0201a4765c6901dadda1d578 Mon Sep 17 00:00:00 2001 From: Jens Kraemer Date: Tue, 13 Jun 2017 14:21:54 +0800 Subject: [PATCH] removes duplicate shell_quote method - also extracts a generic Utils::Shell.shell_quote_command method --- lib/redmine/scm/adapters/abstract_adapter.rb | 23 +++++++---------------- lib/redmine/utils.rb | 11 +++++++++++ 2 files changed, 18 insertions(+), 16 deletions(-) diff --git a/lib/redmine/scm/adapters/abstract_adapter.rb b/lib/redmine/scm/adapters/abstract_adapter.rb index 68fea1d..ecebba5 100644 --- a/lib/redmine/scm/adapters/abstract_adapter.rb +++ b/lib/redmine/scm/adapters/abstract_adapter.rb @@ -22,21 +22,23 @@ module Redmine module Scm module Adapters class AbstractAdapter #:nodoc: + include Redmine::Utils::Shell # raised if scm command exited with error, e.g. unknown revision. class ScmCommandAborted < ::Redmine::Scm::Adapters::CommandFailed; end class << self + def client_command "" end + def shell_quote(str) + Redmine::Utils::Shell.shell_quote str + end + def shell_quote_command - if Redmine::Platform.mswin? && RUBY_PLATFORM == 'java' - client_command - else - shell_quote(client_command) - end + Redmine::Utils::Shell.shell_quote_command client_command end # Returns the version of the scm client @@ -64,13 +66,6 @@ module Redmine true end - def shell_quote(str) - if Redmine::Platform.mswin? - '"' + str.gsub(/"/, '\\"') + '"' - else - "'" + str.gsub(/'/, "'\"'\"'") + "'" - end - end end def initialize(url, root_url=nil, login=nil, password=nil, @@ -180,10 +175,6 @@ module Redmine (path[-1,1] == "/") ? path[0..-2] : path end - def shell_quote(str) - self.class.shell_quote(str) - end - private def retrieve_root_url info = self.info diff --git a/lib/redmine/utils.rb b/lib/redmine/utils.rb index 85d3a4b..b998499 100644 --- a/lib/redmine/utils.rb +++ b/lib/redmine/utils.rb @@ -64,6 +64,9 @@ module Redmine end module Shell + + module_function + def shell_quote(str) if Redmine::Platform.mswin? '"' + str.gsub(/"/, '\\"') + '"' @@ -71,6 +74,14 @@ module Redmine "'" + str.gsub(/'/, "'\"'\"'") + "'" end end + + def shell_quote_command(command) + if Redmine::Platform.mswin? && RUBY_PLATFORM == 'java' + command + else + shell_quote(command) + end + end end module DateCalculation -- 2.1.4