Sha256: 57f35a403d9af8fb7538a443349455eba7c6540ab6db607d060fe35450403361
Contents?: true
Size: 1.14 KB
Versions: 5
Compression:
Stored size: 1.14 KB
Contents
module JasonObjectMetaProperties def self.included(base) base.extend(MetaProperties) end module MetaProperties def create_member_list list_name, list_class, list_type list = {} list = self.send(:class_variable_get, :@@lists) if self.class_variable_defined? :@@lists list[list_name] = [list_class, list_type] self.send(:class_variable_set, "@@lists", list) define_method(list_name) do #puts "Looking at the #{list_name.to_s} list, which is full of #{list_type.name}s" Medea::JasonListProperty.new self, list_name, list_class, list_type end end def has_many list_name, list_class create_member_list list_name, list_class, :reference end def owns_many list_name, list_class create_member_list list_name, list_class, :value #also modify the items in the list so that they know that they're owned #list_type.class_variable_set :@@owner, self list_class.owned = true end def key_field field_name #this field must be present to save, and it must be unique self.send(:class_variable_set, :@@key_field, field_name) end end end
Version data entries
5 entries across 5 versions & 1 rubygems