diff options
author | Joel Schneider <joel.schneider@webascender.com> | 2019-07-12 14:49:03 -0400 |
---|---|---|
committer | Joel Schneider <joel.schneider@webascender.com> | 2019-07-12 14:49:03 -0400 |
commit | ddd0e9b02614d57aa3876b5679f046eca13b10d4 (patch) | |
tree | ceaad7852d1b4099cf68b4b38eb308307de73952 /activerecord | |
parent | 727da1d8cdcab3ff50e399053faf7ba84e05ce03 (diff) | |
download | rails-ddd0e9b02614d57aa3876b5679f046eca13b10d4.tar.gz rails-ddd0e9b02614d57aa3876b5679f046eca13b10d4.tar.bz2 rails-ddd0e9b02614d57aa3876b5679f046eca13b10d4.zip |
Make currency symbols optional for money column type in PostgreSQL
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/CHANGELOG.md | 4 | ||||
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/postgresql/oid/money.rb | 4 | ||||
-rw-r--r-- | activerecord/test/cases/adapters/postgresql/money_test.rb | 4 |
3 files changed, 10 insertions, 2 deletions
diff --git a/activerecord/CHANGELOG.md b/activerecord/CHANGELOG.md index 184e881b25..4dccdf3fd1 100644 --- a/activerecord/CHANGELOG.md +++ b/activerecord/CHANGELOG.md @@ -1,3 +1,7 @@ +* Make currency symbols optional for money column type in PostgreSQL + + *Joel Schneider* + * Add database_exists? method to connection adapters to check if a database exists. *Guilherme Mansur* diff --git a/activerecord/lib/active_record/connection_adapters/postgresql/oid/money.rb b/activerecord/lib/active_record/connection_adapters/postgresql/oid/money.rb index 6434377b57..357493dfc0 100644 --- a/activerecord/lib/active_record/connection_adapters/postgresql/oid/money.rb +++ b/activerecord/lib/active_record/connection_adapters/postgresql/oid/money.rb @@ -26,9 +26,9 @@ module ActiveRecord value = value.sub(/^\((.+)\)$/, '-\1') # (4) case value - when /^-?\D+[\d,]+\.\d{2}$/ # (1) + when /^-?\D*[\d,]+\.\d{2}$/ # (1) value.gsub!(/[^-\d.]/, "") - when /^-?\D+[\d.]+,\d{2}$/ # (2) + when /^-?\D*[\d.]+,\d{2}$/ # (2) value.gsub!(/[^-\d,]/, "").sub!(/,/, ".") end diff --git a/activerecord/test/cases/adapters/postgresql/money_test.rb b/activerecord/test/cases/adapters/postgresql/money_test.rb index 1aa0348879..ff2ab22a80 100644 --- a/activerecord/test/cases/adapters/postgresql/money_test.rb +++ b/activerecord/test/cases/adapters/postgresql/money_test.rb @@ -54,8 +54,12 @@ class PostgresqlMoneyTest < ActiveRecord::PostgreSQLTestCase type = PostgresqlMoney.type_for_attribute("wealth") assert_equal(12345678.12, type.cast(+"$12,345,678.12")) assert_equal(12345678.12, type.cast(+"$12.345.678,12")) + assert_equal(12345678.12, type.cast(+"12,345,678.12")) + assert_equal(12345678.12, type.cast(+"12.345.678,12")) assert_equal(-1.15, type.cast(+"-$1.15")) assert_equal(-2.25, type.cast(+"($2.25)")) + assert_equal(-1.15, type.cast(+"-1.15")) + assert_equal(-2.25, type.cast(+"(2.25)")) end def test_schema_dumping |