1 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 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46
|
module PowerAssert
class << self
def configuration
@configuration ||= Configuration[false, true, false, :p]
end
def configure
yield configuration
end
end
class Configuration < Struct.new(:lazy_inspection, :_redefinition, :colorize_message, :inspector)
def colorize_message=(bool)
if bool
require 'irb/color'
if inspector == :pp
require 'irb/color_printer'
end
end
super
end
def lazy_inspection=(bool)
unless bool
raise 'lazy_inspection option must be enabled when using pp' if inspector == :pp
end
super
end
def inspector=(inspector)
case inspector
when :pp
raise 'lazy_inspection option must be enabled when using pp' unless lazy_inspection
require 'pp'
if colorize_message
require 'irb/color_printer'
end
when :p
else
raise ArgumentError, "unknown inspector: #{inspector}"
end
super
end
end
private_constant :Configuration
end
|