org.jruby.RubyHash类的使用及代码示例

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

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

RubyHash介绍

[英]Implementation of the Hash class. Concurrency: no synchronization is required among readers, but all users must synchronize externally with writers.
[中]哈希类的实现。并发性:读卡器之间不需要同步,但所有用户都必须在外部与写卡器同步。

代码示例

代码示例来源:origin: bazelbuild/bazel

@JRubyMethod(name = "decode_json", meta = true)
public static IRubyObject decodeJson(ThreadContext context, IRubyObject recv, IRubyObject json) {
  Ruby runtime = context.runtime;
  RubyMessage ret = (RubyMessage) ((RubyClass) recv).newInstance(context, Block.NULL_BLOCK);
  RubyModule jsonModule = runtime.getClassFromPath("JSON");
  RubyHash opts = RubyHash.newHash(runtime);
  opts.fastASet(runtime.newSymbol("symbolize_names"), runtime.getTrue());
  IRubyObject[] args = new IRubyObject[] { Helpers.invoke(context, jsonModule, "parse", json, opts) };
  ret.initialize(context, args);
  return ret;
}

代码示例来源:origin: asciidoctor/asciidoctorj

private static void handleDefaultAttributeAnnotation(Class<? extends Processor> processor, RubyClass rubyClass) {
  Ruby rubyRuntime = rubyClass.getRuntime();
  if (processor.isAnnotationPresent(DefaultAttribute.class)) {
    DefaultAttribute defaultAttribute = processor.getAnnotation(DefaultAttribute.class);
    RubyHash defaultAttrs = RubyHash.newHash(rubyRuntime);
    defaultAttrs.put(defaultAttribute.key(), defaultAttribute.value());
    rubyClass.callMethod(rubyRuntime.getCurrentContext(), "option", new IRubyObject[]{
        rubyRuntime.newSymbol("default_attrs"),
        defaultAttrs
    });
  }
}

代码示例来源:origin: asciidoctor/asciidoctorj

public static RubyHash toNoneSymbolsRubyHash(Ruby rubyRuntime, Map<String, Object> map) {
  RubyHash rubyHash = new RubyHash(rubyRuntime);
  Set<Entry<String, Object>> entrySet = map.entrySet();
  for (Entry<String, Object> entry : entrySet) {
    rubyHash.put(toJavaObject(entry.getKey()), toJavaObject(entry.getValue()));
  }
  return rubyHash;
}

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

/** rb_hash_invert
 *
 */
@JRubyMethod(name = "invert")
public RubyHash invert(final ThreadContext context) {
  final RubyHash result = newHash(getRuntime());
  visitAll(context, InvertVisitor, result);
  return result;
}

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

/** rb_hash_new
 *
 */
public static final RubyHash newHash(Ruby runtime) {
  return new RubyHash(runtime);
}

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

@JRubyMethod
public RubyHash to_h(ThreadContext context) {
  final Ruby runtime = context.runtime;
  return getType() == runtime.getHash() ? this : newHash(runtime).replace(context, this);
}

代码示例来源:origin: asciidoctor/asciidoctorj

@Override
public boolean containsKey(Object key) {
  if (!(key instanceof String)) {
    return false;
  }
  RubySymbol symbol = rubyHash.getRuntime().getSymbolTable().getSymbol((String) key);
  return rubyHash.containsKey(symbol);
}

代码示例来源:origin: asciidoctor/asciidoctorj

@Override
public Object remove(Object key) {
  if (!(key instanceof String)) {
    return null;
  }
  Object convertedKey = convertJavaToRubyKey((String) key);
  Object oldValue = rubyHash.get(convertedKey);
  rubyHash.remove(convertedKey);
  return convertRubyValue(oldValue);
}

代码示例来源:origin: asciidoctor/asciidoctorj

@Override
public Object put(String key, Object value) {
  final Object convertedKey = convertJavaToRubyKey(key);
  Object oldValue = rubyHash.get(convertedKey);
  rubyHash.put(convertedKey, convertJavaValue(value));
  return oldValue;
}

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

