private void setEncoding(String name) { EncodingDB.Entry e = EncodingDB.getEncodings().get(Bytes.toBytes(name)); if (e != null) { encoding = e.getEncoding(); } else { throw new IllegalCharsetNameException(name); } } }
private void setEncoding(String name) { EncodingDB.Entry e = EncodingDB.getEncodings().get(Bytes.toBytes(name)); if (e != null) { encoding = e.getEncoding(); } else { throw new IllegalCharsetNameException(name); } } }
private static ByteList bytelist(String value, String encodingName) { Encoding encoding; EncodingDB.Entry entry = EncodingDB.getEncodings().get(encodingName.getBytes()); if (entry == null) entry = EncodingDB.getAliases().get(encodingName.getBytes()); if (entry == null) throw new RuntimeException("could not find encoding: " + encodingName); encoding = entry.getEncoding(); ByteList byteList = new ByteList(value.getBytes(RubyEncoding.ISO), encoding); return byteList; }
public IRubyObject findEncodingObject(byte[] bytes) { Entry entry = findEncodingEntry(bytes); Encoding enc; if (entry != null) { enc = entry.getEncoding(); } else { enc = ASCIIEncoding.INSTANCE; } return convertEncodingToRubyEncoding(enc); }
private RubyEncoding loadEncodingEntry(final Entry entry) { Encoding enc = entry.getEncoding(); // load the encoding int index = enc.getIndex(); RubyEncoding[] encodingIndex = this.encodingIndex; if (index >= encodingIndex.length) { encodingIndex = this.encodingIndex = Arrays.copyOf(encodingIndex, index + 4); } return encodingIndex[index] = (RubyEncoding) encodingList[entry.getIndex()]; }
public EncodingService(Ruby runtime) { this.runtime = runtime; encodings = EncodingDB.getEncodings(); aliases = EncodingDB.getAliases(); ascii8bit = encodings.get("ASCII-8BIT".getBytes()).getEncoding(); String javaDefaultCharset = Charset.defaultCharset().name(); Entry javaDefaultEntry = findEncodingOrAliasEntry(javaDefaultCharset.getBytes()); javaDefault = javaDefaultEntry == null ? ascii8bit : javaDefaultEntry.getEncoding(); encodingList = new IRubyObject[encodings.size()]; }
private Encoding findEncodingCommon(ByteList name, boolean error) { checkAsciiEncodingName(name); SpecialEncoding special = SpecialEncoding.valueOf(name); if (special != null) { return special.toEncoding(runtime); } if (error) return findEncodingWithError(name); Entry e = findEncodingOrAliasEntry(name); if (e == null) return null; return e.getEncoding(); }
public Encoding loadEncoding(ByteList name) { Entry entry = findEncodingOrAliasEntry(name); if (entry == null) return null; loadEncodingEntry(entry); // should not attempt RubyEncoding#getEncoding() here return entry.getEncoding(); }
@Override public Encoding decodeEncoding() { byte[] encodingName = decodeByteArray(); return EncodingDB.getEncodings().get(encodingName).getEncoding(); }
private RubyEncoding loadEncodingEntry(final Entry entry) { Encoding enc = entry.getEncoding(); // load the encoding int index = enc.getIndex(); RubyEncoding[] encodingIndex = this.encodingIndex; if (index >= encodingIndex.length) { encodingIndex = this.encodingIndex = Arrays.copyOf(encodingIndex, index + 4); } return encodingIndex[index] = (RubyEncoding) encodingList[entry.getIndex()]; }
public final RubySymbol getSymbol(ThreadContext context, int index, String name, String encodingName) { RubySymbol symbol = symbols[index]; if (symbol == null) { symbol = context.runtime.newSymbol(name); if (encodingName != null) { symbol.associateEncoding(EncodingDB.getEncodings().get(encodingName.getBytes()).getEncoding()); } symbols[index] = symbol; } return symbol; }
public Encoding loadEncoding(ByteList name) { Entry entry = findEncodingOrAliasEntry(name); if (entry == null) return null; loadEncodingEntry(entry); // should not attempt RubyEncoding#getEncoding() here return entry.getEncoding(); }
public EncodingService(Ruby runtime) { this.runtime = runtime; encodings = EncodingDB.getEncodings(); aliases = EncodingDB.getAliases(); ascii8bit = encodings.get("ASCII-8BIT".getBytes()).getEncoding(); String javaDefaultCharset = Charset.defaultCharset().name(); Entry javaDefaultEntry = findEncodingOrAliasEntry(javaDefaultCharset.getBytes()); javaDefault = javaDefaultEntry == null ? ascii8bit : javaDefaultEntry.getEncoding(); encodingList = new IRubyObject[encodings.size()]; }
@JRubyMethod public IRubyObject replacement(ThreadContext context) { int ret = ec.makeReplacement(); if (ret == -1) { throw context.runtime.newUndefinedConversionError("replacement character setup failed"); } return context.runtime.newString(new ByteList( ec.replacementString, 0, ec.replacementLength, context.runtime.getEncodingService().findEncodingOrAliasEntry(ec.replacementEncoding).getEncoding(), true)); }
private Encoding findEncodingCommon(ByteList name, boolean error) { checkAsciiEncodingName(name); SpecialEncoding special = SpecialEncoding.valueOf(name); if (special != null) { return special.toEncoding(runtime); } if (error) return findEncodingWithError(name); Entry e = findEncodingOrAliasEntry(name); if (e == null) return null; return e.getEncoding(); }
public IRubyObject findEncodingObject(byte[] bytes) { Entry entry = findEncodingEntry(bytes); Encoding enc; if (entry != null) { enc = entry.getEncoding(); } else { enc = ASCIIEncoding.INSTANCE; } return convertEncodingToRubyEncoding(enc); }
public static Encoding encReplicate(ThreadContext context, byte[] name, Encoding encoding) { encCheckDuplication(context, name); EncodingDB.replicate(new String(name), new String(encoding.getName())); return EncodingDB.getEncodings().get(name).getEncoding(); }
/** * Find a non-special encoding, raising argument error if it does not exist. * * @param name the name of the encoding to look up * @return the Encoding object found, or raises ArgumentError */ public Encoding findEncodingWithError(ByteList name) { return findEntryWithError(name).getEncoding(); }
public static CallSite getByteListBootstrap(Lookup lookup, String name, MethodType type, String asString, String encodingName) { byte[] bytes = Helpers.stringToRawBytes(asString); Encoding encoding = EncodingDB.getEncodings().get(encodingName.getBytes()).getEncoding(); ByteList byteList = new ByteList(bytes, encoding); return new ConstantCallSite(constant(ByteList.class, byteList)); }
private Encoding findEncodingCommon(IRubyObject str, boolean error) { ByteList name = str.convertToString().getByteList(); checkAsciiEncodingName(name); SpecialEncoding special = SpecialEncoding.valueOf(name); if (special != null) { return special.toEncoding(runtime); } if (error) return findEncodingWithError(name); Entry e = findEncodingOrAliasEntry(name); if (e == null) return null; return e.getEncoding(); }