Debugging
New features:
- debugging Drab functions directly from
IExconsole:
When starting Phoenix+Drab from iex -S mix phoenix.server the following debug instructions appear:
[debug]
Started Drab for /drab, handling events in DrabPoc.PageCommander
You may debug Drab functions in IEx by copy/paste the following:
import Drab.Core; import Drab.Query; import Drab.Modal; import Drab.Waiter
socket = GenServer.call(pid("0.666.0"), :get_socket)
Examples:
socket |> select(:htmls, from: "h4")
socket |> execjs("alert('hello from IEx!')")
socket |> alert("Title", "Sure?", buttons: [ok: "Azaliż", cancel: "Poniechaj"])
You may use it to debug. Just copy/paste this lines and you may remote control your browser from IEx REPL:
iex(1)> import Drab.Core; import Drab.Query; import Drab.Modal; import Drab.Waiter
Drab.Waiter
iex(2)> socket = GenServer.call(pid("0.666.0"), :get_socket)
%Phoenix.Socket{assigns: %{__action: :index,
__controller: DrabPoc.PageController, __drab_pid: #PID<0.666.0>,
...
transport_pid: #PID<0.1548.0>}
iex(3)> socket |> select(:htmls, from: "h4")
%{"__undefined_0" => "\n The jQuery in Elixir\n",
"__undefined_1" => "Async task status: <span id=\"async_task_status\" class=\"label label-primary\">ready</span>",
"__undefined_2" => "\n ©2016 Tomek \"Grych\" Gryszkiewicz, <a href=\"mailto:grych@tg.pl\">grych@tg.pl</a>\n",
...
"tail_dash_f" => "Server-Side Events: Display the Growing File (tail -F)",
"tens_of_processes" => "Tens of Tasks Running in Parallel on the Server and Communicating Back to the Browser",
"waiter" => "Drab Waiter"}More info on https://tg.pl/drab#debugging
- display information when handler die, different for prod and dev
More info on https://tg.pl/drab#errors