From 5a79def2789e872acbbd4f440457108bdeaccfa3 Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Sun, 7 Jul 2024 19:19:25 -0400 Subject: [PATCH] improvement: use struct spec to avoid double `%` in struct inspect (#613) * improvement: use struct spec to avoid double `%` in struct inspect currently, inspecting an `OpenApiSpex.Schema` looks like this: `%OpenApiSpex.Schema%{type: :object}` with the new change, it looks like this: `%OpenApiSpex.Schema{type: :object}` which allows copy/pasting the struct --- lib/open_api_spex/inspect/for_schema.ex | 7 ++++++- test/inspect/for_schema_test.exs | 2 +- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/lib/open_api_spex/inspect/for_schema.ex b/lib/open_api_spex/inspect/for_schema.ex index d3635286..551d2ad7 100644 --- a/lib/open_api_spex/inspect/for_schema.ex +++ b/lib/open_api_spex/inspect/for_schema.ex @@ -11,6 +11,11 @@ defimpl Inspect, for: OpenApiSpex.Schema do end) |> Map.new() - concat(["%OpenApiSpex.Schema", to_doc(map, opts)]) + infos = + for %{field: field} = info <- OpenApiSpex.Schema.__info__(:struct), + Map.has_key?(map, field), + do: info + + Inspect.Map.inspect(map, to_doc(OpenApiSpex.Schema, opts), infos, opts) end end diff --git a/test/inspect/for_schema_test.exs b/test/inspect/for_schema_test.exs index c8d21301..a2584a21 100644 --- a/test/inspect/for_schema_test.exs +++ b/test/inspect/for_schema_test.exs @@ -5,6 +5,6 @@ defmodule OpenApiSpex.Inspect.ForSchemaTest do test "inspect schema" do schema = %Schema{title: "Hello"} output = inspect(schema) - assert output == "%OpenApiSpex.Schema%{title: \"Hello\"}" + assert output == "%OpenApiSpex.Schema{title: \"Hello\"}" end end