class Lutaml::Model::ComparableModel::DiffContext

def format_value_tree(value1, value2, parent_node, label,

Returns:
  • (String) - Formatted value tree

Parameters:
  • type_info (String, nil) -- Additional type information
  • label (String) -- The label for the value
  • is_last (Boolean) -- Whether this is the last item in the current level
  • value2 (Object) -- The second value
  • value1 (Object) -- The first value
def format_value_tree(value1, value2, parent_node, label,
o = nil)
  return if value1 == value2 && !@show_unchanged
  if value1 == value2
    if @show_unchanged
      return format_single_value(
        value1,
        parent_node,
        "#{label}#{type_info ? " (#{type_info})" : ''}",
      )
    end
    return if @highlight_diff
  end
  case value1
  when Array
    format_collection(value1, value2, parent_node)
  when Hash
    format_hash_tree(value1, value2, parent_node)
  when ComparableModel
    format_object_attributes(value1, value2, parent_node)
  else
    node = Tree.new("#{label}#{type_info ? " (#{type_info})" : ''}:")
    parent_node.add_child(node)
    node.add_child(Tree.new("- #{format_value(value1)}", color: :red))
    node.add_child(Tree.new("+ #{format_value(value2)}", color: :green))
  end
end