Alex Troush - IEx Cheat Sheet. Guide to Win with IEx on your Day to Day Job

Post on 05-Apr-2017

58 views 5 download

Transcript of Alex Troush - IEx Cheat Sheet. Guide to Win with IEx on your Day to Day Job

IEx Cheat Sheet

@troush69 | github.com/Troush

Presentation.Supervisor.start_link(self(), {:slide, 1})

Starting IEx 1 iex 2 3 iex -S mix #Starting IEx in the context of your app

1 iex(1)> sum = fn (a, b) -> 2 ...(1)> c + b 3 BREAK: (a)bort (c)ontinue (p)roc info (i)nfo (l)oaded 4 (v)ersion (k)ill (D)b-tables (d)istribution

“ctrl+c”

Ctrl + c menu actually `erl` shell menu● (a)bort - abort interactive mode. Eg: Exit● (c)ontinue - continue interactive mode● (p)roc info - get processes information ● (i)nfo - get Erlang runtime information● (l)oaded – list of loaded modules to current shell● (v)ersion – version of `erl`● (k)ill – kill process menu● (D)b-tables - get info about d/ets avaible in current

shell● (d)istribution - distribution info

Ctrl + g 1 User switch command 2 --> s 'Elixir.IEx' 3 --> c 4 5 6 User switch command 7 --> c 1

Ctrl + g

● c [nn] - connect to job● i [nn] - interrupt job● k [nn] - kill job● j - list all jobs● s [shell] - start local shell● r [node [shell]] - start remote shell● q - quit erlang● ? | h - this message

Ctrl-\

What I didn’t know is that you can exit the shell by sending Ctrl-\. The shell will exit immediately. As far as I know, it has the same effect as aborting the shell in the Break command, it doesn’t affect remote nodes and it also works outside of iex (for example, you can use to terminate your tests)

.iex.ex

Every time IEx starts it will look for a .iex.exs configuration file. If it’s not present in the current directory, then the user’s home directory (~/.iex.exs) will be used as the fallback.

.iex.ex

1 IO.puts "Hello, World"

$ iex

Erlang/OTP 19 [erts-8.2] [source] [64-bit] [smp:8:8] [async-threads:10] [hipe] [kernel-poll:false]

Interactive Elixir (1.4.0) - press Ctrl+C to exit (type h() ENTER for help)

Hello, World

iex(1)>

Configuring the shell

No limit on IO.inspect

IEx.configure [inspect: [limit: :infinity]]

IEx Helpers

h Module

h Module.fn/arity

v(n \\ -1)Returns the value of the nth expression in the history.

IEx.pry()

r(module)Recompiles and reloads the given module.

Please note that all the modules defined in the same file as module are recompiled and reloaded.

respawnRespawns the current shell by starting a new shell process.

Returns true if it worked.

Debugging Phoenix

Views

Debugging Phoenix

Templates

Debugging Phoenix

Tests

Don’t forget to run your test suite with:

iex -S mix test --trace

Questions?