this repo has no description

Nested modules

+59 -13
+1
Cargo.lock
··· 1953 1953 "insta", 1954 1954 "itertools", 1955 1955 "toml", 1956 + "walkdir", 1956 1957 ] 1957 1958 1958 1959 [[package]]
+2
test-package-compiler/Cargo.toml
··· 13 13 im = "15.1.0" 14 14 # Extra iter methods 15 15 itertools = "0.10.1" 16 + # Recursively finding files 17 + walkdir = "2.3.2" 16 18 17 19 [dev-dependencies] 18 20 # Snapshot testing to make test maintenance easier
+3
test-package-compiler/cases/erlang_nested/gleam.toml
··· 1 + name = "importy" 2 + version = "0.1.0" 3 + target = "erlang"
+3
test-package-compiler/cases/erlang_nested/src/one/two.gleam
··· 1 + pub fn main() { 2 + "Hi there" 3 + }
+23 -13
test-package-compiler/src/lib.rs
··· 18 18 }; 19 19 20 20 pub fn prepare(path: &str) -> String { 21 - let path = PathBuf::from(path); 21 + let root = PathBuf::from(path).canonicalize().unwrap(); 22 22 23 - let toml = std::fs::read_to_string(path.join("gleam.toml")).unwrap(); 23 + let toml = std::fs::read_to_string(root.join("gleam.toml")).unwrap(); 24 24 let config: PackageConfig = toml::from_str(&toml).unwrap(); 25 25 26 - let sources = path 27 - .join("src") 28 - .read_dir() 29 - .unwrap() 30 - .map(|entry| { 26 + let sources = walkdir::WalkDir::new(root.join("src")) 27 + .into_iter() 28 + .filter_map(|entry| { 31 29 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 { 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 { 37 47 code: std::fs::read_to_string(entry.path()).unwrap(), 38 48 origin: gleam_core::build::Origin::Src, 39 49 path, 40 50 name, 41 - } 51 + }) 42 52 }) 43 53 .collect(); 44 54
+27
test-package-compiler/src/snapshots/test_package_compiler__generated_tests__erlang_nested.snap
··· 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 +