2
3
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
|
# File 'lib/validations_skipper.rb', line 2
def self.included(base)
base.class_eval do
attr_accessor :skip_validations
def initialize(*)
instance_methods = self.class.instance_methods + self.class.private_instance_methods
@original_methods = instance_methods.map do |instance_method|
[instance_method, method(instance_method)]
end.to_h
super
end
def skip_validations
@skip_validations ||= []
end
def skip_validations=(skip_validations)
@skip_validations = skip_validations
@skip_validations.each do |validation_method|
define_singleton_method(validation_method) do
return if __method__.in? @skip_validations
@original_methods[validation_method].call
end
end
end
end
end
|