diff options
author | Rafael Mendonça França <rafael@franca.dev> | 2019-07-23 11:04:03 -0400 |
---|---|---|
committer | Rafael Mendonça França <rafael@franca.dev> | 2019-07-23 11:04:03 -0400 |
commit | 0354b0d6c695bcbaa2750f47fa568dd3b69c59a3 (patch) | |
tree | 1e4129645142aad51cdb7df43e37be37cf3fb0f5 | |
parent | 9c913116c634fe5fe2159a94b8f1a244801a4877 (diff) | |
parent | ddd0e9b02614d57aa3876b5679f046eca13b10d4 (diff) | |
download | rails-0354b0d6c695bcbaa2750f47fa568dd3b69c59a3.tar.gz rails-0354b0d6c695bcbaa2750f47fa568dd3b69c59a3.tar.bz2 rails-0354b0d6c695bcbaa2750f47fa568dd3b69c59a3.zip |
Merge pull request #36665 from jmschneider/master
Make currency symbols optional for money column type in PostgreSQL
-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 b39f423700..727ddd6bb7 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 support for beginless ranges, introduced in Ruby 2.7. *Josh Goodall* 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 |