/yaml-elixir

Yaml parser for Elixir based on native Erlang implementation

Primary LanguageElixir

Yaml for Elixir

Build Status

How does it work?

This is a wrapper for yamerl - a native Erlang YAML parser which brings all of the functionalities to Elixir language.

Installation

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.

Usage

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.

Parsing string

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"}

Parsing file

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.

Contribution

In case of any problems or suggestions do not hesitate and create a pull request.