Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion frameworks/Elixir/phoenix/lib/hello/repo.ex
Original file line number Diff line number Diff line change
@@ -1,3 +1,3 @@
defmodule Hello.Repo do
use Ecto.Repo, otp_app: :hello
use Ecto.Repo, otp_app: :hello
end
13 changes: 6 additions & 7 deletions frameworks/Elixir/phoenix/mix.exs
Original file line number Diff line number Diff line change
Expand Up @@ -3,8 +3,8 @@ defmodule Hello.Mixfile do

def project do
[app: :hello,
version: "0.0.1",
elixir: "~> 1.1",
version: "0.1.0",
elixir: "~> 1.3",
elixirc_paths: elixirc_paths(Mix.env),
compilers: [:phoenix] ++ Mix.compilers,
build_embedded: Mix.env == :prod,
Expand All @@ -26,12 +26,11 @@ defmodule Hello.Mixfile do
#
# Type `mix help deps` for examples and options
defp deps do
[{:phoenix, "~> 1.0.3"},
{:phoenix_ecto, "~> 1.1"},
[{:phoenix, "~> 1.2"},
{:phoenix_ecto, "~> 3.0"},
{:postgrex, ">= 0.0.0"},
{:cowboy, "~> 1.0.0"},
{:phoenix_html, "~> 2.1"},
{:phoenix_live_reload, "~> 1.0", only: :dev},
{:exrm, "~> 0.19.8"}]
{:phoenix_html, "~> 2.6"},
{:phoenix_live_reload, "~> 1.0", only: :dev}]
end
end
5 changes: 3 additions & 2 deletions frameworks/Elixir/phoenix/setup.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,8 @@ rm -rf _build deps

export MIX_ENV=prod
mix local.hex --force
mix deps.get --force
mix local.rebar --force
mix deps.get --force --only prod
mix compile --force

elixir --detached -S mix phoenix.server
elixir --erl "+K true" --detached -pa _build/prod/consolidated -S mix phoenix.server
40 changes: 30 additions & 10 deletions frameworks/Elixir/phoenix/web/controllers/page_controller.ex
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,22 @@ defmodule Hello.PageController do
alias Hello.Fortune

def index(conn, _params) do
json conn, %{"TE Benchmarks\n" => "Started"}
conn
|> merge_resp_headers(%{"content-type" => "application/json"})
|> json(%{"TE Benchmarks\n" => "Started"})
end

# avoid namespace collision
def _json(conn, _params) do
json conn, %{message: "Hello, world!"}
conn
|> merge_resp_headers(%{"content-type" => "application/json"})
|> json(%{message: "Hello, world!"})
end

def db(conn, _params) do
json conn, Repo.get(World, :random.uniform(10000))
conn
|> merge_resp_headers(%{"content-type" => "application/json"})
|> json(Repo.get(World, :rand.uniform(10000)))
end

def queries(conn, params) do
Expand All @@ -26,11 +32,20 @@ defmodule Hello.PageController do
rescue
ArgumentError -> 1
end
json conn, Enum.map(1..q, fn _ -> Repo.get(World, :random.uniform(10000)) end)

conn
|> merge_resp_headers(%{"content-type" => "application/json"})
|> json(Enum.map(1..q, fn _ -> Repo.get(World, :rand.uniform(10000)) end))
end

def fortunes(conn, _params) do
fortunes = List.insert_at(Repo.all(Fortune), 0, %Fortune{:id => 0, :message => "Additional fortune added at request time."})
additional_fortune = %Fortune{
id: 0,
message: "Additional fortune added at request time."
}

fortunes = [additional_fortune | Repo.all(Fortune)]

render conn, "fortunes.html", fortunes: Enum.sort(fortunes, fn f1, f2 -> f1.message < f2.message end)
end

Expand All @@ -44,14 +59,19 @@ defmodule Hello.PageController do
rescue
ArgumentError -> 1
end
json conn, Enum.map(1..q, fn _ ->
w = Repo.get(World, :random.uniform(10000))
changeset = World.changeset(w, %{randomNumber: :random.uniform(10000)})

conn
|> merge_resp_headers(%{"content-type" => "application/json"})
|> json(Enum.map(1..q, fn _ ->
w = Repo.get(World, :rand.uniform(10000))
changeset = World.changeset(w, %{randomNumber: :rand.uniform(10000)})
Repo.update(changeset)
w end)
w end))
end

def plaintext(conn, _params) do
text conn, "Hello, world!"
conn
|> merge_resp_headers(%{"content-type" => "text/plain"})
|> text("Hello, world!")
end
end
6 changes: 3 additions & 3 deletions frameworks/Elixir/phoenix/web/models/fortune.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ defmodule Hello.Fortune do
field :message, :string
end

@required_fields ~w(message)
@required_fields ~w(message)a
@optional_fields ~w()

def changeset(model, params \\ nil) do
def changeset(model, params \\ %{}) do
model
|> cast(params, @required_fields, @optional_fields)
|> cast(params, @required_fields)
end
end
6 changes: 3 additions & 3 deletions frameworks/Elixir/phoenix/web/models/world.ex
Original file line number Diff line number Diff line change
Expand Up @@ -6,11 +6,11 @@ defmodule Hello.World do
field :randomnumber, :integer
end

@required_fields ~w(randomnumber)
@required_fields ~w(randomnumber)a
@optional_fields ~w()

def changeset(model, params \\ nil) do
def changeset(model, params \\ %{}) do
model
|> cast(params, @required_fields, @optional_fields)
|> cast(params, @required_fields)
end
end
Original file line number Diff line number Diff line change
@@ -1 +1 @@
<!DOCTYPE html><html lang="en"><head><title>Fortunes</title></head><body><%= @inner %></body></html>
<!DOCTYPE html><html lang="en"><head><title>Fortunes</title></head><body><%= render @view_module, @view_template, assigns %></body></html>
16 changes: 10 additions & 6 deletions frameworks/Elixir/phoenix/web/web.ex
Original file line number Diff line number Diff line change
Expand Up @@ -14,7 +14,11 @@ defmodule Hello.Web do

def model do
quote do
use Ecto.Model
use Ecto.Schema

import Ecto
import Ecto.Changeset
import Ecto.Query
end
end

Expand All @@ -24,7 +28,7 @@ defmodule Hello.Web do

# Alias the data repository and import query/model functions
alias Hello.Repo
import Ecto.Model
import Ecto
import Ecto.Query

# Import URL helpers from the router
Expand All @@ -40,11 +44,11 @@ defmodule Hello.Web do
import Phoenix.Controller, only: [get_csrf_token: 0, get_flash: 2,
action_name: 1, controller_module: 1]

# Import URL helpers from the router
import Hello.Router.Helpers

# Import all HTML functions (forms, tags, etc)
use Phoenix.HTML

import Hello.Router.Helpers
end
end

Expand All @@ -60,8 +64,8 @@ defmodule Hello.Web do
use Phoenix.Channel
# Alias the data repository and import query/model functions
alias Hello.Repo
import Ecto.Model
import Ecto.Query, only: [from: 2]
import Ecto
import Ecto.Query
end
end

Expand Down
4 changes: 2 additions & 2 deletions toolset/setup/linux/languages/elixir.sh
Original file line number Diff line number Diff line change
Expand Up @@ -8,11 +8,11 @@ RETCODE=$(fw_exists ${IROOT}/elixir.installed)
return 0; }

ELIXIR_HOME=$IROOT/elixir
VERSION="1.1.0-1"
VERSION="1.3.2-1"
RELEASE="trusty"
ARCH="amd64"

fw_get -O http://packages.erlang-solutions.com/site/esl/elixir/FLAVOUR_2_download/elixir_${VERSION}~ubuntu~${RELEASE}_${ARCH}.deb
fw_get -O http://packages.erlang-solutions.com/debian/pool/elixir_${VERSION}~ubuntu~${RELEASE}_${ARCH}.deb
dpkg -x elixir_${VERSION}~ubuntu~${RELEASE}_${ARCH}.deb $IROOT/elixir
$IROOT/erlang/usr/lib/erlang/Install -minimal $IROOT/erlang/usr/lib/erlang

Expand Down