From: jimtng <2554958+jimtng@users.noreply.github.com> Date: Fri, 1 Apr 2022 21:17:03 +0000 (+1000) Subject: [jrubyscripting] Accept generic global variable names (#12539) X-Git-Url: https://git.basschouten.com/?a=commitdiff_plain;h=77c765085e28abb60adc3431036e0a8df74219ae;p=openhab-addons.git [jrubyscripting] Accept generic global variable names (#12539) Signed-off-by: Jimmy Tanagra --- diff --git a/bundles/org.openhab.automation.jrubyscripting/src/main/java/org/openhab/automation/jrubyscripting/internal/JRubyScriptEngineFactory.java b/bundles/org.openhab.automation.jrubyscripting/src/main/java/org/openhab/automation/jrubyscripting/internal/JRubyScriptEngineFactory.java index c903ab78e6..74501aa848 100644 --- a/bundles/org.openhab.automation.jrubyscripting/src/main/java/org/openhab/automation/jrubyscripting/internal/JRubyScriptEngineFactory.java +++ b/bundles/org.openhab.automation.jrubyscripting/src/main/java/org/openhab/automation/jrubyscripting/internal/JRubyScriptEngineFactory.java @@ -48,9 +48,6 @@ public class JRubyScriptEngineFactory extends AbstractScriptEngineFactory { // difficult ways to debug. private static final Set FILTERED_PRESETS = Set.of("File", "Files", "Path", "Paths"); private static final Set INSTANCE_PRESETS = Set.of(); - private static final Set GLOBAL_PRESETS = Set.of("scriptExtension", "automationManager", "ruleRegistry", - "items", "voice", "rules", "things", "events", "itemRegistry", "ir", "actions", "se", "audio", - "lifecycleTracker"); private final javax.script.ScriptEngineFactory factory = new org.jruby.embed.jsr223.JRubyEngineFactory(); @@ -69,7 +66,8 @@ public class JRubyScriptEngineFactory extends AbstractScriptEngineFactory { // Adds $ in front of a set of variables so that Ruby recognizes them as global variables private static Map.Entry mapGlobalPresets(Map.Entry entry) { - if (GLOBAL_PRESETS.contains(entry.getKey())) { + if (Character.isLowerCase(entry.getKey().charAt(0)) && !(entry.getValue() instanceof Class) + && !(entry.getValue() instanceof Enum)) { return Map.entry("$" + entry.getKey(), entry.getValue()); } else { return entry;