org.apache.pig.scripting.jruby
Class JrubyScriptEngine

java.lang.Object
  extended by org.apache.pig.scripting.ScriptEngine
      extended by org.apache.pig.scripting.jruby.JrubyScriptEngine

public class JrubyScriptEngine
extends ScriptEngine

Implementation of the script engine for Jruby, which facilitates the registration of scripts as UDFs, and also provides information (via the nested class RubyFunctions) on the registered functions.


Nested Class Summary
 
Nested classes/interfaces inherited from class org.apache.pig.scripting.ScriptEngine
ScriptEngine.SupportedScriptLang
 
Field Summary
protected static org.jruby.embed.ScriptingContainer rubyEngine
           
 
Fields inherited from class org.apache.pig.scripting.ScriptEngine
NAMESPACE_SEPARATOR
 
Constructor Summary
JrubyScriptEngine()
           
 
Method Summary
protected  Map<String,Object> getParamsFromVariables()
          Returns a map from local variable names to their values
protected  String getScriptingLang()
          Gets ScriptEngine classname or keyword for the scripting language
protected  Map<String,List<PigStats>> main(PigContext pigContext, String scriptFile)
          Actually runs the script file.
 void registerFunctions(String path, String namespace, PigContext pigContext)
          Evaluates the script containing ruby udfs to determine what udfs are defined as well as what libaries and other external resources are necessary.
 
Methods inherited from class org.apache.pig.scripting.ScriptEngine
getInstance, getJarPath, getPigStatsMap, getScriptAsStream, getSupportedScriptLang, run
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Field Detail

rubyEngine

protected static final org.jruby.embed.ScriptingContainer rubyEngine
Constructor Detail

JrubyScriptEngine

public JrubyScriptEngine()
Method Detail

registerFunctions

public void registerFunctions(String path,
                              String namespace,
                              PigContext pigContext)
                       throws IOException
Evaluates the script containing ruby udfs to determine what udfs are defined as well as what libaries and other external resources are necessary. These libraries and resources are then packaged with the job jar itself.

Specified by:
registerFunctions in class ScriptEngine
Parameters:
path - path of the script
namespace - namespace for the functions
pigContext - pigcontext to register functions to pig in the given namespace
Throws:
IOException

main

protected Map<String,List<PigStats>> main(PigContext pigContext,
                                          String scriptFile)
                                   throws IOException
Description copied from class: ScriptEngine
Actually runs the script file. This method will be implemented by individual script engines.

Specified by:
main in class ScriptEngine
Parameters:
pigContext - ScriptPigContext to run the script file
scriptFile - the file
Throws:
IOException

getScriptingLang

protected String getScriptingLang()
Description copied from class: ScriptEngine
Gets ScriptEngine classname or keyword for the scripting language

Specified by:
getScriptingLang in class ScriptEngine

getParamsFromVariables

protected Map<String,Object> getParamsFromVariables()
                                             throws IOException
Description copied from class: ScriptEngine
Returns a map from local variable names to their values

Specified by:
getParamsFromVariables in class ScriptEngine
Throws:
IOException


Copyright © 2007-2012 The Apache Software Foundation