lib/og/enchant.rb in og-0.13.0 vs lib/og/enchant.rb in og-0.14.0
- old
+ new
@@ -41,10 +41,18 @@
def self.all(extra_sql = nil)
@@og_db.load_all(#{klass}, extra_sql)
end
+ def self.update_all(set_sql, extra_sql = nil)
+ @@og_db.exec("UPDATE #{klass::DBTABLE} SET \#\{set_sql\} \#\{extra_sql\}")
+ end
+
+ def self.update(set_sql, extra_sql = nil)
+ @@og_db.exec("UPDATE #{klass::DBTABLE} SET \#\{set_sql\} \#\{extra_sql\}")
+ end
+
def self.count(sql = "SELECT COUNT(*) FROM #{klass::DBTABLE}")
@@og_db.count(sql, #{klass})
end
def self.select(sql)
@@ -69,31 +77,47 @@
def self.delete(obj_or_oid)
@@og_db.delete(obj_or_oid, #{klass})
end
+ def self.transaction(&block)
+ @@og_db.transaction(&block)
+ end
+
def self.properties_and_relations
@@__meta[:props_and_relations]
end
- def each(&block)
+ def self.each(&block)
all.each(&block)
end
include Enumerable
def save
@@og_db << self
return self
end
alias_method :save!, :save
-
+
+ def reload
+ raise 'Cannot reload unmanaged object' unless @oid
+ res = @@og_db.query "SELECT * FROM #{klass::DBTABLE} WHERE oid=\#\{@oid\}"
+ og_read(@@og_db.get_row(res))
+ end
+ alias_method :reload!, :reload
+
def update_properties(updatesql)
@@og_db.pupdate(updatesql, self.oid, #{klass})
end
- alias_method :pupdate!, :update_properties
+ alias_method :pupdate, :update_properties
+ alias_method :update_property, :update_properties
+
+ def set_property(prop, value)
+ @@og_db.pupdate("\#\{prop\}=\#\{value\}", self.oid, #{klass})
+ end
def delete!
- @@og_db.delete(@oid, #{klass})
+ @@og_db.delete(self, #{klass})
end
}
# Generate finder methods.