lib/active_groonga/callbacks.rb in activegroonga-0.0.7 vs lib/active_groonga/callbacks.rb in activegroonga-1.0.0
- old
+ new
@@ -1,6 +1,6 @@
-# Copyright (C) 2009 Kouhei Sutou <kou@clear-code.com>
+# Copyright (C) 2009-2010 Kouhei Sutou <kou@clear-code.com>
#
# This library is free software; you can redistribute it and/or
# modify it under the terms of the GNU Lesser General Public
# License version 2.1 as published by the Free Software Foundation.
#
@@ -13,14 +13,33 @@
# License along with this library; if not, write to the Free Software
# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
module ActiveGroonga
module Callbacks
- class << self
- def included(base)
- base.class_eval do
- include ActiveRecord::Callbacks
- end
- end
+ extend ActiveSupport::Concern
+
+ included do
+ extend ActiveModel::Callbacks
+ include ActiveModel::Validations::Callbacks
+
+ define_model_callbacks :initialize, :find, :only => :after
+ define_model_callbacks :save, :create, :update, :destory
+ end
+
+ def destroy #:nodoc:
+ run_callbacks(:destory) {super}
+ end
+
+ private
+ def create_or_update #:nodoc:
+ run_callbacks(:save) {super}
+ end
+
+ def create #:nodoc:
+ run_callbacks(:create) {super}
+ end
+
+ def update #:nodoc:
+ run_callbacks(:update) {super}
end
end
end