class Enumerize::ActiveRecordSupport::Type

Public Class Methods

new(attr, subtype) click to toggle source
# File lib/enumerize/activerecord.rb, line 102
def initialize(attr, subtype)
  @attr = attr
  @subtype = subtype
end

Public Instance Methods

as_json(options = nil) click to toggle source
# File lib/enumerize/activerecord.rb, line 120
def as_json(options = nil)
  {attr: @attr.name, subtype: @subtype}.as_json(options)
end
deserialize(value) click to toggle source
# File lib/enumerize/activerecord.rb, line 114
def deserialize(value)
  @attr.find_value(value)
end
Also aliased as: type_cast_from_database
encode_with(coder) click to toggle source
# File lib/enumerize/activerecord.rb, line 124
def encode_with(coder)
  coder[:class_name] = @attr.klass.name
  coder[:attr_name] = @attr.name
  coder[:subtype] = @subtype
end
init_with(coder) click to toggle source
# File lib/enumerize/activerecord.rb, line 130
def init_with(coder)
  initialize(
    coder[:class_name].constantize.enumerized_attributes[coder[:attr_name]],
    coder[:subtype]
  )
end
serialize(value) click to toggle source
# File lib/enumerize/activerecord.rb, line 107
def serialize(value)
  v = @attr.find_value(value)
  (v && v.value) || value
end
Also aliased as: type_cast_for_database
type_cast_for_database(value)
Alias for: serialize
type_cast_from_database(value)
Alias for: deserialize