Skip to content

Commit ebb81bf

Browse files
committed
ensure the extension module is loaded
1 parent 2be0b2c commit ebb81bf

File tree

2 files changed

+23
-20
lines changed

2 files changed

+23
-20
lines changed

config/config.exs

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
use Mix.Config
1+
import Config
22

33
# Use Jason for JSON parsing in Phoenix
44
# config :phoenix, :json_library, Jason

lib/kaffy/utils.ex

+22-19
Original file line numberDiff line numberDiff line change
@@ -332,27 +332,30 @@ defmodule Kaffy.Utils do
332332
end
333333

334334
def extensions(conn) do
335-
exts = env(:extensions, [])
336-
337-
stylesheets =
338-
Enum.map(exts, fn ext ->
335+
env(:extensions, [])
336+
|> Enum.reduce(
337+
%{stylesheets: [], javascripts: []},
338+
fn ext, acc ->
339339
Code.ensure_loaded(ext)
340-
case function_exported?(ext, :stylesheets, 1) do
341-
true -> ext.stylesheets(conn)
342-
false -> []
343-
end
340+
stylesheets =
341+
if function_exported?(ext, :stylesheets, 1) do
342+
ext.stylesheets(conn)
343+
else
344+
[]
345+
end
346+
347+
javascripts =
348+
if function_exported?(ext, :javascripts, 1) do
349+
ext.javascripts(conn)
350+
else
351+
[]
352+
end
353+
354+
%{
355+
stylesheets: stylesheets ++ acc.stylesheets,
356+
javascripts: javascripts ++ acc.javascripts
357+
}
344358
end)
345-
346-
javascripts =
347-
Enum.map(exts, fn ext ->
348-
Code.ensure_loaded(ext)
349-
case function_exported?(ext, :javascripts, 1) do
350-
true -> ext.javascripts(conn)
351-
false -> []
352-
end
353-
end)
354-
355-
%{stylesheets: stylesheets, javascripts: javascripts}
356359
end
357360

358361
defp env(key, default \\ nil) do

0 commit comments

Comments
 (0)