- Hash =
InspectionTree.new do
when_empty do
add_text "{}"
end
when_non_empty do
add_text "{"
nested do |hash|
insert_hash_inspection_of(hash)
end
add_break " "
add_text "}"
end
end
- TIME_FORMAT =
"%Y-%m-%d %H:%M:%S.%3N %Z %:z".freeze
- Time =
InspectionTree.new do
add_text do |time|
"#{time.strftime(TIME_FORMAT)} (#{time.class})"
end
end
- Array =
InspectionTree.new do
when_empty do
add_text "[]"
end
when_non_empty do
add_text "["
nested do |array|
insert_array_inspection_of(array)
end
add_break
add_text "]"
end
end
- String =
InspectionTree.new do
add_text do |string|
string.inspect
end
end
- Primitive =
InspectionTree.new do
add_text do |object|
object.inspect
end
end
- CustomObject =
InspectionTree.new do
add_text do |object|
"#<#{object.class}"
end
when_multiline do
add_text " {"
end
nested do |object|
insert_hash_inspection_of(object.attributes_for_super_diff)
end
add_break
when_multiline do
add_text "}"
end
add_text ">"
end
- DefaultObject =
InspectionTree.new do
when_empty do
add_text do |object|
object.inspect
end
end
when_non_empty do
when_singleline do
add_text do |object|
object.inspect
end
end
when_multiline do
add_text do |object|
"#<%<class>s:0x%<id>x {" % {
class: object.class,
id: object.object_id * 2,
}
end
nested do |object|
add_break " "
insert_separated_list(
object.instance_variables.sort,
separator: ","
) do |name|
add_text name.to_s
add_text "="
add_inspection_of object.instance_variable_get(name)
end
end
add_break
add_text "}>"
end
end
end