Write a Domain Specific Language similar to the Graphviz dot language.
A Domain Specific Language (DSL) is a small language optimized for a specific domain.
For example the DOT language allows
you to write a textual description of a graph which is then transformed into a picture by one of
the Graphviz tools (such as dot
). A simple graph looks like this:
graph {
graph [bgcolor="yellow"]
a [color="red"]
b [color="blue"]
a -- b [color="green"]
}
Putting this in a file example.dot
and running dot example.dot -T png -o example.png
creates an image example.png
with red and blue circle
connected by a green line on a yellow background.
Create a DSL similar to the dot language.
Execute the tests with:
$ mix test
In the test suites, all but the first test have been skipped.
Once you get a test passing, you can unskip the next one by
commenting out the relevant @tag :pending
with a #
symbol.
For example:
# @tag :pending
test "shouting" do
assert Bob.hey("WATCH OUT!") == "Whoa, chill out!"
end
Or, you can enable all the tests by commenting out the
ExUnit.configure
line in the test suite.
# ExUnit.configure exclude: :pending, trace: true
If you're stuck on something, it may help to look at some of the available resources out there where answers might be found.
It's possible to submit an incomplete solution so you can see how others have completed the exercise.