View Source Hangman.Text.Client (Hangman Game v0.1.57)

Text client for the Hangman Game.

Based on the course Elixir for Programmers by Dave Thomas.

Link to this section Summary

Functions

Starts locally or remotely a Hangman Game named game_name. The default value for game_name is provided by function Hangman.Game.random_name/0.

Link to this section Functions

Link to this function

start(game_name \\ Hangman.Game.random_name())

View Source
@spec start(Hangman.Game.name()) :: no_return()

Starts locally or remotely a Hangman Game named game_name. The default value for game_name is provided by function Hangman.Game.random_name/0.

locally-when-local-node-is-not-alive

Locally when local node is not alive

Start each client like so:

  • cd hangman_text_client
  • iex -S mix
  • :observer.start() # optional
  • Hangman.Text.Client.start()

remotely-when-local-node-is-alive

Remotely when local node is alive

App :hangman_engine must run in node :hangman_engine@<hostname> where <hostname> is either the full host name if long names are used, or the first part of the full host name if short names are used.

short-names

Short names

Start the engine:

  • cd hangman_engine
  • iex --sname hangman_engine -S mix
  • :observer.start() # optional

Start each client in a different node:

  • cd hangman_text_client
  • set "MIX_ENV=dev" && iex --sname mike -S mix
  • Hangman.Text.Client.start()
  • cd hangman_text_client
  • set "MIX_ENV=dev" && iex --sname joe -S mix
  • Hangman.Text.Client.start()
  • etc.

long-names

Long names

Start the engine:

  • cd hangman_engine
  • iex --name hangman_engine@rays.supratech.ca -S mix
  • :observer.start() # optional

Start each client in a different node:

  • cd hangman_text_client
  • set "MIX_ENV=prod" && iex --name mike@rays.supratech.ca -S mix
  • Hangman.Text.Client.start()
  • cd hangman_text_client
  • set "MIX_ENV=prod" && iex --name joe@rays.supratech.ca -S mix
  • Hangman.Text.Client.start()
  • etc.

short-names-using-releases

Short names using releases

Start the engine:

  • cd hangman_engine
  • iex --sname hangman_engine --cookie fortune -S mix
  • :observer.start() # optional

Start each client in a different node:

  • cd hangman_text_client
  • set RELEASE_NODE=mike@rays
  • "_build/dev/rel/hangman_text_client/bin/hangman_text_client" start_iex
  • Hangman.Text.Client.start()
  • cd hangman_text_client
  • set RELEASE_NODE=joe@rays
  • "_build/dev/rel/hangman_text_client/bin/hangman_text_client" start_iex
  • Hangman.Text.Client.start()
  • etc.

long-names-using-releases

Long names using releases

Start the engine:

  • cd hangman_engine
  • iex --name hangman_engine@rays.supratech.ca --cookie fortune -S mix
  • :observer.start() # optional

Start each client in a different node:

  • cd hangman_text_client
  • set RELEASE_NODE=mike@rays.supratech.ca
  • "_build/prod/rel/hangman_text_client/bin/hangman_text_client" start_iex
  • Hangman.Text.Client.start()
  • cd hangman_text_client
  • set RELEASE_NODE=joe@rays.supratech.ca
  • "_build/prod/rel/hangman_text_client/bin/hangman_text_client" start_iex
  • Hangman.Text.Client.start()
  • etc.