From e42cbb7d31db1774d16a158586c5577c7ad1427c Mon Sep 17 00:00:00 2001 From: Kasper Timm Hansen Date: Sun, 1 Jan 2017 14:34:04 +0100 Subject: Revert "Merge pull request #27528 from kamipo/extract_casted_booleans" As pointed out by @matthewd this change makes ImmutableString aware of MysqlString's existence whereas previously MysqlString was only overriding public API. cc @kamipo This reverts commit e632c2fa4cb60072a778ce95c952a0fa95e5b074, reversing changes made to 334a7dcf107cd3ff1697163d331d289d6d65dcd7. --- .../lib/active_model/type/immutable_string.rb | 16 ++++------------ .../connection_adapters/abstract_mysql_adapter.rb | 20 ++++++++++++++------ 2 files changed, 18 insertions(+), 18 deletions(-) diff --git a/activemodel/lib/active_model/type/immutable_string.rb b/activemodel/lib/active_model/type/immutable_string.rb index c967d428ac..58268540e5 100644 --- a/activemodel/lib/active_model/type/immutable_string.rb +++ b/activemodel/lib/active_model/type/immutable_string.rb @@ -8,8 +8,8 @@ module ActiveModel def serialize(value) case value when ::Numeric, ActiveSupport::Duration then value.to_s - when true then casted_true - when false then casted_false + when true then "t" + when false then "f" else super end end @@ -19,20 +19,12 @@ module ActiveModel def cast_value(value) result = \ case value - when true then casted_true - when false then casted_false + when true then "t" + when false then "f" else value.to_s end result.freeze end - - def casted_true - "t".freeze - end - - def casted_false - "f".freeze - end end end end 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 97bc5edd4b..1c3d10c15d 100644 --- a/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/abstract_mysql_adapter.rb @@ -979,14 +979,22 @@ module ActiveRecord end class MysqlString < Type::String # :nodoc: - private - - def casted_true - MySQL::Quoting::QUOTED_TRUE + def serialize(value) + case value + when true then MySQL::Quoting::QUOTED_TRUE + when false then MySQL::Quoting::QUOTED_FALSE + else super end + end + + private - def casted_false - MySQL::Quoting::QUOTED_FALSE + def cast_value(value) + case value + when true then MySQL::Quoting::QUOTED_TRUE + when false then MySQL::Quoting::QUOTED_FALSE + else super + end end end -- cgit v1.2.3