diff options
author | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-05-20 15:43:37 -0300 |
---|---|---|
committer | Rafael Mendonça França <rafaelmfranca@gmail.com> | 2014-05-20 15:43:37 -0300 |
commit | 59ee23f721fe1caab877bf6a1875a51cbbea45ac (patch) | |
tree | 6f5e0ee9ed2aebc4588fd7a827a00cc5c34c3100 /activerecord/lib/active_record/connection_adapters/column.rb | |
parent | 88d08f2ec9f89ba431cba8d0c06ac9ebc204bbbb (diff) | |
parent | e781aa31fc52a7c696115302ef4d4e02bfd1533b (diff) | |
download | rails-59ee23f721fe1caab877bf6a1875a51cbbea45ac.tar.gz rails-59ee23f721fe1caab877bf6a1875a51cbbea45ac.tar.bz2 rails-59ee23f721fe1caab877bf6a1875a51cbbea45ac.zip |
Merge pull request #15203 from sgrif/sg-delegate-type-cast
Replace `type_cast` case statement with delegation
Diffstat (limited to 'activerecord/lib/active_record/connection_adapters/column.rb')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/column.rb | 26 |
1 files changed, 4 insertions, 22 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/column.rb b/activerecord/lib/active_record/connection_adapters/column.rb index 11b2e728e1..f46f9af239 100644 --- a/activerecord/lib/active_record/connection_adapters/column.rb +++ b/activerecord/lib/active_record/connection_adapters/column.rb @@ -94,28 +94,10 @@ module ActiveRecord # Casts value to an appropriate instance. def type_cast(value) - return nil if value.nil? - return coder.load(value) if encoded? - - klass = self.class - - case type - when :string, :text - case value - when TrueClass; "1" - when FalseClass; "0" - else - value.to_s - end - when :integer then klass.value_to_integer(value) - when :float then value.to_f - when :decimal then klass.value_to_decimal(value) - when :datetime then klass.string_to_time(value) - when :time then klass.string_to_dummy_time(value) - when :date then klass.value_to_date(value) - when :binary then klass.binary_to_string(value) - when :boolean then klass.value_to_boolean(value) - else value + if encoded? + coder.load(value) + else + cast_type.type_cast(value) end end |