class Torque::PostgreSQL::Adapter::OID::EnumSet

Public Class Methods

new(name, enum_klass) click to toggle source
# File lib/torque/postgresql/adapter/oid/enum_set.rb, line 8
def initialize(name, enum_klass)
  @name  = name + '[]'
  @klass = Attributes::EnumSet.lookup(name, enum_klass)

  @set_klass = self
  @enum_klass = enum_klass
end

Public Instance Methods

deserialize(value) click to toggle source
# File lib/torque/postgresql/adapter/oid/enum_set.rb, line 20
def deserialize(value)
  return unless value.present?
  value = value[1..-2].split(',') if value.is_a?(String)
  cast_value(value)
end
serialize(value) click to toggle source
# File lib/torque/postgresql/adapter/oid/enum_set.rb, line 26
def serialize(value)
  return if value.blank?
  value = cast_value(value)

  return if value.blank?
  "{#{value.map(&:to_s).join(',')}}"
end
type() click to toggle source
# File lib/torque/postgresql/adapter/oid/enum_set.rb, line 16
def type
  :enum_set
end
type_cast_for_schema(value) click to toggle source

Always use symbol values for schema dumper

# File lib/torque/postgresql/adapter/oid/enum_set.rb, line 35
def type_cast_for_schema(value)
  cast_value(value).map(&:to_sym).inspect
end

Private Instance Methods

cast_value(value) click to toggle source
# File lib/torque/postgresql/adapter/oid/enum_set.rb, line 41
def cast_value(value)
  return if value.blank?
  return value if value.is_a?(@klass)
  @klass.new(value)
rescue Attributes::EnumSet::EnumSetError
  nil
end