本文整理了Java中org.jruby.RubyClass.getConstantNames
方法的一些代码示例,展示了RubyClass.getConstantNames
的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyClass.getConstantNames
方法的具体详情如下:
包路径:org.jruby.RubyClass
类名称:RubyClass
方法名:getConstantNames
暂无
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
private static void updateConstants(RubyObject receiver, BiVariableMap vars) {
Collection<String> names = receiver.getMetaClass().getConstantNames();
for (String name : names) {
IRubyObject value = receiver.getMetaClass().getConstant(name);
BiVariable var = null;
List<String> savedNames = vars.getNames();
// Need to check that this constant has been stored in BiVariableMap.
for (int i=0; i<savedNames.size(); i++) {
if (name.equals(savedNames.get(i))) {
var = (BiVariable) vars.getVariables().get(i);
if (receiver == var.getReceiver()) {
var.setRubyObject(value);
} else {
var = null;
}
}
}
if (var == null) {
var = new Constant(receiver, name, value);
((Constant) var).markInitialized();
vars.update(name, var);
}
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
private static void updateConstants(RubyObject receiver, BiVariableMap vars) {
Collection<String> names = receiver.getMetaClass().getConstantNames();
for (String name : names) {
IRubyObject value = receiver.getMetaClass().getConstant(name);
BiVariable var = null;
List<String> savedNames = vars.getNames();
// Need to check that this constant has been stored in BiVariableMap.
for (int i=0; i<savedNames.size(); i++) {
if (name.equals(savedNames.get(i))) {
var = (BiVariable) vars.getVariables().get(i);
if (receiver == var.getReceiver()) {
var.setRubyObject(value);
} else {
var = null;
}
}
}
if (var == null) {
var = new Constant(receiver, name, value);
((Constant) var).markInitialized();
vars.update(name, var);
}
}
}
代码示例来源:origin: org.jruby/jruby-core
/**
* Attempts to remove this constant from top self or receiver.
*
*/
@Override
public void remove() {
final Ruby runtime = getRuntime();
final IRubyObject rubyName = JavaUtil.convertJavaToRuby(runtime, name);
final RubyClass metaClass = receiver.getMetaClass();
if (metaClass.getConstantNames().contains(name)) {
metaClass.remove_const(runtime.getCurrentContext(), rubyName);
}
else if (getTopSelf().getMetaClass().getConstantNames().contains(name)) {
getTopSelf().getMetaClass().remove_const(runtime.getCurrentContext(), rubyName);
}
else if (getTopSelf().getMetaClass().getSuperClass().getConstantNames().contains(name)) {
getTopSelf().getMetaClass().getSuperClass().remove_const(runtime.getCurrentContext(), rubyName);
}
}
}
代码示例来源:origin: org.jruby/jruby-complete
/**
* Attempts to remove this constant from top self or receiver.
*
*/
@Override
public void remove() {
final Ruby runtime = getRuntime();
final IRubyObject rubyName = JavaUtil.convertJavaToRuby(runtime, name);
final RubyClass metaClass = receiver.getMetaClass();
if (metaClass.getConstantNames().contains(name)) {
metaClass.remove_const(runtime.getCurrentContext(), rubyName);
}
else if (getTopSelf().getMetaClass().getConstantNames().contains(name)) {
getTopSelf().getMetaClass().remove_const(runtime.getCurrentContext(), rubyName);
}
else if (getTopSelf().getMetaClass().getSuperClass().getConstantNames().contains(name)) {
getTopSelf().getMetaClass().getSuperClass().remove_const(runtime.getCurrentContext(), rubyName);
}
}
}
代码示例来源:origin: org.jruby/jruby-complete
private static void updateConstants(final RubyObject receiver, final BiVariableMap vars) {
final RubyClass klazz = receiver.getMetaClass();
final Collection<String> constantNames = klazz.getConstantNames();
for ( final String name : constantNames ) {
final IRubyObject value = klazz.getConstant(name);
final BiVariable var = vars.getVariable(receiver, name);
if (var == null) {
vars.update(name, new Constant(receiver, name, value));
}
else {
var.setRubyObject(value);
}
}
}
代码示例来源:origin: org.jruby/jruby-core
private static void updateConstants(final RubyObject receiver, final BiVariableMap vars) {
final RubyClass klazz = receiver.getMetaClass();
final Collection<String> constantNames = klazz.getConstantNames();
for ( final String name : constantNames ) {
final IRubyObject value = klazz.getConstant(name);
final BiVariable var = vars.getVariable(receiver, name);
if (var == null) {
vars.update(name, new Constant(receiver, name, value));
}
else {
var.setRubyObject(value);
}
}
}
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
/**
* Attempts to remove this constant from top self or receiver.
*
*/
public void remove() {
IRubyObject rubyName = JavaUtil.convertJavaToRuby(receiver.getRuntime(), name);
if (receiver.getMetaClass().getConstantNames().contains(name)) {
receiver.getMetaClass().remove_const(receiver.getRuntime().getCurrentContext(), rubyName);
} else if (receiver.getRuntime().getTopSelf().getMetaClass().getConstantNames().contains(name)) {
receiver.getRuntime().getTopSelf().getMetaClass().remove_const(receiver.getRuntime().getCurrentContext(), rubyName);
} else if (receiver.getRuntime().getTopSelf().getMetaClass().getSuperClass().getConstantNames().contains(name)) {
receiver.getRuntime().getTopSelf().getMetaClass().getSuperClass().remove_const(receiver.getRuntime().getCurrentContext(), rubyName);
}
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/**
* Attempts to remove this constant from top self or receiver.
*
*/
public void remove() {
IRubyObject rubyName = JavaUtil.convertJavaToRuby(receiver.getRuntime(), name);
if (receiver.getMetaClass().getConstantNames().contains(name)) {
receiver.getMetaClass().remove_const(receiver.getRuntime().getCurrentContext(), rubyName);
} else if (receiver.getRuntime().getTopSelf().getMetaClass().getConstantNames().contains(name)) {
receiver.getRuntime().getTopSelf().getMetaClass().remove_const(receiver.getRuntime().getCurrentContext(), rubyName);
} else if (receiver.getRuntime().getTopSelf().getMetaClass().getSuperClass().getConstantNames().contains(name)) {
receiver.getRuntime().getTopSelf().getMetaClass().getSuperClass().remove_const(receiver.getRuntime().getCurrentContext(), rubyName);
}
}
}
代码示例来源:origin: org.jruby/jruby-complete
if ( klazz.getConstantNames().contains(key) ) {
value = klazz.getConstant(key);
else if (getTopSelf(receiver).getMetaClass().getConstantNames().contains(key)) {
value = getTopSelf(receiver).getMetaClass().getConstant(key);
else if (getTopSelf(receiver).getMetaClass().getSuperClass().getConstantNames().contains(key)) {
value = getTopSelf(receiver).getMetaClass().getSuperClass().getConstant(key);
代码示例来源:origin: org.jruby/jruby-core
if ( klazz.getConstantNames().contains(key) ) {
value = klazz.getConstant(key);
else if (getTopSelf(receiver).getMetaClass().getConstantNames().contains(key)) {
value = getTopSelf(receiver).getMetaClass().getConstant(key);
else if (getTopSelf(receiver).getMetaClass().getSuperClass().getConstantNames().contains(key)) {
value = getTopSelf(receiver).getMetaClass().getSuperClass().getConstant(key);
代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby
/**
* Retrieves a constant by key from Ruby runtime after the evaluation.
* This method is used when eager retrieval is off.
*
* @param receiver receiver object returned when a script is evaluated.
* @param vars map to save retrieved instance variables.
* @param key instace varible name
*/
public static void retrieveByKey(RubyObject receiver, BiVariableMap vars, String key) {
// if the specified key doesn't exist, this method is called before the
// evaluation. Don't update value in this case.
IRubyObject value = null;
if (receiver.getMetaClass().getConstantNames().contains(key)) {
value = receiver.getMetaClass().getConstant(key);
} else if (receiver.getRuntime().getTopSelf().getMetaClass().getConstantNames().contains(key)) {
value = receiver.getRuntime().getTopSelf().getMetaClass().getConstant(key);
} else if (receiver.getRuntime().getTopSelf().getMetaClass().getSuperClass().getConstantNames().contains(key)) {
value = receiver.getRuntime().getTopSelf().getMetaClass().getSuperClass().getConstant(key);
}
if (value == null) return;
// the specified key is found, so let's update
BiVariable var = vars.getVariable(receiver, key);
if (var != null) {
var.setRubyObject(value);
} else {
var = new Constant(receiver, key, value);
vars.update(key, var);
}
}
代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby
/**
* Retrieves a constant by key from Ruby runtime after the evaluation.
* This method is used when eager retrieval is off.
*
* @param receiver receiver object returned when a script is evaluated.
* @param vars map to save retrieved instance variables.
* @param key instace varible name
*/
public static void retrieveByKey(RubyObject receiver, BiVariableMap vars, String key) {
// if the specified key doesn't exist, this method is called before the
// evaluation. Don't update value in this case.
IRubyObject value = null;
if (receiver.getMetaClass().getConstantNames().contains(key)) {
value = receiver.getMetaClass().getConstant(key);
} else if (receiver.getRuntime().getTopSelf().getMetaClass().getConstantNames().contains(key)) {
value = receiver.getRuntime().getTopSelf().getMetaClass().getConstant(key);
} else if (receiver.getRuntime().getTopSelf().getMetaClass().getSuperClass().getConstantNames().contains(key)) {
value = receiver.getRuntime().getTopSelf().getMetaClass().getSuperClass().getConstant(key);
}
if (value == null) return;
// the specified key is found, so let's update
BiVariable var = vars.getVariable(receiver, key);
if (var != null) {
var.setRubyObject(value);
} else {
var = new Constant(receiver, key, value);
vars.update(key, var);
}
}
内容来源于网络,如有侵权,请联系作者删除!