module EnumTable::Record

Public Instance Methods

enum(name) click to toggle source
# File lib/enum_table/record.rb, line 160
def enum(name)
  self.class.enums[name]
end
enum!(name) click to toggle source
# File lib/enum_table/record.rb, line 164
def enum!(name)
  self.class.enums[name] or
    raise ArgumentError, "no such enum: #{name}"
end
enum_change(name) click to toggle source
# File lib/enum_table/record.rb, line 203
def enum_change(name)
  reflection = enum!(name)
  change = attribute_change(reflection.id_name.to_s) or
    return nil
  old_id, new_id = *change
  [reflection.value(old_id), reflection.value(new_id)]
end
enum_changed?(name) click to toggle source
# File lib/enum_table/record.rb, line 192
def enum_changed?(name)
  reflection = enum!(name)
  attribute_changed?(reflection.id_name.to_s)
end
enum_id(name, value) click to toggle source
# File lib/enum_table/record.rb, line 169
def enum_id(name, value)
  self.class.enum_id(name, value)
end
enum_was(name) click to toggle source
# File lib/enum_table/record.rb, line 197
def enum_was(name)
  reflection = enum!(name)
  id = attribute_was(reflection.id_name.to_s)
  reflection.value(id)
end
query_enum(name) click to toggle source
# File lib/enum_table/record.rb, line 179
def query_enum(name)
  reflection = enum!(name)
  id = read_attribute(reflection.id_name)
  !!reflection.value(id)
end
read_attribute(name) click to toggle source
Calls superclass method
# File lib/enum_table/record.rb, line 211
def read_attribute(name)
  reflection = enum(name) or
    return super
  read_enum(name)
end
read_enum(name) click to toggle source
# File lib/enum_table/record.rb, line 173
def read_enum(name)
  reflection = enum!(name)
  id = read_attribute(reflection.id_name)
  reflection.value(id)
end
write_attribute(name, value) click to toggle source
Calls superclass method
# File lib/enum_table/record.rb, line 217
def write_attribute(name, value)
  reflection = enum(name) or
    return super
  write_enum(name, value)
end
write_enum(name, value) click to toggle source
# File lib/enum_table/record.rb, line 185
def write_enum(name, value)
  reflection = enum!(name)
  id = reflection.id(value)
  write_attribute(reflection.id_name, id)
  value
end