Module: Kakurenbo::MixinARRelation
- Defined in:
- lib/kakurenbo/mixin_ar_relation.rb
Class Method Summary collapse
-
.included(base_class) ⇒ Object
Extend ClassMethods after include.
Class Method Details
.included(base_class) ⇒ Object
Extend ClassMethods after include.
4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 |
# File 'lib/kakurenbo/mixin_ar_relation.rb', line 4 def self.included(base_class) base_class.class_eval do alias_method :hard_delete_all, :delete_all # delete selected id or ids. # # @param id [Integer, Array<Integer>] ID or IDs. # @param options [Hash] options. # @option options [Boolean] hard (false) if hard-delete. def delete(id, = {:hard => false}) delete_all({:id => id}, ) end # delete all record. # # @param conditions [Object] conditions. # @param options [Hash] options. # @option options [Boolean] hard (false) if hard-delete. def delete_all(conditions = nil, = {:hard => false}) return hard_delete_all(conditions) unless klass.paranoid? if conditions where(conditions).delete_all(nil, ) else if [:hard] hard_delete_all else update_all({ klass.kakurenbo_column => Time.now }) end end end # destroy selected id or ids. # # @param id [Integer, Array<Integer>] ID or IDs. # @param options [Hash] options. # @option options [Boolean] hard (false) if hard-delete. def destroy(id, = {:hard => false}) destroy_all({:id => id}, ) end # destroy all record. # # @param conditions [Object] conditions. # @param options [Hash] options. # @option options [Boolean] hard (false) if hard-delete. def destroy_all(conditions = nil, = {:hard => false}) if conditions where(conditions).destroy_all(nil, ) else to_a.each {|object| object.destroy() }.tap { reset } end end # restore selected id or ids. # # @param id [Integer, Array<Integer>] ID or IDs. # @param options [Hash] options. # @option options [Boolean] recursive (true) if restore recursive. def restore(id, = {:recursive => true}) restore_all({:id => id}, ) end # restore all record. # # @param conditions [Object] conditions. # @param options [Hash] options. # @option options [Boolean] recursive (true) if restore recursive. def restore_all(conditions = nil, = {:recursive => true}) if conditions where(conditions).restore_all(nil, ) else to_a.each {|object| object.restore() }.tap { reset } end end end end |