Current section
Files
Jump to
Current section
Files
lib/spider_man/pipeline/json_encode2file.ex
defmodule SpiderMan.Pipeline.JsonEncode2File do
@moduledoc false
@behaviour SpiderMan.Pipeline
@impl true
def call(%{key: key, value: value}, dir) do
file_name =
if is_binary(dir) do
Path.join([dir, key])
else
key
end
json = Jason.encode!(value)
File.write!(file_name, json)
end
@impl true
def prepare_for_start(arg, options) do
unless Code.ensure_loaded?(Jason) do
raise "Please add Jason lib to your deps."
end
dir =
case arg do
[dir: dir] -> dir
_ -> arg
end
{dir, options}
end
end