From a1da13d1186dc8feaae0f2a8400909a58930f528 Mon Sep 17 00:00:00 2001 From: Piotr Szmielew Date: Tue, 11 Jun 2024 10:51:28 +0200 Subject: [PATCH] refactor(matcher/map): disable local `Map` matcher This restores commit 8b896ea22e7d4143bfc199a1e76ab9926511db9e which has been apparently lost in the repo - maybe due to wrong force push or due to repo GC activity. --- lib/solid/matcher.ex | 43 +++++++++++++++++++++++-------------------- 1 file changed, 23 insertions(+), 20 deletions(-) diff --git a/lib/solid/matcher.ex b/lib/solid/matcher.ex index 4b84143..21a5ecf 100644 --- a/lib/solid/matcher.ex +++ b/lib/solid/matcher.ex @@ -25,29 +25,32 @@ defimpl Solid.Matcher, for: List do end end -defimpl Solid.Matcher, for: Map do - def match(data, []) do - {:ok, data} - end +# The built-in Solid matcher for map is disabled for now, in favour of the local implementation in +# Yggdrasil, which has some very app specific fallback behaviour. +# +# defimpl Solid.Matcher, for: Map do +# def match(data, []) do +# {:ok, data} +# end - def match(data, ["size"]) do - {:ok, Map.get(data, "size", Enum.count(data))} - end +# def match(data, ["size"]) do +# {:ok, Map.get(data, "size", Enum.count(data))} +# end - def match(data, [key | []]) do - case Map.fetch(data, key) do - {:ok, value} -> {:ok, value} - _ -> {:error, :not_found} - end - end +# def match(data, [key | []]) do +# case Map.fetch(data, key) do +# {:ok, value} -> {:ok, value} +# _ -> {:error, :not_found} +# end +# end - def match(data, [key | keys]) do - case Map.fetch(data, key) do - {:ok, value} -> @protocol.match(value, keys) - _ -> {:error, :not_found} - end - end -end +# def match(data, [key | keys]) do +# case Map.fetch(data, key) do +# {:ok, value} -> @protocol.match(value, keys) +# _ -> {:error, :not_found} +# end +# end +# end defimpl Solid.Matcher, for: BitString do def match(current, []), do: {:ok, current}