diff options
author | Rafael França <rafaelmfranca@gmail.com> | 2016-04-04 22:13:10 -0300 |
---|---|---|
committer | Rafael França <rafaelmfranca@gmail.com> | 2016-04-04 22:13:10 -0300 |
commit | dcffeaea66130a8aa5f1591912bd8a335960bc14 (patch) | |
tree | 96f852a34d34324f8f9922a082aec9aa3a682c5c /activerecord | |
parent | bd49325e3ba9fba3bbea2d32b3e7a71ec1934c55 (diff) | |
parent | 72ecb9fc42fe0fe904b7c742036cdafa358c3cab (diff) | |
download | rails-dcffeaea66130a8aa5f1591912bd8a335960bc14.tar.gz rails-dcffeaea66130a8aa5f1591912bd8a335960bc14.tar.bz2 rails-dcffeaea66130a8aa5f1591912bd8a335960bc14.zip |
Merge pull request #24426 from yui-knk/refactor_mysql2
Use `QUOTED_TRUE` and `QUOTED_FALSE` instead of magic strings
Diffstat (limited to 'activerecord')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb | 8 | ||||
-rw-r--r-- | activerecord/test/cases/adapters/mysql2/boolean_test.rb | 14 |
2 files changed, 16 insertions, 6 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb index 8015d1ed9e..f6766b996f 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -939,8 +939,8 @@ module ActiveRecord class MysqlString < Type::String # :nodoc: def serialize(value) case value - when true then "1" - when false then "0" + when true then QUOTED_TRUE + when false then QUOTED_FALSE else super end end @@ -949,8 +949,8 @@ module ActiveRecord def cast_value(value) case value - when true then "1" - when false then "0" + when true then QUOTED_TRUE + when false then QUOTED_FALSE else super end end diff --git a/activerecord/test/cases/adapters/mysql2/boolean_test.rb b/activerecord/test/cases/adapters/mysql2/boolean_test.rb index 8575df9e43..739bb275ce 100644 --- a/activerecord/test/cases/adapters/mysql2/boolean_test.rb +++ b/activerecord/test/cases/adapters/mysql2/boolean_test.rb @@ -43,11 +43,16 @@ class Mysql2BooleanTest < ActiveRecord::Mysql2TestCase boolean = BooleanType.create!(archived: true, published: true) attributes = boolean.reload.attributes_before_type_cast - assert_equal 1, attributes["archived"] assert_equal "1", attributes["published"] + boolean = BooleanType.create!(archived: false, published: false) + attributes = boolean.reload.attributes_before_type_cast + assert_equal 0, attributes["archived"] + assert_equal "0", attributes["published"] + assert_equal 1, @connection.type_cast(true) + assert_equal 0, @connection.type_cast(false) end test "test type casting without emulated booleans" do @@ -55,11 +60,16 @@ class Mysql2BooleanTest < ActiveRecord::Mysql2TestCase boolean = BooleanType.create!(archived: true, published: true) attributes = boolean.reload.attributes_before_type_cast - assert_equal 1, attributes["archived"] assert_equal "1", attributes["published"] + boolean = BooleanType.create!(archived: false, published: false) + attributes = boolean.reload.attributes_before_type_cast + assert_equal 0, attributes["archived"] + assert_equal "0", attributes["published"] + assert_equal 1, @connection.type_cast(true) + assert_equal 0, @connection.type_cast(false) end test "with booleans stored as 1 and 0" do |