lib/og/enchant.rb in og-0.8.0 vs lib/og/enchant.rb in og-0.9.3
- old
+ new
@@ -1,22 +1,20 @@
-# code:
# * George Moschovitis <gm@navel.gr>
-#
-# (c) 2004 Navel, all rights reserved.
+# (c) 2004-2005 Navel, all rights reserved.
# $Id: meta.rb 198 2004-12-22 11:26:59Z gmosx $
class Og
module Enchant
- # Enchant a managed class. Add useful DB related methods to the
- # class and its instances.
- #
+ # Enchant a managed class. Add useful DB related methods
+ # to the class and its instances.
+
def enchant(klass)
klass.module_eval <<-"end_eval", __FILE__, __LINE__
- def self.create(*params)
- obj = #{klass}.new(*params)
+ def self.create(*params, &block)
+ obj = #{klass}.new(*params, &block)
obj.save!
end
def self.save(obj)
Og.db << obj
@@ -24,10 +22,14 @@
def self.load(oid_or_name)
Og.db.load(oid_or_name, #{klass})
end
+ def self.get(oid_or_name)
+ Og.db.load(oid_or_name, #{klass})
+ end
+
def self.[](oid_or_name)
Og.db.load(oid_or_name, #{klass})
end
def self.load_all(extra_sql = nil)
@@ -55,10 +57,15 @@
end
def self.delete(obj_or_oid)
Og.db.delete(obj_or_oid, #{klass})
end
+
+ def each(&block)
+ all.each(&block)
+ end
+ include Enumerable
def save
Og.db << self
return self
end
@@ -75,6 +82,6 @@
end_eval
end
end
-end # namespace
+end