Sha256: fdc9320f0778cf2fc8fbe6f866b3eea3b2c3945c55f4d91f486b1f6f8ef4385c
Contents?: true
Size: 1.31 KB
Versions: 1
Compression:
Stored size: 1.31 KB
Contents
module Dao ## CRUD support # class Conducer module CRUD Code = proc do class << self def db Db.instance end def collection db[collection_name] end def all(*args) hashes = collection.all() hashes.map{|hash| new(hash)} end def find(id) hash = collection.find(id) new(hash) if hash end end def save run_callbacks :save do return(false) unless valid? id = self.class.collection.save(@attributes) @attributes.set(:id => id) true end ensure @new_record = false end def destroy id = self.id if id self.class.collection.destroy(id) @attributes.rm(:id) end id ensure @destroyed = true end end def CRUD.included(other) super ensure other.module_eval(&Code) end end end ## dsl for auto-crud # class Conducer class << self def crud include(Conducer::CRUD) end alias_method('crud!', 'crud') alias_method('autocrud!', 'crud') end end #Conducer::send(:include, Conducer::CRUD) end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
dao-4.2.1 | lib/dao/conducer/crud.rb |