本文整理了Java中org.jruby.RubyHash
类的一些代码示例,展示了RubyHash
类的具体用法。这些代码示例主要来源于Github
/Stackoverflow
/Maven
等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。RubyHash
类的具体详情如下:
包路径:org.jruby.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());
}
内容来源于网络,如有侵权,请联系作者删除!