@SuppressWarnings("unchecked")
public String[] getEnv() {
  RubyHash hash = (RubyHash) runtime.getObject().getConstant("ENV");
  int i=0;
  String[] env = new String[hash.size()];
  for (Iterator<Entry<Object, Object>> iter = hash.directEntrySet().iterator(); iter.hasNext(); i++) {
    Map.Entry<Object, Object> entry = iter.next();
    env[i] = entry.getKey().toString() + "=" + entry.getValue().toString();
  }
  return env;
}

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

@Override
  public boolean remove(RubyHash hash, Object o) {
    return hash.remove(o) != null;
  }
};

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

/** rb_hash_select
 *
 */
@JRubyMethod(name = "select")
public IRubyObject select(final ThreadContext context, final Block block) {
  final Ruby runtime = context.runtime;
  if (!block.isGiven()) return enumeratorizeWithSize(context, this, "select", enumSizeFn());
  final RubyHash result = newHash(runtime);
  iteratorVisitAll(context, new SelectVisitor(result), block);
  return result;
}

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

private static String getRubyEnv(RubyHash envHash, String var, String default_value) {
    var = (String) envHash.get(var);
    return var == null ? default_value : var;
  }
}

代码示例来源:origin: asciidoctor/asciidoctorj

@Override
public Object remove(Object key) {
  if (!(key instanceof String)) {
    return null;
  }
  Object oldValue = get(key);
  RubySymbol symbol = rubyHash.getRuntime().getSymbolTable().getSymbol((String) key);
  rubyHash.remove(symbol);
  return convertRubyValue(oldValue);
}

代码示例来源:origin: asciidoctor/asciidoctorj

@Override
public Object put(String key, Object value) {
  Object oldValue = get(key);
  RubySymbol symbol = rubyHash.getRuntime().getSymbolTable().getSymbol(key);
  rubyHash.put(symbol, convertJavaValue(value));
  return oldValue;
}

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

@Override
public RubyHash to_hash() {
  Ruby runtime = getRuntime();
  RubyHash hash = RubyHash.newHash(runtime);
  hash.replace(runtime.getCurrentContext(), this);
  return hash;
}

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

@Override
public void clear() {
  RubyHash.this.clear();
}

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

@Override
  public RubyHash to_hash() {
    RubyHash hash = new RubyHash(getRuntime());
    Set<Map.Entry> entries = ((Map) ((JavaProxy)receiver).getObject()).entrySet();
    for (Map.Entry entry : entries) {
      IRubyObject key = JavaUtil.convertJavaToUsableRubyObject(getRuntime(), entry.getKey());
      IRubyObject value = JavaUtil.convertJavaToUsableRubyObject(getRuntime(), entry.getValue());
      hash.op_aset(getRuntime().getCurrentContext(), key, value);
    }
    return hash;
  }
}

代码示例来源:origin: asciidoctor/asciidoctorj

@Override
public Object get(Object key) {
  if (!(key instanceof String)) {
    return false;
  }
  RubySymbol symbol = rubyHash.getRuntime().getSymbolTable().getSymbol((String) key);
  Object value = rubyHash.get(symbol);
  return convertRubyValue(value);
}

代码示例来源:origin: aurorafeint/jruby-memcached

private RubyFixnum getTTL(ThreadContext context, IRubyObject[] args, int index) {
  Ruby ruby = context.getRuntime();
  if (args.length > index) {
    if (args[index] instanceof RubyFixnum) {
      return (RubyFixnum) args[index];
    } else if (args[index] instanceof RubyHash) {
      RubyHash options = (RubyHash) args[index];
      if (options.containsKey(ruby.newSymbol("ttl"))) {
        Long ttl = (Long) options.get(ruby.newSymbol("ttl"));
        return ruby.newFixnum(ttl);
      } else if (options.containsKey(ruby.newSymbol("expires_in"))) {
        Long expiresIn = (Long) options.get(ruby.newSymbol("expires_in"));
        return ruby.newFixnum(expiresIn);
      }
    }
  }
  return ruby.newFixnum(super.getDefaultTTL());
}

相关文章

微信公众号

最新文章

更多

RubyHash类方法