Class: PaperTrail::TypeSerializers::PostgresArraySerializer

Inherits:
Object
  • Object
show all
Defined in:
lib/paper_trail/type_serializers/postgres_array_serializer.rb

Overview

Provides an alternative method of serialization and deserialization of PostgreSQL array columns.

Instance Method Summary collapse

Constructor Details

#initialize(subtype, delimiter) ⇒ PostgresArraySerializer



6
7
8
9
# File 'lib/paper_trail/type_serializers/postgres_array_serializer.rb', line 6

def initialize(subtype, delimiter)
  @subtype = subtype
  @delimiter = delimiter
end

Instance Method Details

#deserialize(array) ⇒ Object



16
17
18
19
20
21
22
23
24
25
# File 'lib/paper_trail/type_serializers/postgres_array_serializer.rb', line 16

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) ⇒ Object



11
12
13
14
# File 'lib/paper_trail/type_serializers/postgres_array_serializer.rb', line 11

def serialize(array)
  return serialize_with_ar(array) if active_record_pre_502?
  array
end