org.jruby.RubyClass.getClassVariableNameList()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(5.1k)|赞(0)|评价(0)|浏览(72)

本文整理了Java中org.jruby.RubyClass.getClassVariableNameList方法的一些代码示例,展示了RubyClass.getClassVariableNameList的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyClass.getClassVariableNameList方法的具体详情如下:
包路径:org.jruby.RubyClass
类名称:RubyClass
方法名:getClassVariableNameList

RubyClass.getClassVariableNameList介绍

暂无

代码示例

代码示例来源:origin: org.jruby/jruby-complete

private static void updateClassVar(final RubyObject receiver, final BiVariableMap vars) {
  for ( final String name : receiver.getMetaClass().getClassVariableNameList() ) {
    final IRubyObject value = receiver.getMetaClass().getClassVar(name);
    vars.updateVariable(receiver, name, value, ClassVariable.class);
  }
}

代码示例来源:origin: org.jruby/jruby-core

private static void updateClassVar(final RubyObject receiver, final BiVariableMap vars) {
  for ( final String name : receiver.getMetaClass().getClassVariableNameList() ) {
    final IRubyObject value = receiver.getMetaClass().getClassVar(name);
    vars.updateVariable(receiver, name, value, ClassVariable.class);
  }
}

代码示例来源:origin: org.jruby/jruby-core

/**
 * Retrieves a class variable 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 name instace varible name
 */
public static void retrieveByKey(final RubyObject receiver,
  final BiVariableMap vars, final String name) {
  final RubyClass klazz = receiver.getMetaClass();
  IRubyObject value = null;
  if ( receiver == receiver.getRuntime().getTopSelf() &&
     klazz.getClassVariableNameList().contains(name) ) {
    value = klazz.getClassVar(name);
  }
  else {
    if ( klazz.hasClassVariable(name) ) {
      value = klazz.getClassVar(name);
    }
  }
  if ( value == null ) return;
  vars.updateVariable(receiver, name, value, ClassVariable.class);
}

代码示例来源:origin: org.jruby/jruby-complete

/**
 * Retrieves a class variable 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 name instace varible name
 */
public static void retrieveByKey(final RubyObject receiver,
  final BiVariableMap vars, final String name) {
  final RubyClass klazz = receiver.getMetaClass();
  IRubyObject value = null;
  if ( receiver == receiver.getRuntime().getTopSelf() &&
     klazz.getClassVariableNameList().contains(name) ) {
    value = klazz.getClassVar(name);
  }
  else {
    if ( klazz.hasClassVariable(name) ) {
      value = klazz.getClassVar(name);
    }
  }
  if ( value == null ) return;
  vars.updateVariable(receiver, name, value, ClassVariable.class);
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

private static void updateClassVar(RubyObject receiver, BiVariableMap vars) {
  List<String> keys = receiver.getMetaClass().getClassVariableNameList();
  for (String key : keys) {
    IRubyObject value = receiver.getMetaClass().getClassVar(key);
    BiVariable var = vars.getVariable(receiver, key);
    if (var != null) {
      var.setRubyObject(value);
    } else {
      var = new ClassVariable(receiver, key, value);
      vars.update(key, var);
    }
  }
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

private static void updateClassVar(RubyObject receiver, BiVariableMap vars) {
  List<String> keys = receiver.getMetaClass().getClassVariableNameList();
  for (String key : keys) {
    IRubyObject value = receiver.getMetaClass().getClassVar(key);
    BiVariable var = vars.getVariable(receiver, key);
    if (var != null) {
      var.setRubyObject(value);
    } else {
      var = new ClassVariable(receiver, key, value);
      vars.update(key, var);
    }
  }
}

代码示例来源:origin: com.ning.billing/killbill-osgi-bundles-jruby

/**
 * Retrieves a class variable 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) {
  IRubyObject value = null;
  if (receiver == receiver.getRuntime().getTopSelf()
      && receiver.getMetaClass().getClassVariableNameList().contains(key)) {
    value = receiver.getMetaClass().getClassVar(key);
  } else {
    RubyClass klazz = receiver.getMetaClass();
    if (klazz.hasClassVariable(key.intern())) {
      value = klazz.getClassVar(key.intern());
    }
  }
  if (value == null) return;
  
  BiVariable var = vars.getVariable(receiver, key);
  if (var != null) {
    var.setRubyObject(value);
  } else {
    var = new ClassVariable(receiver, key, value);
    vars.update(key, var);
  }
}

代码示例来源:origin: org.kill-bill.billing/killbill-osgi-bundles-jruby

/**
 * Retrieves a class variable 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) {
  IRubyObject value = null;
  if (receiver == receiver.getRuntime().getTopSelf()
      && receiver.getMetaClass().getClassVariableNameList().contains(key)) {
    value = receiver.getMetaClass().getClassVar(key);
  } else {
    RubyClass klazz = receiver.getMetaClass();
    if (klazz.hasClassVariable(key.intern())) {
      value = klazz.getClassVar(key.intern());
    }
  }
  if (value == null) return;
  
  BiVariable var = vars.getVariable(receiver, key);
  if (var != null) {
    var.setRubyObject(value);
  } else {
    var = new ClassVariable(receiver, key, value);
    vars.update(key, var);
  }
}

相关文章

微信公众号

最新文章

更多

RubyClass类方法