Skip to content

Commit

Permalink
small improvement set_env and minor bugfixes
Browse files Browse the repository at this point in the history
  • Loading branch information
manuel-rubio committed Jun 15, 2023
1 parent 9bc2616 commit 9200d22
Show file tree
Hide file tree
Showing 4 changed files with 30 additions and 23 deletions.
14 changes: 12 additions & 2 deletions lib/lambdapad.ex
Expand Up @@ -246,8 +246,18 @@ defmodule Lambdapad do
config = var!(conf, Lambdapad.Blog)

true = @content in ~w[ config assets checks transforms widgets pages ]a
new_conf = Map.put(config, unquote(key), unquote(value))
var!(conf, Lambdapad.Blog) = new_conf
var!(conf, Lambdapad.Blog) = Map.put(config, unquote(key), unquote(value))
end
end

defmacro set_env([{key, value}]) do
quote do
config = var!(conf, Lambdapad.Blog)
key = unquote(key)

true = @content in ~w[ config assets checks transforms widgets pages ]a
env = Map.put(config[:env] || %{}, key, unquote(value))
var!(conf, Lambdapad.Blog) = Map.put(config, :env, env)
end
end

Expand Down
13 changes: 13 additions & 0 deletions lib/lambdapad/generate.ex
Expand Up @@ -15,6 +15,10 @@ defmodule Lambdapad.Generate do
"""
def resolve_uri(config, name, funct_or_uri, vars, index \\ nil)

def resolve_uri(_config, name, nil, _vars, _index) do
raise "Entry named #{name} needs a valid :uri key"
end

def resolve_uri(_config, _name, funct, vars, index) when is_function(funct) do
funct.(index, vars)
end
Expand Down Expand Up @@ -42,6 +46,11 @@ defmodule Lambdapad.Generate do

var_name when is_binary(var_name) ->
[{var_name, Config.to_proplist(data)}]

_ ->
raise """
var_name must be specified for page data, available keys: #{inspect(Map.keys(page_data))}
"""
end
end

Expand Down Expand Up @@ -74,6 +83,10 @@ defmodule Lambdapad.Generate do
abs_path
end

def build_file_abspath(_output_dir, url, nil) do
raise "The :uri_type parameter must set a valid valid: :dir or :file for #{url}"
end

@doc """
Creates the chain of function calling based on the list of
transforms to be run. This time is for `transform_on_item`
Expand Down
2 changes: 1 addition & 1 deletion lib/lambdapad/generate/sources.ex
Expand Up @@ -48,7 +48,7 @@ defmodule Lambdapad.Generate.Sources do
data =
Path.join(workdir, source)
|> Path.wildcard()
|> Enum.map(&get_file(&1, page_data[:headers], page_data[:excerpt]))
|> Enum.map(&get_file(&1, !!page_data[:headers], !!page_data[:excerpt]))

Pockets.put(@table, source, data)
data
Expand Down
24 changes: 4 additions & 20 deletions test/support/blog.exs
Expand Up @@ -21,11 +21,7 @@ blog do
set(template: "recent-posts.html")
set(format: :eex)

set(
env: %{
site_root: "/"
}
)
set_env(site_root: "/")
end

pages "about" do
Expand All @@ -35,11 +31,7 @@ blog do
set(uri: "/about")
set(format: :eex)

set(
env: %{
site_root: "/"
}
)
set_env(site_root: "/")
end

pages "posts" do
Expand All @@ -50,11 +42,7 @@ blog do
set(uri: "/posts")
set(format: :eex)

set(
env: %{
site_root: "/"
}
)
set_env(site_root: "/")
end

pages "individual posts" do
Expand All @@ -64,10 +52,6 @@ blog do
set(uri: "/posts/{{ post.id }}")
set(format: :eex)

set(
env: %{
site_root: "/"
}
)
set_env(site_root: "/")
end
end

0 comments on commit 9200d22

Please sign in to comment.