Skip to content

Commit 94f29a8

Browse files
committed
Update for Gleam v1
1 parent 9100235 commit 94f29a8

File tree

8 files changed

+56
-56
lines changed

8 files changed

+56
-56
lines changed

.github/workflows/test.yml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -10,11 +10,11 @@ jobs:
1010
test:
1111
runs-on: ubuntu-latest
1212
steps:
13-
- uses: actions/checkout@v2.0.0
14-
- uses: erlef/setup-beam@v1.15.2
13+
- uses: actions/checkout@v4
14+
- uses: erlef/setup-beam@v1
1515
with:
16-
otp-version: "25.0"
17-
gleam-version: "0.25.3"
16+
otp-version: "26.0"
17+
gleam-version: "1.0.0"
1818
rebar3-version: "3"
19-
- run: gleam format --check src test
2019
- run: gleam test
20+
- run: gleam format --check src test

gleam.toml

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
name = "echo"
1+
name = "reply"
22
version = "1.0.0"
33
licences = ["Apache-2.0"]
44
description = "A tiny echo server written in Gleam!"
@@ -10,10 +10,10 @@ links = [
1010
]
1111

1212
[dependencies]
13-
gleam_stdlib = "~> 0.25"
13+
gleam_stdlib = "~> 0.25 or ~> 1.0"
1414
gleam_http = "~> 3.0"
1515
gleam_elli = "~> 2.0"
1616
gleam_erlang = "~> 0.17"
1717

1818
[dev-dependencies]
19-
gleeunit = "~> 0.1"
19+
gleeunit = "~> 1.0"

manifest.toml

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -3,17 +3,17 @@
33

