Packages

'Mail merging' with Ecto structs. A parser to interpolate MediaWiki-like `[[foo.bar]]` markup using data from Ecto schemas.

Current section

Files

Jump to
mecto lib markup_parser field.ex
Raw

lib/markup_parser/field.ex

defmodule Mecto.MarkupParser.Field do
@moduledoc false
import NimbleParsec
@dialyzer :no_opaque
defp identifier(), do: ascii_string([?a..?z, ?A..?Z, ?0..?9, ?_], min: 1)
def bracket_access do
ignore(string("["))
|> concat(integer(min: 1))
|> ignore(string("]"))
end
def dot_access do
ignore(string("."))
|> concat(identifier())
end
def field do
identifier()
|> repeat(choice([dot_access(), bracket_access()]))
end
end