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