44
packages = [
55
{ name = "elli", version = "3.3.0", build_tools = ["rebar3"], requirements = [], otp_app = "elli", source = "hex", outer_checksum = "698B13B33D05661DB9FE7EFCBA41B84825A379CCE86E486CF6AFF9285BE0CCF8" },
6-
{ name = "gleam_elli", version = "2.0.0", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_otp", "elli", "gleam_http"], otp_app = "gleam_elli", source = "hex", outer_checksum = "5DB2D8F83DF2A7384C5F381CCC837042EFB00272E9E5A01A071CC7600E2D6978" },
7-
{ name = "gleam_erlang", version = "0.17.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "BAAA84F5BCC4477E809BA3E03BB3009A3894A6544C1511626C44408E39DB2AE6" },
8-
{ name = "gleam_http", version = "3.1.1", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "B66B7A1539CCB577119E4DC80DD3484C1A652CB032967954498EEDBAE3355763" },
9-
{ name = "gleam_otp", version = "0.5.2", build_tools = ["gleam"], requirements = ["gleam_stdlib", "gleam_erlang"], otp_app = "gleam_otp", source = "hex", outer_checksum = "24B88BF1D5B8DEC2525C00ECB65B96D2FD4DC66D8B2BB4D7AD4D12B2CE2A9988" },
10-
{ name = "gleam_stdlib", version = "0.25.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "AD0F89928E0B919C8F8EDF640484633B28DBF88630A9E6AE504617A3E3E5B9A2" },
11-
{ name = "gleeunit", version = "0.8.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "A1170754BF54F5DD6E9EF392FB1DC612528B007CCBE41B52F0C5453254708490" },
6+
{ name = "gleam_elli", version = "2.4.0", build_tools = ["gleam"], requirements = ["elli", "gleam_erlang", "gleam_http", "gleam_otp", "gleam_stdlib"], otp_app = "gleam_elli", source = "hex", outer_checksum = "433F5AF4ED92C55F3EBA8942610E974254EEF90F484AF26E3D775E33338DE832" },
7+
{ name = "gleam_erlang", version = "0.25.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_erlang", source = "hex", outer_checksum = "054D571A7092D2A9727B3E5D183B7507DAB0DA41556EC9133606F09C15497373" },
8+
{ name = "gleam_http", version = "3.6.0", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleam_http", source = "hex", outer_checksum = "8C07DF9DF8CC7F054C650839A51C30A7D3C26482AC241C899C1CEA86B22DBE51" },
9+
{ name = "gleam_otp", version = "0.10.0", build_tools = ["gleam"], requirements = ["gleam_erlang", "gleam_stdlib"], otp_app = "gleam_otp", source = "hex", outer_checksum = "0B04FE915ACECE539B317F9652CAADBBC0F000184D586AAAF2D94C100945D72B" },
10+
{ name = "gleam_stdlib", version = "0.36.0", build_tools = ["gleam"], requirements = [], otp_app = "gleam_stdlib", source = "hex", outer_checksum = "C0D14D807FEC6F8A08A7C9EF8DFDE6AE5C10E40E21325B2B29365965D82EB3D4" },
11+
{ name = "gleeunit", version = "1.0.2", build_tools = ["gleam"], requirements = ["gleam_stdlib"], otp_app = "gleeunit", source = "hex", outer_checksum = "D364C87AFEB26BDB4FB8A5ABDE67D635DC9FA52D6AB68416044C35B096C6882D" },
1212
]
1313

1414
[requirements]
15-
gleam_elli = "~> 2.0"
16-
gleam_erlang = "~> 0.17"
17-
gleam_http = "~> 3.0"
18-
gleam_stdlib = "~> 0.25"
19-
gleeunit = "~> 0.1"
15+
gleam_elli = { version = "~> 2.0" }
16+
gleam_erlang = { version = "~> 0.17" }
17+
gleam_http = { version = "~> 3.0" }
18+
gleam_stdlib = { version = "~> 0.25 or ~> 1.0" }
19+
gleeunit = { version = "~> 1.0" }

src/echo.gleam renamed to src/reply.gleam

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,11 +1,11 @@
1-
import echo/web
2-
import gleam/io
3-
import gleam/int
4-
import gleam/string
5-
import gleam/result
6-
import gleam/erlang/process
71
import gleam/erlang/os
2+
import gleam/erlang/process
83
import gleam/http/elli
4+
import gleam/int
5+
import gleam/io
6+
import gleam/result
7+
import gleam/string
8+
import reply/web
99

1010
pub fn main() {
1111
let port =
@@ -14,7 +14,7 @@ pub fn main() {
1414
|> result.unwrap(3000)
1515

1616
// Start the web server process
17-
assert Ok(_) =
17+
let assert Ok(_) =
1818
web.stack()
1919
|> elli.start(on_port: port)
2020

Lines changed: 11 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,14 @@
1-
import gleam/bit_builder
2-
import gleam/bit_string
3-
import gleam/result
4-
import gleam/string
1+
import gleam/bit_array
2+
import gleam/bytes_builder
53
import gleam/http.{Get, Post}
6-
import gleam/http/service
74
import gleam/http/request
85
import gleam/http/response
9-
import echo/web/logger
6+
import gleam/http/service
7+
import gleam/result
8+
import gleam/string
9+
import reply/web/logger
1010

11-
fn echo(request) {
11+
fn reply(request) {
1212
let content_type =
1313
request
1414
|> request.get_header("content-type")
@@ -22,7 +22,7 @@ fn echo(request) {
2222
fn not_found() {
2323
let body =
2424
"There's nothing here. Try POSTing to /echo"
25-
|> bit_string.from_string
25+
|> bit_array.from_string
2626

2727
response.new(404)
2828
|> response.set_body(body)
@@ -36,15 +36,15 @@ fn hello(name) {
3636
}
3737

3838
response.new(200)
39-
|> response.set_body(bit_string.from_string(reply))
39+
|> response.set_body(bit_array.from_string(reply))
4040
|> response.prepend_header("content-type", "text/plain")
4141
}
4242

4343
pub fn service(request) {
4444
let path = request.path_segments(request)
4545

4646
case request.method, path {
47-
Post, ["echo"] -> echo(request)
47+
Post, ["echo"] -> reply(request)
4848
Get, ["hello", name] -> hello(name)
4949
_, _ -> not_found()
5050
}
@@ -53,6 +53,6 @@ pub fn service(request) {
5353
pub fn stack() {
5454
service
5555
|> service.prepend_response_header("made-with", "Gleam")
56-
|> service.map_response_body(bit_builder.from_bit_string)
56+
|> service.map_response_body(bytes_builder.from_bit_array)
5757
|> logger.middleware
5858
}
Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
import gleam/http
2-
import gleam/http/request.{Request}
3-
import gleam/http/response.{Response}
4-
import gleam/http/service.{Service}
2+
import gleam/http/request.{type Request}
3+
import gleam/http/response.{type Response}
4+
import gleam/http/service.{type Service}
55
import gleam/int
66
import gleam/io
77
import gleam/string
Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
1-
import echo/web
21
import gleam/http.{Get, Post}
32
import gleam/http/request
43
import gleam/http/response
4+
import reply/web
55

66
pub fn not_found_test() {
77
let resp =
@@ -11,8 +11,8 @@ pub fn not_found_test() {
1111
|> request.set_body(<<>>)
1212
|> web.service()
1313

14-
assert 404 = resp.status
15-
assert <<"There's nothing here. Try POSTing to /echo":utf8>> = resp.body
14+
let assert 404 = resp.status
15+
let assert <<"There's nothing here. Try POSTing to /echo":utf8>> = resp.body
1616
}
1717

1818
pub fn hello_nubi_test() {
@@ -23,8 +23,8 @@ pub fn hello_nubi_test() {
2323
|> request.set_body(<<>>)
2424
|> web.service()
2525

26-
assert 200 = resp.status
27-
assert <<"Hello, Nubi!":utf8>> = resp.body
26+
let assert 200 = resp.status
27+
let assert <<"Hello, Nubi!":utf8>> = resp.body
2828
}
2929

3030
pub fn hello_joe_test() {
@@ -35,8 +35,8 @@ pub fn hello_joe_test() {
3535
|> request.set_body(<<>>)
3636
|> web.service()
3737

38-
assert 200 = resp.status
39-
assert <<"Hello, Joe!":utf8>> = resp.body
38+
let assert 200 = resp.status
39+
let assert <<"Hello, Joe!":utf8>> = resp.body
4040
}
4141

4242
pub fn echo_1_test() {
@@ -48,9 +48,9 @@ pub fn echo_1_test() {
4848
|> request.prepend_header("content-type", "application/octet-stream")
4949
|> web.service()
5050

51-
assert 200 = resp.status
52-
assert <<1, 2, 3, 4>> = resp.body
53-
assert Ok("application/octet-stream") =
51+
let assert 200 = resp.status
52+
let assert <<1, 2, 3, 4>> = resp.body
53+
let assert Ok("application/octet-stream") =
5454
response.get_header(resp, "content-type")
5555
}
5656

@@ -63,9 +63,9 @@ pub fn echo_2_test() {
6363
|> request.prepend_header("content-type", "text/plain")
6464
|> web.service()
6565

66-
assert 200 = resp.status
67-
assert <<"Hello, Gleam!":utf8>> = resp.body
68-
assert Ok("text/plain") = response.get_header(resp, "content-type")
66+
let assert 200 = resp.status
67+
let assert <<"Hello, Gleam!":utf8>> = resp.body
68+
let assert Ok("text/plain") = response.get_header(resp, "content-type")
6969
}
7070

7171
pub fn echo_3_test() {
@@ -76,8 +76,8 @@ pub fn echo_3_test() {
7676
|> request.set_body(<<"Hello, Gleam!":utf8>>)
7777
|> web.service()
7878

79-
assert 200 = resp.status
80-
assert <<"Hello, Gleam!":utf8>> = resp.body
81-
assert Ok("application/octet-stream") =
79+
let assert 200 = resp.status
80+
let assert <<"Hello, Gleam!":utf8>> = resp.body
81+
let assert Ok("application/octet-stream") =
8282
response.get_header(resp, "content-type")
8383
}

0 commit comments

Comments
 (0)