class PaperTrail::TypeSerializers::PostgresArraySerializer
Provides an alternative method of serialization and deserialization of PostgreSQL array columns.
Public Class Methods
new(subtype, delimiter)
click to toggle source
# File lib/mongo_trails/type_serializers/postgres_array_serializer.rb, line 8 def initialize(subtype, delimiter) @subtype = subtype @delimiter = delimiter end
Public Instance Methods
deserialize(array)
click to toggle source
# File lib/mongo_trails/type_serializers/postgres_array_serializer.rb, line 18 def deserialize(array) return deserialize_with_ar(array) if active_record_pre_502? case array # Needed for legacy reasons. If serialized array is a string # then it was serialized with Rails < 5.0.2. when ::String then deserialize_with_ar(array) else array end end
serialize(array)
click to toggle source
# File lib/mongo_trails/type_serializers/postgres_array_serializer.rb, line 13 def serialize(array) return serialize_with_ar(array) if active_record_pre_502? array end
Private Instance Methods
active_record_pre_502?()
click to toggle source
# File lib/mongo_trails/type_serializers/postgres_array_serializer.rb, line 31 def active_record_pre_502? ::ActiveRecord.gem_version < Gem::Version.new("5.0.2") end
deserialize_with_ar(array)
click to toggle source
# File lib/mongo_trails/type_serializers/postgres_array_serializer.rb, line 41 def deserialize_with_ar(array) ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array. new(@subtype, @delimiter). deserialize(array) end
serialize_with_ar(array)
click to toggle source
# File lib/mongo_trails/type_serializers/postgres_array_serializer.rb, line 35 def serialize_with_ar(array) ActiveRecord::ConnectionAdapters::PostgreSQL::OID::Array. new(@subtype, @delimiter). serialize(array) end