convert(object)
click to toggle source
def convert(object)
if object.is_a?(Exception)
object = AssertExceptionHelper::WrappedException.new(object)
end
inspector = Inspector.new(object)
if use_pp
begin
require "pp" unless defined?(PP)
begin
return PP.pp(inspector, String.new).chomp
rescue NameError
end
rescue LoadError
self.use_pp = false
end
end
inspector.inspect
end
delayed_diff(from, to)
click to toggle source
def delayed_diff(from, to)
delayed_literal do
from, to = prepare_for_diff(from, to)
diff = "" if from.nil? or to.nil?
diff ||= Diff.readable(from, to)
if /^[-+]/ !~ diff
diff = ""
elsif /^[ ?]/ =~ diff or /(?:.*\n){2,}/ =~ diff
diff = "\n\ndiff:\n#{diff}"
else
diff = ""
end
if Diff.need_fold?(diff)
folded_diff = Diff.folded_readable(from, to)
diff += "\n\nfolded diff:\n#{folded_diff}"
end
diff
end
end
delayed_literal(&block)
click to toggle source
def delayed_literal(&block)
DelayedLiteral.new(block)
end
diff_target_string?(string)
click to toggle source
def diff_target_string?(string)
if string.respond_to?(:bytesize)
string.bytesize < max_diff_target_string_size
else
string.size < max_diff_target_string_size
end
end
ensure_diffable_string(string)
click to toggle source
def ensure_diffable_string(string)
if string.respond_to?(:encoding) and
!string.encoding.ascii_compatible?
string = string.dup.force_encoding("ASCII-8BIT")
end
string
end
literal(value)
click to toggle source
def literal(value)
Literal.new(value)
end
max_diff_target_string_size()
click to toggle source
def max_diff_target_string_size
return @@max_diff_target_string_size if @@max_diff_target_string_size
size = ENV["TEST_UNIT_MAX_DIFF_TARGET_STRING_SIZE"]
if size
begin
size = Integer(size)
rescue ArgumentError
size = nil
end
end
size || MAX_DIFF_TARGET_STRING_SIZE
end
max_diff_target_string_size=(size)
click to toggle source
def max_diff_target_string_size=(size)
@@max_diff_target_string_size = size
end
maybe_container(value, &formatter)
click to toggle source
def maybe_container(value, &formatter)
MaybeContainer.new(value, &formatter)
end
new(user_message, template_string, parameters)
click to toggle source
def initialize(user_message, template_string, parameters)
@user_message = user_message
@template_string = template_string
@parameters = parameters
end
prepare_for_diff(from, to)
click to toggle source
def prepare_for_diff(from, to)
if !from.is_a?(String) or !to.is_a?(String)
from = convert(from)
to = convert(to)
end
if diff_target_string?(from) and diff_target_string?(to)
from = ensure_diffable_string(from)
to = ensure_diffable_string(to)
[from, to]
else
[nil, nil]
end
end