class Covered::Policy

def cache!

def cache!
	@output = Cache.new(@output)
end

def capture

def capture
	@capture ||= Capture.new(@output)
end

def disable

def disable
	capture.disable
end

def enable

def enable
	capture.enable
end

def freeze

def freeze
	return if frozen?
	
	capture
	summary(threshold: @threshold)
	
	super
end

def include(*args)

def include(*args)
	@output = Include.new(@output, *args)
end

def initialize

def initialize
	super(Files.new)
	
	@threshold = 1.0
	@summary_class = PartialSummary
end

def only(*args)

def only(*args)
	@output = Only.new(@output, *args)
end

def print_summary(*args)

def print_summary(*args)
	summary.print_summary(*args)
end

def root(*args)

def root(*args)
	@output = Root.new(@output, *args)
end

def skip(*args)

def skip(*args)
	@output = Skip.new(@output, *args)
end

def source(*args)

def source(*args)
	@output = Source.new(@output, *args)
end

def summary(*args)

def summary(*args)
	@summary ||= @summary_class.new(@output, *args)
end