feat: Add Rhai scripting support
Some checks are pending
Rhai Tests / Run Rhai Tests (push) Waiting to run
Some checks are pending
Rhai Tests / Run Rhai Tests (push) Waiting to run
- Add new `sal-rhai` crate for Rhai scripting integration - Integrate Rhai with existing SAL modules - Improve error handling for Rhai scripts and SAL functions - Add comprehensive unit and integration tests for `sal-rhai`
This commit is contained in:
@@ -69,7 +69,7 @@ mod rhai_integration_tests {
|
||||
let script = r#"
|
||||
let unsafe_name = "User's File [Draft].txt";
|
||||
let result = name_fix(unsafe_name);
|
||||
return result == "users_file_draft_.txt";
|
||||
return result == "user_s_file_draft_.txt";
|
||||
"#;
|
||||
|
||||
let result: Result<bool, Box<EvalAltResult>> = engine.eval(script);
|
||||
@@ -84,7 +84,7 @@ mod rhai_integration_tests {
|
||||
let script = r#"
|
||||
let unsafe_path = "/path/to/User's File.txt";
|
||||
let result = path_fix(unsafe_path);
|
||||
return result == "/path/to/users_file.txt";
|
||||
return result == "/path/to/user_s_file.txt";
|
||||
"#;
|
||||
|
||||
let result: Result<bool, Box<EvalAltResult>> = engine.eval(script);
|
||||
@@ -98,7 +98,7 @@ mod rhai_integration_tests {
|
||||
|
||||
let script = r#"
|
||||
let builder = text_replacer_builder();
|
||||
return type_of(builder) == "sal_text::replace::TextReplacerBuilder";
|
||||
return type_of(builder) == "TextReplacerBuilder";
|
||||
"#;
|
||||
|
||||
let result: Result<bool, Box<EvalAltResult>> = engine.eval(script);
|
||||
@@ -133,13 +133,13 @@ mod rhai_integration_tests {
|
||||
|
||||
let script = r#"
|
||||
let builder = text_replacer_builder();
|
||||
builder = pattern(builder, r"\d+");
|
||||
builder = pattern(builder, "\\d+");
|
||||
builder = replacement(builder, "NUMBER");
|
||||
builder = regex(builder, true);
|
||||
|
||||
|
||||
let replacer = build(builder);
|
||||
let result = replace(replacer, "There are 123 items");
|
||||
|
||||
|
||||
return result == "There are NUMBER items";
|
||||
"#;
|
||||
|
||||
@@ -158,7 +158,7 @@ mod rhai_integration_tests {
|
||||
builder = replacement(builder, "universe");
|
||||
builder = regex(builder, false);
|
||||
builder = and(builder);
|
||||
builder = pattern(builder, r"\d+");
|
||||
builder = pattern(builder, "\\d+");
|
||||
builder = replacement(builder, "NUMBER");
|
||||
builder = regex(builder, true);
|
||||
|
||||
@@ -328,7 +328,7 @@ mod rhai_integration_tests {
|
||||
let dedented_code = dedent(indented_code);
|
||||
|
||||
let results = [];
|
||||
results.push(safe_filename == "users_script_draft_.py");
|
||||
results.push(safe_filename == "user_s_script_draft_.py");
|
||||
results.push(dedented_code.contains("def hello():"));
|
||||
|
||||
return results;
|
||||
|
Reference in New Issue
Block a user