Skip to content

Instantly share code, notes, and snippets.

View javierg's full-sized avatar

Javier Guerra javierg

View GitHub Profile
@javierg
javierg / couch_query.ex
Last active October 24, 2016 11:28
Elixir CouchView from: http://pastebin.com/BEqKKH99#
defmodule CouchQuery do
use GenServer.Behaviour
def start_link() do
:gen_server.start_link(__MODULE__, [], [])
end
def set_timeout(pid, timeout) do
:gen_server.call(pid, {:set_timeout, timeout})
end
@javierg
javierg / simple_tcp.ex
Last active October 15, 2015 03:08
Simple TCP server on Elixir
# Shameless copy from http://learnyousomeerlang.com/buckets-of-sockets
defmodule SimpleTcp do
def start_server(port) do
pid = spawn fn ->
{:ok, listen} = :gen_tcp.listen(port, [:binary, {:active, false}])
spawn fn -> acceptor(listen) end
:timer.sleep(:infinity)
end
{:ok, pid}
defmodule PhoenixUeberauthComeonin.Repo.Migrations.CreateUsers do
use Ecto.Migration
def change do
create table(:users) do
add :name, :string
add :email, :string
add :password, :string
timestamps()
end
end
defp deps do
[...
{:ueberauth, "~> 0.4"},
{:ueberauth_identity, "~> 0.2"},
...]
def application do
[mod: {PhoenixUeberauthComeonin, []},
applications: [
...
ueberauth,
ueberauth_identity,
...
config :ueberauth, Ueberauth,
providers: [
identity: { Ueberauth.Strategy.Identity, [
callback_methods: ["POST"],
uid_field: :email,
nickname_field: :email,
request_path: "/sessions/new",
callback_path: "/sessions/identity/callback",
]}
]
scope "/sessions", PhoenixUeberauthComeonin do
pipe_through [:browser]
get "/new", SessionsController, :new
post "/identity/callback", SessionsController,
:identity_callback
end
defmodule PhoenixUeberauthComeonin.SessionsController do
use PhoenixUeberauthComeonin.Web, :controller
alias Ueberauth.Strategy.Helpers
plug Ueberauth
def new(conn, _params) do
render conn, "new.html", callback_url: Helpers.callback_url(conn)
end
defmodule PhoenixUeberauthComeonin.SessionsView do
use PhoenixUeberauthComeonin.Web, :view
end