Package org.jruby.embed.variable
Class InstanceVariable
java.lang.Object
org.jruby.embed.variable.AbstractVariable
org.jruby.embed.variable.InstanceVariable
- All Implemented Interfaces:
BiVariable
An implementation of BiVariable for a Ruby instance variable.
-
Nested Class Summary
Nested classes/interfaces inherited from interface org.jruby.embed.variable.BiVariable
BiVariable.Type -
Field Summary
FieldsFields inherited from class org.jruby.embed.variable.AbstractVariable
fromRuby, javaObject, javaType, name, receiver, rubyObject -
Constructor Summary
ConstructorsModifierConstructorDescriptionprivateInstanceVariable(RubyObject receiver, String name, Object... javaObjects) (package private)InstanceVariable(RubyObject receiver, String name, IRubyObject irubyObject) InstanceVariable(IRubyObject receiver, String name, IRubyObject irubyObject) A constructor used when instance variables are retrieved from Ruby. -
Method Summary
Modifier and TypeMethodDescriptionstatic BiVariablegetInstance(RubyObject receiver, String name, Object... javaObject) Returns an instance of this class.getType()Returns enum type of this variable defined inBiVariable.voidinject()Injects an instance variable value to a parsed Ruby script.static booleanisValidName(Object name) Returns true if the given name is a decent Ruby instance variable.voidremove()Attempts to remove this variable from top self or receiver.static voidretrieve(RubyObject receiver, BiVariableMap vars) Retrieves instance variables from Ruby after the evaluation.static voidretrieveByKey(RubyObject receiver, BiVariableMap vars, String key) Retrieves a instance variable by key from Ruby runtime after the evaluation.(package private) static voidupdateInstanceVar(RubyObject receiver, BiVariableMap vars) Methods inherited from class org.jruby.embed.variable.AbstractVariable
getCurrentContext, getJavaObject, getName, getReceiver, getRubyClass, getRubyObject, getRuntime, getTopSelf, getTopSelf, isReceiverIdentical, isValidName, setJavaObject, setRubyObject, updateByJavaObject, updateRubyObject
-
Field Details
-
VALID_NAME
- See Also:
-
-
Constructor Details
-
InstanceVariable
-
InstanceVariable
A constructor used when instance variables are retrieved from Ruby.- Parameters:
receiver- a receiver object that this variable/constant is originally in. When the variable/constant is originated from Ruby, receiver may not be null.name- the instance variable nameirubyObject- Ruby instance object
-
InstanceVariable
InstanceVariable(RubyObject receiver, String name, IRubyObject irubyObject)
-
-
Method Details
-
getInstance
Returns an instance of this class. This factory method is used when an instance variable is put inBiVariableMap.- Parameters:
runtime- Ruby runtimename- a variable namejavaObject- Java object that should be assigned to.- Returns:
- the instance of InstanceVariable
-
retrieve
Retrieves instance variables from Ruby after the evaluation.- Parameters:
runtime- Ruby runtimereceiver- receiver object returned when a script is evaluated.vars- map to save retrieved instance variables.
-
updateInstanceVar
-
retrieveByKey
Retrieves a instance variable by key from Ruby runtime after the evaluation. This method is used when eager retrieval is off.- Parameters:
receiver- receiver object returned when a script is evaluated.vars- map to save retrieved instance variables.key- instace varible name
-
getType
Returns enum type of this variable defined inBiVariable.- Returns:
- this enum type, BiVariable.Type.InstanceVariable.
-
isValidName
Returns true if the given name is a decent Ruby instance variable. Unless returns false.- Parameters:
name- is a name to be checked.- Returns:
- true if the given name is of a Ruby instance variable.
-
inject
public void inject()Injects an instance variable value to a parsed Ruby script. This method is invoked during EvalUnit#run() is executed.- Parameters:
runtime- is environment where a variable injection occursreceiver- is the instance that will have variable injection.
-
remove
public void remove()Attempts to remove this variable from top self or receiver.
-