Skip to content

Commit 2b96c19

Browse files
committed
memory: extract shared FileStore for global/project memory and switch list mode to one-pass loading
1 parent 395d0a7 commit 2b96c19

6 files changed

Lines changed: 499 additions & 507 deletions

File tree

lib/cmd/memory.ex

Lines changed: 11 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -66,17 +66,16 @@ defmodule Cmd.Memory do
6666
|> Enum.map(fn scope ->
6767
case available?(scope) do
6868
true ->
69-
{:ok, titles} = list_titles(scope)
70-
71-
memories =
72-
titles
73-
|> Enum.sort()
74-
|> Enum.map(fn title ->
75-
{:ok, mem} = Memory.read(scope, title)
76-
{mem, nil}
69+
{:ok, memories} = list_memories(scope)
70+
71+
rendered_memories =
72+
memories
73+
|> Enum.sort_by(& &1.title)
74+
|> Enum.map(fn memory ->
75+
{memory, nil}
7776
end)
7877

79-
render_scope_section(scope, memories, %{mode: :list})
78+
render_scope_section(scope, rendered_memories, %{mode: :list})
8079

8180
false ->
8281
render_unavailable_scope_section(scope)
@@ -268,6 +267,9 @@ defmodule Cmd.Memory do
268267
defp available?(:global), do: true
269268
defp available?(:project), do: Memory.Project.is_available?()
270269

270+
defp list_memories(:global), do: Memory.Global.list_memories()
271+
defp list_memories(:project), do: Memory.Project.list_memories()
272+
271273
defp list_titles(:global), do: Memory.Global.list()
272274
defp list_titles(:project), do: Memory.Project.list()
273275
end

0 commit comments

Comments
 (0)