From 669cc7aebf5662b469ed0a2cde338c9088faf4f6 Mon Sep 17 00:00:00 2001 From: Julio Biason Date: Thu, 16 Jul 2020 20:35:43 -0300 Subject: [PATCH] Hello World Elixir --- elixir/hello-world/README.md | 57 ++++++++++++++++++++ elixir/hello-world/lib/hello_world.ex | 9 ++++ elixir/hello-world/mix.exs | 28 ++++++++++ elixir/hello-world/test/hello_world_test.exs | 7 +++ elixir/hello-world/test/test_helper.exs | 2 + 5 files changed, 103 insertions(+) create mode 100644 elixir/hello-world/README.md create mode 100644 elixir/hello-world/lib/hello_world.ex create mode 100644 elixir/hello-world/mix.exs create mode 100644 elixir/hello-world/test/hello_world_test.exs create mode 100644 elixir/hello-world/test/test_helper.exs diff --git a/elixir/hello-world/README.md b/elixir/hello-world/README.md new file mode 100644 index 0000000..5cf79d0 --- /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 +$ mix test +``` + +### 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/lib/hello_world.ex b/elixir/hello-world/lib/hello_world.ex new file mode 100644 index 0000000..3edfef7 --- /dev/null +++ b/elixir/hello-world/lib/hello_world.ex @@ -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/mix.exs b/elixir/hello-world/mix.exs new file mode 100644 index 0000000..2ba5afc --- /dev/null +++ b/elixir/hello-world/mix.exs @@ -0,0 +1,28 @@ +defmodule HelloWorld.MixProject do + use Mix.Project + + def project do + [ + app: :hello_world, + version: "0.1.0", + # elixir: "~> 1.8", + start_permanent: Mix.env() == :prod, + deps: deps() + ] + end + + # Run "mix help compile.app" to learn about applications. + def application do + [ + extra_applications: [:logger] + ] + end + + # Run "mix help deps" to learn about dependencies. + defp deps do + [ + # {:dep_from_hexpm, "~> 0.3.0"}, + # {:dep_from_git, git: "https://github.com/elixir-lang/my_dep.git", tag: "0.1.0"} + ] + end +end diff --git a/elixir/hello-world/test/hello_world_test.exs b/elixir/hello-world/test/hello_world_test.exs new file mode 100644 index 0000000..cfd7952 --- /dev/null +++ b/elixir/hello-world/test/hello_world_test.exs @@ -0,0 +1,7 @@ +defmodule HelloWorldTest do + use ExUnit.Case + + test "says 'Hello, World!'" do + assert HelloWorld.hello() == "Hello, World!" + end +end diff --git a/elixir/hello-world/test/test_helper.exs b/elixir/hello-world/test/test_helper.exs new file mode 100644 index 0000000..35fc5bf --- /dev/null +++ b/elixir/hello-world/test/test_helper.exs @@ -0,0 +1,2 @@ +ExUnit.start() +ExUnit.configure(exclude: :pending, trace: true)