class Prong::Hooks::Skip
Public Class Methods
construct(base,name,type,list)
click to toggle source
# File lib/prong/hooks/skip.rb, line 4 def self.construct(base,name,type,list) self.new(base,name,type,list).handle end
new(base,name,type,list)
click to toggle source
# File lib/prong/hooks/skip.rb, line 8 def initialize(base,name,type,list) @base = base; @name = name @type = type; @list = list @condition = (@list.pop[:if] if @list.last.kind_of?(Hash)) end
Public Instance Methods
handle()
click to toggle source
# File lib/prong/hooks/skip.rb, line 14 def handle if @condition exclude_with_condition else exclude_without_condition end end
Private Instance Methods
callbacks()
click to toggle source
# File lib/prong/hooks/skip.rb, line 23 def callbacks @callbacks ||= @base.send("_#{@type}_#{@name}") end
exclude_with_condition()
click to toggle source
# File lib/prong/hooks/skip.rb, line 27 def exclude_with_condition condition = @condition; list = @list; modifer = callbacks.map do |callback| block = proc do |c| list.each {|i| c.delete(i)} if instance_exec(&condition) next true end callback[0] << block callback end modify(modifer) end
exclude_without_condition()
click to toggle source
# File lib/prong/hooks/skip.rb, line 40 def exclude_without_condition list = @list modifer = callbacks.map do |callback| block = proc do |c| list.each {|i| c.delete(i)} next true end callback[0] << block callback end modify(modifer) end
modify(modifer)
click to toggle source
# File lib/prong/hooks/skip.rb, line 53 def modify(modifer) @base.send("_#{@type}_#{@name}=", modifer) @base.send("_#{@name}_callbacks=", Chain.new(@base, @name).prepare) end