Sha256: efd21c56423973f4cea8dd8f3f2b87ef211c8ca3dfd24842338d8005bf65e65a
Contents?: true
Size: 1.12 KB
Versions: 2
Compression:
Stored size: 1.12 KB
Contents
require File.dirname(__FILE__) + '/simple_property' require File.dirname(__FILE__) + '/belongs_to_property' require File.dirname(__FILE__) + '/inline_has_many_property' require File.dirname(__FILE__) + '/external_has_many_property' module CouchPotato module Persistence module Properties def self.included(base) base.extend ClassMethods base.class_eval do def self.properties @@properties ||= {} @@properties[self.name] ||= [] end end end module ClassMethods def property_names properties.map(&:name) end def property(name, options = {}) clazz = options.delete(:class) properties << (clazz || SimpleProperty).new(self, name, options) end def belongs_to(name) property name, :class => BelongsToProperty end def has_many(name, options = {}) stored = options.delete(:stored) property name, options.merge(:class => (stored == :inline ? InlineHasManyProperty : ExternalHasManyProperty)) end end end end end
Version data entries
2 entries across 2 versions & 1 rubygems
Version | Path |
---|---|
langalex-couch_potato-0.1.1 | lib/couch_potato/persistence/properties.rb |
langalex-couch_potato-0.1 | lib/couch_potato/persistence/properties.rb |