lib/sequel/model.rb in sequel-0.1.6 vs lib/sequel/model.rb in sequel-0.1.7
- old
+ new
@@ -152,11 +152,11 @@
def self.after_create(&block)
get_hooks(:after_create) << block
end
def self.after_destroy(&block)
- get_hooks(:after_destroy).unshift(block)
+ get_hooks(:after_destroy) << block
end
def self.find(cond)
dataset[cond.is_a?(Hash) ? cond : {primary_key => cond}]
end
@@ -192,21 +192,10 @@
@values = self.class.dataset.naked[primary_key => @pkey] ||
(raise SequelError, "Record not found")
self
end
- # def self.each(&block); dataset.each(&block); end
- # def self.all; dataset.all; end
- # def self.filter(*arg, &block); dataset.filter(*arg, &block); end
- # def self.exclude(*arg, &block); dataset.exclude(*arg, &block); end
- # def self.order(*arg); dataset.order(*arg); end
- # def self.first(*arg); dataset.first(*arg); end
- # def self.count; dataset.count; end
- # def self.map(*arg, &block); dataset.map(*arg, &block); end
- # def self.hash_column(column); dataset.hash_column(primary_key, column); end
- # def self.join(*args); dataset.join(*args); end
- # def self.lock(mode, &block); dataset.lock(mode, &block); end
def self.destroy_all
has_hooks?(:before_destroy) ? dataset.destroy : dataset.delete
end
def self.delete_all; dataset.delete; end
@@ -220,10 +209,11 @@
def destroy
db.transaction do
run_hooks(:before_destroy)
delete
+ run_hooks(:after_destroy)
end
end
def delete
model.dataset.filter(primary_key => @pkey).delete
@@ -248,9 +238,14 @@
elsif dataset.respond_to?(m)
instance_eval("def #{m}(*args, &block); dataset.#{m}(*args, &block); end")
end
end
respond_to?(m) ? send(m, *args, &block) : super(m, *args)
+ end
+
+ def self.join(*args)
+ table_name = dataset.opts[:from].first
+ dataset.join(*args).select(table_name.to_sym.ALL)
end
def db; self.class.db; end
def [](field); @values[field]; end