diff --git a/elixir/github_repo_cloner b/elixir/github_repo_cloner index 8ed8f11..38245ab 100755 Binary files a/elixir/github_repo_cloner and b/elixir/github_repo_cloner differ diff --git a/elixir/lib/cloner.ex b/elixir/lib/cloner.ex index dfe5f05..9ab2f53 100644 --- a/elixir/lib/cloner.ex +++ b/elixir/lib/cloner.ex @@ -8,7 +8,7 @@ defmodule GithubRepoCloner.Cloner do username |> request_repo_info |> parse_response - |> clone_repos + |> clone_repos(username) end def clone, do: true @@ -23,9 +23,9 @@ defmodule GithubRepoCloner.Cloner do defp parse_response({:ok, %Tesla.Env{status: _}}), do: [] - defp clone_repos(repo_info) do + defp clone_repos(repo_info, username) do repo_info - |> Enum.map(fn(item) -> "git clone #{item["clone_url"]}" end) + |> Enum.map(fn(%{"clone_url" => clone_url, "name" => name}) -> "git clone #{clone_url} #{username}/#{name}" end) |> Enum.join(" & ") |> run_command end diff --git a/elixir/test/cloner_test.exs b/elixir/test/cloner_test.exs index 03989a3..34fa0b6 100644 --- a/elixir/test/cloner_test.exs +++ b/elixir/test/cloner_test.exs @@ -7,9 +7,14 @@ defmodule GithubRepoCloner.ClonerTest do username = "murjax" clone_url1 = "https://github.com/murjax/spring_engine.git" clone_url2 = "https://github.com/murjax/burger_bot.git" - repo_info = [%{"clone_url" => clone_url1}, %{"clone_url" => clone_url2}] - command1 = "git clone #{clone_url1}" - command2 = "git clone #{clone_url2}" + name1 = "spring_engine" + name2 = "burger_bot" + repo_info = [ + %{"name" => name1, "clone_url" => clone_url1}, + %{"name" => name2, "clone_url" => clone_url2} + ] + command1 = "git clone #{clone_url1} #{username}/#{name1}" + command2 = "git clone #{clone_url2} #{username}/#{name2}" final_command = "#{command1} & #{command2}" expected_result = {:ok, "Command executed: #{final_command}"}