diff --git a/elixir/hello-world/README.md b/elixir/hello-world/README.md new file mode 100644 index 0000000..1ddefdf --- /dev/null +++ b/elixir/hello-world/README.md @@ -0,0 +1,57 @@ +# Hello World + +The classical introductory exercise. Just say "Hello, World!". + +["Hello, World!"](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) is +the traditional first program for beginning programming in a new language +or environment. + +The objectives are simple: + +- Write a function that returns the string "Hello, World!". +- Run the test suite and make sure that it succeeds. +- Submit your solution and check it at the website. + +If everything goes well, you will be ready to fetch your first real exercise. + +## Running tests + +Execute the tests with: + +```bash +$ elixir hello_world_test.exs +``` + +### Pending tests + +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: + +```elixir +# @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. + +```elixir +# ExUnit.configure exclude: :pending, trace: true +``` + +If you're stuck on something, it may help to look at some of +the [available resources](https://exercism.io/tracks/elixir/resources) +out there where answers might be found. + +## Source + +This is an exercise to introduce users to using Exercism [http://en.wikipedia.org/wiki/%22Hello,_world!%22_program](http://en.wikipedia.org/wiki/%22Hello,_world!%22_program) + +## Submitting Incomplete Solutions +It's possible to submit an incomplete solution so you can see how others have completed the exercise. diff --git a/elixir/hello-world/hello_world.exs b/elixir/hello-world/hello_world.exs new file mode 100644 index 0000000..3edfef7 --- /dev/null +++ b/elixir/hello-world/hello_world.exs @@ -0,0 +1,9 @@ +defmodule HelloWorld do + @doc """ + Simply returns "Hello, World!" + """ + @spec hello :: String.t() + def hello do + "Hello, World!" + end +end diff --git a/elixir/hello-world/hello_world_test.exs b/elixir/hello-world/hello_world_test.exs new file mode 100644 index 0000000..6b3dfbb --- /dev/null +++ b/elixir/hello-world/hello_world_test.exs @@ -0,0 +1,14 @@ +if !System.get_env("EXERCISM_TEST_EXAMPLES") do + Code.load_file("hello_world.exs", __DIR__) +end + +ExUnit.start() +ExUnit.configure(trace: true) + +defmodule HelloWorldTest do + use ExUnit.Case + + test "says 'Hello, World!'" do + assert HelloWorld.hello() == "Hello, World!" + end +end