diff --git a/lib/chili_project/database.rb b/lib/chili_project/database.rb index 918704adedb424412b3ab4b8803c93476f3eedf0..3aea395998e1c235b6b27b8a2c2089fa4c966516 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 f4cdf0e0fa7170edfedce51366303500d40e7b88..1296a0dd8f5c6dcaf5fa19e95fec7986f55af323 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