tangled
alpha
login
or
join now
daniellemaywood.uk
/
gleam
0
fork
atom
this repo has no description
0
fork
atom
overview
issues
pulls
pipelines
Nested modules
Louis Pilfold
3 years ago
11f3589e
18cee836
+59
-13
6 changed files
expand all
collapse all
unified
split
Cargo.lock
test-package-compiler
Cargo.toml
cases
erlang_nested
gleam.toml
src
one
two.gleam
src
lib.rs
snapshots
test_package_compiler__generated_tests__erlang_nested.snap
+1
Cargo.lock
···
1953
"insta",
1954
"itertools",
1955
"toml",
0
1956
]
1957
1958
[[package]]
···
1953
"insta",
1954
"itertools",
1955
"toml",
1956
+
"walkdir",
1957
]
1958
1959
[[package]]
+2
test-package-compiler/Cargo.toml
···
13
im = "15.1.0"
14
# Extra iter methods
15
itertools = "0.10.1"
0
0
16
17
[dev-dependencies]
18
# Snapshot testing to make test maintenance easier
···
13
im = "15.1.0"
14
# Extra iter methods
15
itertools = "0.10.1"
16
+
# Recursively finding files
17
+
walkdir = "2.3.2"
18
19
[dev-dependencies]
20
# Snapshot testing to make test maintenance easier
+3
test-package-compiler/cases/erlang_nested/gleam.toml
···
0
0
0
···
1
+
name = "importy"
2
+
version = "0.1.0"
3
+
target = "erlang"
+3
test-package-compiler/cases/erlang_nested/src/one/two.gleam
···
0
0
0
···
1
+
pub fn main() {
2
+
"Hi there"
3
+
}
+23
-13
test-package-compiler/src/lib.rs
···
18
};
19
20
pub fn prepare(path: &str) -> String {
21
-
let path = PathBuf::from(path);
22
23
-
let toml = std::fs::read_to_string(path.join("gleam.toml")).unwrap();
24
let config: PackageConfig = toml::from_str(&toml).unwrap();
25
26
-
let sources = path
27
-
.join("src")
28
-
.read_dir()
29
-
.unwrap()
30
-
.map(|entry| {
31
let entry = entry.unwrap();
32
-
let localpath = entry.path();
33
-
let filename = localpath.file_name().unwrap();
34
-
let path = PathBuf::from("src").join(filename);
35
-
let name = localpath.file_stem().unwrap().to_string_lossy().to_string();
36
-
Source {
0
0
0
0
0
0
0
0
0
0
0
0
37
code: std::fs::read_to_string(entry.path()).unwrap(),
38
origin: gleam_core::build::Origin::Src,
39
path,
40
name,
41
-
}
42
})
43
.collect();
44
···
18
};
19
20
pub fn prepare(path: &str) -> String {
21
+
let root = PathBuf::from(path).canonicalize().unwrap();
22
23
+
let toml = std::fs::read_to_string(root.join("gleam.toml")).unwrap();
24
let config: PackageConfig = toml::from_str(&toml).unwrap();
25
26
+
let sources = walkdir::WalkDir::new(root.join("src"))
27
+
.into_iter()
28
+
.filter_map(|entry| {
0
0
29
let entry = entry.unwrap();
30
+
let path = entry.path();
31
+
32
+
if path.is_dir() {
33
+
return None;
34
+
}
35
+
if path.extension().unwrap() != "gleam" {
36
+
return None;
37
+
}
38
+
39
+
let path = path.strip_prefix(&root).unwrap().to_path_buf();
40
+
let name = path
41
+
.strip_prefix("src")
42
+
.unwrap()
43
+
.with_extension("")
44
+
.to_string_lossy()
45
+
.to_string();
46
+
Some(Source {
47
code: std::fs::read_to_string(entry.path()).unwrap(),
48
origin: gleam_core::build::Origin::Src,
49
path,
50
name,
51
+
})
52
})
53
.collect();
54
+27
test-package-compiler/src/snapshots/test_package_compiler__generated_tests__erlang_nested.snap
···
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
0
···
1
+
---
2
+
source: test-package-compiler/src/generated_tests.rs
3
+
assertion_line: 13
4
+
expression: /Users/louis/src/gleam/gleam/test-package-compiler/cases/erlang_nested
5
+
---
6
+
//// /out/lib/the_package/_gleam_artefacts/one@two.erl
7
+
-module(one@two).
8
+
-compile(no_auto_import).
9
+
10
+
-export([main/0]).
11
+
12
+
-spec main() -> binary().
13
+
main() ->
14
+
<<"Hi there"/utf8>>.
15
+
16
+
17
+
//// /out/lib/the_package/ebin/importy.app
18
+
{application, importy, [
19
+
{vsn, "0.1.0"},
20
+
{applications, []},
21
+
{description, ""},
22
+
{modules, [one@two]},
23
+
{registered, []}
24
+
]}.
25
+
26
+
27
+