class Bpl::Pass
Public Class Methods
depends(*passes)
click to toggle source
# File lib/bpl/pass.rb, line 29 def depends(*passes) @depends ||= [] @depends += passes passes.each do |p| define_method(p) { instance_variable_get("@#{p}") } end @depends end
flag(*args, &blk)
click to toggle source
# File lib/bpl/pass.rb, line 9 def flag(*args, &blk) flags << {args: args, blk: blk} end
flags()
click to toggle source
# File lib/bpl/pass.rb, line 13 def flags @flags ||= [] @flags end
inherited(subclass)
click to toggle source
# File lib/bpl/pass.rb, line 51 def inherited(subclass) subclass.instance_variable_set("@flags",@flags) subclass.instance_variable_set("@depends",@depends) end
invalidates(*passes)
click to toggle source
# File lib/bpl/pass.rb, line 38 def invalidates(*passes) @invalidates ||= Set.new @invalidates.merge(passes) end
new(opts = {})
click to toggle source
# File lib/bpl/pass.rb, line 57 def initialize(opts = {}) self.class.options.merge(opts).each do |k,v| instance_variable_set("@#{k}",v) if respond_to?(k) end end
option(k,v=nil)
click to toggle source
# File lib/bpl/pass.rb, line 18 def option(k,v=nil) define_method(k) do instance_variable_get("@#{k}") end options[k] = v end
options()
click to toggle source
# File lib/bpl/pass.rb, line 25 def options @options ||= {} end
result(key, init)
click to toggle source
# File lib/bpl/pass.rb, line 43 def result(key, init) define_method(key) do v = instance_variable_get("@#{key}") instance_variable_set("@#{key}", init) unless v instance_variable_get("@#{key}") end end
switch(*args, &blk)
click to toggle source
# File lib/bpl/pass.rb, line 5 def switch(*args, &blk) @switch ||= {args: args, blk: blk} end
Public Instance Methods
added(*programs)
click to toggle source
# File lib/bpl/pass.rb, line 76 def added(*programs) @added ||= [] @added += programs end
invalidates(*passes)
click to toggle source
# File lib/bpl/pass.rb, line 63 def invalidates(*passes) @invalidates ||= Set.new self.class.invalidates + @invalidates.merge(passes) end
redo!()
click to toggle source
# File lib/bpl/pass.rb, line 68 def redo!; @redo ||= true end
redo?()
click to toggle source
# File lib/bpl/pass.rb, line 69 def redo?; @redo ||= false end
removed(*programs)
click to toggle source
# File lib/bpl/pass.rb, line 71 def removed(*programs) @removed ||= [] @removed += programs end
run!(program)
click to toggle source
# File lib/bpl/pass.rb, line 81 def run! program fail "#{self.class} must implement :run instance method." end