Package org.jruby.embed

Examples of org.jruby.embed.ScriptingContainer.callMethod()


        container.put(receiver, "SEASON", "colored leaves");
        container.put(receiver, "@@clouds", "thunder clouds");
        // need runScriptlet/callMethod to inject a new value
        container.runScriptlet("a=1");
        assertEquals("colored leaves", container.get(receiver, "SEASON"));
        assertEquals("thunder clouds", container.callMethod(receiver, "cloud_names"));
        assertEquals("thunder clouds", container.get(receiver, "@@clouds")); // this passes
        expResult.clear();
        expResult.add("cirrus"); expResult.add("stratus"); expResult.add("cumulus");
        assertEquals(expResult, container.get("@@clouds"));
        // gvar should be receiver insensitive
View Full Code Here


        container = new ScriptingContainer(LocalContextScope.SINGLETHREAD, LocalVariableBehavior.PERSISTENT);
        instance = container.getVarMap();
        container.put("trees", lvar_values);
        container.runScriptlet(script);
        klazz = container.get("Forecast");
        receiver = container.callMethod(klazz, "new", "blizzard", "6F");
        expResult.clear();
        expResult.add("cypress"); expResult.add("hemlock"); expResult.add("spruce");
        assertEquals(expResult, container.get("trees"));
    }
View Full Code Here

        ScriptingContainer container = master.getContainer();
        String path = file.getAbsolutePath();

        master.executeScriptAt(path);

        return (Plugin) container.callMethod(master.getMain(), "instantiate_plugin", path);
    }
   
    @Override
    public Pattern[] getPluginFileFilters() {
        return rbRegexp;
View Full Code Here

    private List<Job> configureJobs(String jobSetupScript, String[] arguments) throws Exception {
        ScriptingContainer runtime = InstanceContainer.getRuntime();
        Configuration conf = getConf();
        conf.set(InstanceContainer.JOB_SETUP_SCRIPT_KEY, jobSetupScript);
        Object contextClass = runtime.runScriptlet("Rubydoop::Context");
        Object context = runtime.callMethod(contextClass, "new", conf, arguments);
        runtime.put("$rubydoop_context", context);

        try {
            runtime.callMethod(null, "require", jobSetupScript);
        } catch (InvokeFailedException e) {
View Full Code Here

        Object contextClass = runtime.runScriptlet("Rubydoop::Context");
        Object context = runtime.callMethod(contextClass, "new", conf, arguments);
        runtime.put("$rubydoop_context", context);

        try {
            runtime.callMethod(null, "require", jobSetupScript);
        } catch (InvokeFailedException e) {
            String message = String.format("Could not load job setup script (\"%s\"): \"%s\"", jobSetupScript, e.getMessage());
            throw new RubydoopRunnerException(message, e);
        }
       
View Full Code Here

        } catch (InvokeFailedException e) {
            String message = String.format("Could not load job setup script (\"%s\"): \"%s\"", jobSetupScript, e.getMessage());
            throw new RubydoopRunnerException(message, e);
        }
       
        List<Job> jobs = (List<Job>) runtime.callMethod(context, "jobs");

        for (Job job : jobs) {
            job.setJarByClass(getClass());
        }
View Full Code Here

    }

    public static InstanceContainer createInstance(Configuration conf, String rubyClassProperty) {
        ScriptingContainer runtime = getRuntime();
        Object rubyClass = lookupClassInternal(runtime, conf, rubyClassProperty);
        return new InstanceContainer(runtime, runtime.callMethod(rubyClass, "new"));
    }

    public static InstanceContainer lookupClass(Configuration conf, String rubyClassProperty) {
        ScriptingContainer runtime = getRuntime();
        Object rubyClass = lookupClassInternal(runtime, conf, rubyClassProperty);
View Full Code Here

TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.