Skip to content
This repository has been archived by the owner on Oct 24, 2022. It is now read-only.

Commit

Permalink
Tests passing for Elixir 1.6 with 'mix format' applied
Browse files Browse the repository at this point in the history
  • Loading branch information
suvash committed Feb 6, 2018
1 parent 3cd350f commit 086785d
Show file tree
Hide file tree
Showing 20 changed files with 1,240 additions and 930 deletions.
7 changes: 7 additions & 0 deletions .formatter.exs
Original file line number Diff line number Diff line change
@@ -0,0 +1,7 @@
[
inputs: [
"mix.exs",
"lib/**/*.ex",
"test/**/*.exs"
]
]
2 changes: 1 addition & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
FROM elixir:1.5.2
FROM elixir:1.6
ENV DEBIAN_FRONTEND="noninteractive"

RUN mkdir -p /usr/src/app
Expand Down
3 changes: 3 additions & 0 deletions Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -37,5 +37,8 @@ bash: run-hulaaki ## Spawn a bash shell for hulaaki service
test: CMD=mix test
test: run-hulaaki ## Run the test for hulaaki service

format: CMD=mix format
format: run-hulaaki ## Run mix format on the library

prune: ## Cleanup dangling/orphaned docker resources globally
docker system prune --volumes -f
49 changes: 27 additions & 22 deletions lib/hulaaki.ex
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ defmodule Hulaaki do
alias Hulaaki.Message
alias Hulaaki.Encoder
alias Hulaaki.Decoder

@moduledoc """
Defines Packet protocol and provides implementations for Hulaaki Messages
"""
Expand All @@ -24,6 +25,7 @@ defmodule Hulaaki do

defimpl Packet, for: BitString do
def encode(binary), do: binary

def decode(binary) do
Decoder.decode(binary)
end
Expand All @@ -32,114 +34,117 @@ defmodule Hulaaki do
defimpl Packet, for: Message.Connect do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message) <>
Encoder.encode_payload(message)
Encoder.encode_variable_header(message) <> Encoder.encode_payload(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.ConnAck do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message)
Encoder.encode_fixed_header(message) <> Encoder.encode_variable_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.Publish do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message) <>
Encoder.encode_payload(message)
Encoder.encode_variable_header(message) <> Encoder.encode_payload(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.PubAck do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message)
Encoder.encode_fixed_header(message) <> Encoder.encode_variable_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.PubRec do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message)
Encoder.encode_fixed_header(message) <> Encoder.encode_variable_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.PubRel do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message)
Encoder.encode_fixed_header(message) <> Encoder.encode_variable_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.PubComp do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message)
Encoder.encode_fixed_header(message) <> Encoder.encode_variable_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.Subscribe do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message) <>
Encoder.encode_payload(message)
Encoder.encode_variable_header(message) <> Encoder.encode_payload(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.SubAck do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message) <>
Encoder.encode_payload(message)
Encoder.encode_variable_header(message) <> Encoder.encode_payload(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.Unsubscribe do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message) <>
Encoder.encode_payload(message)
Encoder.encode_variable_header(message) <> Encoder.encode_payload(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.UnsubAck do
def encode(message) do
Encoder.encode_fixed_header(message) <>
Encoder.encode_variable_header(message)
Encoder.encode_fixed_header(message) <> Encoder.encode_variable_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.PingReq do
def encode(message) do
Encoder.encode_fixed_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.PingResp do
def encode(message) do
Encoder.encode_fixed_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end

defimpl Packet, for: Message.Disconnect do
def encode(message) do
Encoder.encode_fixed_header(message)
end

def decode(message), do: %{message: message, remainder: <<>>}
end
end
Loading

0 comments on commit 086785d

Please sign in to comment.