Class: SkipActiveRecordCallbacks::ModelDecorator

Inherits:
Object
  • Object
show all
Defined in:
lib/skip_activerecord_callbacks/model_helpers.rb

Class Method Summary collapse

Class Method Details

.override_run_callbacks_to_skip_destroy_once(model) ⇒ Object



34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
# File 'lib/skip_activerecord_callbacks/model_helpers.rb', line 34

def self.override_run_callbacks_to_skip_destroy_once(model)
  class << model
    alias :run_callbacks_orig :run_callbacks
    def run_callbacks(name, &block)
      if name == :destroy
        class << self
          undef :run_callbacks
          alias :run_callbacks :run_callbacks_orig
        end
        yield
      else
        run_callbacks_orig(name, &block)
      end
    end
  end
end

.override_run_callbacks_to_skip_save_once(model) ⇒ Object



15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
# File 'lib/skip_activerecord_callbacks/model_helpers.rb', line 15

def self.override_run_callbacks_to_skip_save_once(model)
  class << model
    alias :run_callbacks_orig :run_callbacks
    def run_callbacks(name, &block)
      if name == :update || name == :create
        class << self
          undef :run_callbacks
          alias :run_callbacks :run_callbacks_orig
        end
        yield
      elsif name == :save
        yield
      else
        run_callbacks_orig(name, &block)
      end
    end
  end
end