This is a wrapper for yamerl - a native Erlang YAML
parser which brings all of the functionalities to Elixir language.
Add Yaml Elixir
as a dependency in your mix.exs
file.
defp deps do
[
# ...
{ :yaml_elixir, "~> 1.0.0" },
{ :yamerl, github: "yakaz/yamerl" }
]
end
You should also update your applications list to include Yaml Elixir
:
def application do
[
applications: [
# ...
:yaml_elixir
]
]
end
Once you've done that, run mix deps.get
in your command line to fetch the dependency.
With Yaml Elixir
you have an access to two methods, one for parsing a string and an another one for parsing a file.
Run iex -S mix
in your terminal to try how their works.
iex(1)> yaml = """
...(1)> a: a
...(1)> b: 1
...(1)> c: true
...(1)> d: ~
...(1)> e: nil
...(1)> """
" a: a\n b: 1\n c: true\n d: ~\n e: nil\n"
iex(2)> YamlElixir.read_from_string yaml
%{"a" => "a", "b" => 1, "c" => true, "d" => nil, "e" => "nil"}
iex(1)> path = File.cwd! |> Path.join("test/fixtures/flat.yml")
"/Users/squixy/Desktop/yaml-elixir/test/fixtures/flat.yml"
iex(2)> YamlElixir.read_from_file path
%{"a" => "a", "b" => 1, "c" => true, "d" => nil, "e" => []}
You can find more examples in test
directory.
In case of any problems or suggestions do not hesitate and create a pull request.