Skip to content

Instantly share code, notes, and snippets.

@laurenfackler
Last active September 7, 2020 20:35
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save laurenfackler/ea02c4ad74cadc84a57995f6eb4ca9d7 to your computer and use it in GitHub Desktop.
Save laurenfackler/ea02c4ad74cadc84a57995f6eb4ca9d7 to your computer and use it in GitHub Desktop.
Ruby -> Elixir User Example
defmodule MyProject.User do
defstruct [:first, :last, :role]
def is_admin?(%__MODULE__{role: "admin"}), do: true
def is_admin?(_user), do: false
def full_name(user, _opts \\ []) when not is_nil(user) do
build_full_name(user)
end
def last_comma_first(user) do
end
defp build_full_name(user) do
[user.last, user.first]
|> IO.inspect()
|> Enum.join(", ")
"#{user.first} #{user.last}"
end
end
defmodule MyProject.UserTest do
use ExUnit.Case
alias MyProject.User
setup [:create_user]
describe "is_admin?" do
test "when role is admin", %{user: user} do
user = %{user | role: "admin"}
assert true = User.is_admin?(user)
end
test "when role is NOT admin", %{user: user} do
user = %{user | role: "manager"}
assert User.is_admin?(user) == false
end
end
defp create_user(_) do
{:ok, user: %User{role: ""}}
end
end
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment