From 705c0db00006bb68e6314a0b884e8e62d20beb3a Mon Sep 17 00:00:00 2001
From: Holger Just <h.just@finn.de>
Date: Mon, 16 May 2011 00:01:09 +0200
Subject: [PATCH] [#112] Fix failing raw version for postgres

---
 lib/chili_project/database.rb                |  2 +-
 test/unit/lib/chili_project/database_test.rb | 11 +++++++++++
 2 files changed, 12 insertions(+), 1 deletion(-)

diff --git a/lib/chili_project/database.rb b/lib/chili_project/database.rb
index 918704ade..3aea39599 100644
--- a/lib/chili_project/database.rb
+++ b/lib/chili_project/database.rb
@@ -64,7 +64,7 @@ module ChiliProject
         version = ActiveRecord::Base.connection.select_value('SELECT VERSION()')
       when :postgresql
         version = ActiveRecord::Base.connection.select_value('SELECT version()')
-        version.match(/^PostgreSQL (\S+)/i)[1] unless raw
+        raw ? version : version.match(/^PostgreSQL (\S+)/i)[1]
       when :sqlite
         if SQLite3.const_defined? 'SQLITE_VERSION'
           SQLite3::SQLITE_VERSION
diff --git a/test/unit/lib/chili_project/database_test.rb b/test/unit/lib/chili_project/database_test.rb
index f4cdf0e0f..1296a0dd8 100644
--- a/test/unit/lib/chili_project/database_test.rb
+++ b/test/unit/lib/chili_project/database_test.rb
@@ -36,4 +36,15 @@ class ChiliProject::DatabaseTest < ActiveSupport::TestCase
   should "return a version string" do
     assert_equal "3.6.12", ChiliProject::Database.version
   end
+  
+  should "return long version string for raw==true" do
+    ChiliProject::Database.stubs(:adapter_name).returns "PostgreSQL"
+
+    raw_version = "PostgreSQL 8.3.11 on x86_64-pc-linux-gnu, compiled by GCC gcc-4.3.real (Debian 4.3.2-1.1) 4.3.2"
+    ActiveRecord::Base.connection.stubs(:select_value).returns raw_version
+    
+    assert_equal "8.3.11", ChiliProject::Database.version
+    assert_equal raw_version, ChiliProject::Database.version(true)
+  end
+  
 end
-- 
GitLab