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