Skip to content

Commit 30c9af3

Browse files
author
José Valim
committed
Merge pull request #1994 from devinus/eex-assigns-dict
Allow EEx.AssignsEngine to accept any Dict.t
2 parents 17a5c37 + f42055b commit 30c9af3

File tree

2 files changed

+7
-2
lines changed

2 files changed

+7
-2
lines changed

lib/eex/lib/eex/smart_engine.ex

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -88,7 +88,7 @@ defmodule EEx.AssignsEngine do
8888
defmacro __using__(_) do
8989
quote unquote: false do
9090
defp transform({ :@, line, [{ name, _, atom }] }) when is_atom(name) and is_atom(atom) do
91-
quote do: Keyword.get(var!(assigns), unquote(name))
91+
quote do: Dict.get(var!(assigns), unquote(name))
9292
end
9393

9494
defp transform(arg) do

lib/eex/test/eex/smart_engine_test.exs

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,15 @@ defmodule EEx.SmartEngineTest do
77
assert_eval "foo bar", "foo bar"
88
end
99

10-
test "evaluates with assigns" do
10+
test "evaluates with assigns as a ListDict" do
1111
assert_eval "1", "<%= @foo %>", assigns: [foo: 1]
1212
end
1313

14+
test "evaluates with assigns as a HashDict" do
15+
assigns = HashDict.new [foo: 1]
16+
assert_eval "1", "<%= @foo %>", assigns: assigns
17+
end
18+
1419
test "evaluates with loops" do
1520
assert_eval "1\n2\n3\n", "<%= lc x inlist [1, 2, 3] do %><%= x %>\n<% end %>"
1621
end

0 commit comments

Comments
 (0)