Packages
tableau
0.1.2
0.30.0
0.29.0
0.28.0
0.27.1
0.27.0
0.26.1
0.26.0
0.25.1
0.25.0
0.24.1
0.24.0
0.23.1
0.23.0
0.22.0
0.21.0
0.20.1
0.20.0
0.19.0
0.18.0
0.17.1
0.17.0
0.16.0
0.15.3
0.15.2
0.15.1
0.15.0
0.14.3
0.14.2
0.14.1
0.14.0
0.13.0
0.12.0
0.11.1
0.11.0
0.10.1
0.10.0
0.9.0
0.8.0
0.7.1
0.7.0
0.6.0
0.5.0
0.4.0
0.3.1
0.3.0
0.2.0
0.1.2
0.1.1
0.1.0
Static site generator for elixir
Current section
Files
Jump to
Current section
Files
lib/tableau/websocket.ex
defmodule Tableau.Websocket do
@moduledoc false
@behaviour :cowboy_websocket
@reloader_opts Application.compile_env(:tableau, :reloader, patterns: [])
require Logger
def init(request, state) do
{:cowboy_websocket, request, state}
end
def websocket_init(state) do
:ok = Tableau.LiveReload.init(name: :tableau_file_watcher)
{:ok, state}
end
def websocket_handle({:text, _text}, state) do
{:reply, {:text, "pong"}, state}
end
def websocket_handle({:ping, _text}, state) do
{:reply, {:pong, "PONG"}, state}
end
def websocket_info({:reload, _asset_type}, state) do
{:reply, {:text, "reload"}, state}
end
def websocket_info({:file_event, _watcher_pid, {_path, _event}} = file_event, state) do
Tableau.LiveReload.reload!(file_event, patterns: @reloader_opts[:patterns])
{:ok, state}
end
def websocket_info(message, state) do
Logger.warn("Unhandled message: #{inspect(message)}")
{:ok, state}
end
end