Sha256: a42855ea6b48b22499dbaa33708dc8a4f14011e1fbbd605c22fb4816b5e78f65

Contents?: true

Size: 512 Bytes

Versions: 5

Compression:

Stored size: 512 Bytes

Contents

# frozen_string_literal: true

# @private
module PGTrunk::Serializers
  # @private
  # Cast the attribute value as a multiline text
  # with right-stripped lines and without empty lines.
  class MultilineTextSerializer < ActiveRecord::Type::Value
    def cast(value)
      return if value.blank?

      value.to_s.lines.map(&:strip).reject(&:blank?).join("\n")
    end

    def serialize(value)
      value&.to_s
    end
  end

  ActiveModel::Type.register(:pg_trunk_multiline_text, MultilineTextSerializer)
end

Version data entries

5 entries across 5 versions & 1 rubygems

Version Path
pg_trunk-0.2.0 lib/pg_trunk/core/serializers/multiline_text_serializer.rb
pg_trunk-0.1.3 lib/pg_trunk/core/serializers/multiline_text_serializer.rb
pg_trunk-0.1.2 lib/pg_trunk/core/serializers/multiline_text_serializer.rb
pg_trunk-0.1.1 lib/pg_trunk/core/serializers/multiline_text_serializer.rb
pg_trunk-0.1.0 lib/pg_trunk/core/serializers/multiline_text_serializer.rb