summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorJean-Philippe Lang <jp_lang@yahoo.fr>2008-08-25 11:01:37 +0000
committerJean-Philippe Lang <jp_lang@yahoo.fr>2008-08-25 11:01:37 +0000
commit116091a1d2ea1e4fd5c4838760d11beab2d5cea3 (patch)
tree6b1bbba99f126bf854c12083ea5a21c970f7a7ae
parent2f3f2d8b12483b72f78f7f4704d8641451b16832 (diff)
downloadredmine-116091a1d2ea1e4fd5c4838760d11beab2d5cea3.tar.gz
redmine-116091a1d2ea1e4fd5c4838760d11beab2d5cea3.zip
Fixes platform determination under JRuby (#1804).
git-svn-id: http://redmine.rubyforge.org/svn/trunk@1753 e93f8b46-1217-0410-a6f0-8f06a7374b81
-rw-r--r--lib/redmine/platform.rb26
-rw-r--r--lib/redmine/scm/adapters/abstract_adapter.rb4
-rw-r--r--test/functional/repositories_cvs_controller_test.rb2
-rw-r--r--test/functional/repositories_git_controller_test.rb2
-rw-r--r--test/unit/repository_cvs_test.rb2
-rw-r--r--test/unit/repository_git_test.rb2
6 files changed, 32 insertions, 6 deletions
diff --git a/lib/redmine/platform.rb b/lib/redmine/platform.rb
new file mode 100644
index 000000000..f41b92f2e
--- /dev/null
+++ b/lib/redmine/platform.rb
@@ -0,0 +1,26 @@
+# Redmine - project management software
+# Copyright (C) 2006-2008 Jean-Philippe Lang
+#
+# This program is free software; you can redistribute it and/or
+# modify it under the terms of the GNU General Public License
+# as published by the Free Software Foundation; either version 2
+# of the License, or (at your option) any later version.
+#
+# This program is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+# GNU General Public License for more details.
+#
+# You should have received a copy of the GNU General Public License
+# along with this program; if not, write to the Free Software
+# Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA.
+
+module Redmine
+ module Platform
+ class << self
+ def mswin?
+ (RUBY_PLATFORM =~ /(:?mswin|mingw)/) || (RUBY_PLATFORM == 'java' && (ENV['OS'] || ENV['os']) =~ /windows/i)
+ end
+ end
+ end
+end
diff --git a/lib/redmine/scm/adapters/abstract_adapter.rb b/lib/redmine/scm/adapters/abstract_adapter.rb
index c48ed2068..553b69963 100644
--- a/lib/redmine/scm/adapters/abstract_adapter.rb
+++ b/lib/redmine/scm/adapters/abstract_adapter.rb
@@ -138,7 +138,7 @@ module Redmine
end
def shell_quote(str)
- if RUBY_PLATFORM =~ /mswin/
+ if Redmine::Platform.mswin?
'"' + str.gsub(/"/, '\\"') + '"'
else
"'" + str.gsub(/'/, "'\"'\"'") + "'"
@@ -186,7 +186,7 @@ module Redmine
# Hides username/password in a given command
def self.hide_credential(cmd)
- q = (RUBY_PLATFORM =~ /mswin/ ? '"' : "'")
+ q = (Redmine::Platform.mswin? ? '"' : "'")
cmd.to_s.gsub(/(\-\-(password|username))\s+(#{q}[^#{q}]+#{q}|[^#{q}]\S+)/, '\\1 xxxx')
end
diff --git a/test/functional/repositories_cvs_controller_test.rb b/test/functional/repositories_cvs_controller_test.rb
index 254fbc69c..2207d6ab6 100644
--- a/test/functional/repositories_cvs_controller_test.rb
+++ b/test/functional/repositories_cvs_controller_test.rb
@@ -25,7 +25,7 @@ class RepositoriesCvsControllerTest < Test::Unit::TestCase
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
- REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/
+ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
# CVS module
MODULE_NAME = 'test'
diff --git a/test/functional/repositories_git_controller_test.rb b/test/functional/repositories_git_controller_test.rb
index 339e22897..201a50677 100644
--- a/test/functional/repositories_git_controller_test.rb
+++ b/test/functional/repositories_git_controller_test.rb
@@ -26,7 +26,7 @@ class RepositoriesGitControllerTest < Test::Unit::TestCase
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
- REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/
+ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
def setup
@controller = RepositoriesController.new
diff --git a/test/unit/repository_cvs_test.rb b/test/unit/repository_cvs_test.rb
index b14d9d964..6615f73bf 100644
--- a/test/unit/repository_cvs_test.rb
+++ b/test/unit/repository_cvs_test.rb
@@ -22,7 +22,7 @@ class RepositoryCvsTest < Test::Unit::TestCase
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/cvs_repository'
- REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/
+ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
# CVS module
MODULE_NAME = 'test'
diff --git a/test/unit/repository_git_test.rb b/test/unit/repository_git_test.rb
index c7bd84a6e..8a6f1ddd0 100644
--- a/test/unit/repository_git_test.rb
+++ b/test/unit/repository_git_test.rb
@@ -22,7 +22,7 @@ class RepositoryGitTest < Test::Unit::TestCase
# No '..' in the repository path
REPOSITORY_PATH = RAILS_ROOT.gsub(%r{config\/\.\.}, '') + '/tmp/test/git_repository'
- REPOSITORY_PATH.gsub!(/\//, "\\") if RUBY_PLATFORM =~ /mswin/
+ REPOSITORY_PATH.gsub!(/\//, "\\") if Redmine::Platform.mswin?
def setup
@project = Project.find(1)