From 5ab8aa767cde46c7ed05a92a5ab908304ea34faf Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Fri, 28 Jun 2024 12:34:10 -0400 Subject: [PATCH 1/3] 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 | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/lib/open_api_spex/inspect/for_schema.ex b/lib/open_api_spex/inspect/for_schema.ex index d3635286..23c2ef60 100644 --- a/lib/open_api_spex/inspect/for_schema.ex +++ b/lib/open_api_spex/inspect/for_schema.ex @@ -11,6 +11,12 @@ 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), + field not in [:__struct__, :__exception__], + do: info + + Inspect.Map.inspect(map, Macro.inspect_atom(:literal, OpenApiSpex.Schema), infos, opts) end end From c759ce11df96270ab389f9cc6f441602bd48ff87 Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Tue, 2 Jul 2024 09:11:40 -0400 Subject: [PATCH 2/3] Update for_schema.ex --- lib/open_api_spex/inspect/for_schema.ex | 1 - 1 file changed, 1 deletion(-) diff --git a/lib/open_api_spex/inspect/for_schema.ex b/lib/open_api_spex/inspect/for_schema.ex index 23c2ef60..b13d8322 100644 --- a/lib/open_api_spex/inspect/for_schema.ex +++ b/lib/open_api_spex/inspect/for_schema.ex @@ -14,7 +14,6 @@ defimpl Inspect, for: OpenApiSpex.Schema do infos = for %{field: field} = info <- OpenApiSpex.Schema.__info__(:struct), Map.has_key?(map, field), - field not in [:__struct__, :__exception__], do: info Inspect.Map.inspect(map, Macro.inspect_atom(:literal, OpenApiSpex.Schema), infos, opts) From f3dcb80670ee1db8ad556e6f9b66d8a82b451dc8 Mon Sep 17 00:00:00 2001 From: Zach Daniel Date: Tue, 2 Jul 2024 09:57:58 -0400 Subject: [PATCH 3/3] chore: make backwards compatible, fix failing test --- lib/open_api_spex/inspect/for_schema.ex | 2 +- test/inspect/for_schema_test.exs | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/lib/open_api_spex/inspect/for_schema.ex b/lib/open_api_spex/inspect/for_schema.ex index b13d8322..551d2ad7 100644 --- a/lib/open_api_spex/inspect/for_schema.ex +++ b/lib/open_api_spex/inspect/for_schema.ex @@ -16,6 +16,6 @@ defimpl Inspect, for: OpenApiSpex.Schema do Map.has_key?(map, field), do: info - Inspect.Map.inspect(map, Macro.inspect_atom(:literal, OpenApiSpex.Schema), infos, opts) + 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