class Prong::Hooks::SkipAll
Public Class Methods
construct(base,name,type,condition)
click to toggle source
# File lib/prong/hooks/skip_all.rb, line 4 def self.construct(base,name,type,condition) self.new(base,name,type,condition).handle end
new(base,name,type,condition)
click to toggle source
# File lib/prong/hooks/skip_all.rb, line 8 def initialize(base,name,type,condition) @base = base; @name = name @type = type; @condition = condition end
Public Instance Methods
handle()
click to toggle source
# File lib/prong/hooks/skip_all.rb, line 13 def handle if @condition exclude_all_with_condition else exclude_all_without_condition end end
Private Instance Methods
callbacks()
click to toggle source
# File lib/prong/hooks/skip_all.rb, line 22 def callbacks @callbacks ||= @base.send("_#{@type}_#{@name}") end
exclude_all_with_condition()
click to toggle source
# File lib/prong/hooks/skip_all.rb, line 38 def exclude_all_with_condition condition = @condition modifier = callbacks.map do |callback| block = proc do |c| c.clear if instance_exec(&condition) next true end callback[0] << block callback end modify(modifier) end
exclude_all_without_condition()
click to toggle source
# File lib/prong/hooks/skip_all.rb, line 26 def exclude_all_without_condition modifier = callbacks.map do |callback| block = proc do |c| c.clear next true end callback[0] << block callback end modify(modifier) end
modify(modifier)
click to toggle source
# File lib/prong/hooks/skip_all.rb, line 51 def modify(modifier) @base.send("_#{@type}_#{@name}=", modifier) @base.send("_#{@name}_callbacks=", Chain.new(@base, @name).prepare) end