class Torque::PostgreSQL::Adapter::OID::Enum
Attributes
enum_klass[R]
klass[R]
name[R]
set_klass[R]
Public Class Methods
create(row, type_map)
click to toggle source
# File lib/torque/postgresql/adapter/oid/enum.rb, line 11 def self.create(row, type_map) name = row['typname'] oid = row['oid'].to_i arr_oid = row['typarray'].to_i oid_klass = Enum.new(name) oid_set_klass = EnumSet.new(name, oid_klass.klass) oid_klass.instance_variable_set(:@set_klass, oid_set_klass) type_map.register_type(oid, oid_klass) type_map.register_type(arr_oid, oid_set_klass) end
new(name)
click to toggle source
# File lib/torque/postgresql/adapter/oid/enum.rb, line 24 def initialize(name) @name = name @klass = Attributes::Enum.lookup(name) @enum_klass = self end
Public Instance Methods
==(other)
click to toggle source
# File lib/torque/postgresql/adapter/oid/enum.rb, line 50 def ==(other) self.class == other.class && other.klass == klass && other.type == type end
assert_valid_value(value)
click to toggle source
# File lib/torque/postgresql/adapter/oid/enum.rb, line 41 def assert_valid_value(value) cast_value(value) end
hash()
click to toggle source
# File lib/torque/postgresql/adapter/oid/enum.rb, line 31 def hash [self.class, name].hash end
serialize(value)
click to toggle source
# File lib/torque/postgresql/adapter/oid/enum.rb, line 35 def serialize(value) return if value.blank? value = cast_value(value) value.to_s unless value.nil? end
type_cast_for_schema(value)
click to toggle source
Always use symbol value for schema dumper
# File lib/torque/postgresql/adapter/oid/enum.rb, line 46 def type_cast_for_schema(value) cast_value(value).to_sym.inspect end
Private Instance Methods
cast_value(value)
click to toggle source
# File lib/torque/postgresql/adapter/oid/enum.rb, line 58 def cast_value(value) return if value.blank? return value if value.is_a?(@klass) @klass.new(value) rescue Attributes::Enum::EnumError nil end