org.jruby.Ruby.getEncodingService()方法的使用及代码示例

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

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

Ruby.getEncodingService介绍

暂无

代码示例

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

  1. @JRubyMethod(name = "find", meta = true)
  2. public static IRubyObject find(ThreadContext context, IRubyObject recv, IRubyObject str) {
  3. Ruby runtime = context.runtime;
  4. // Wacky but true...return arg if it is an encoding looking for itself
  5. if (str instanceof RubyEncoding) return str;
  6. return runtime.getEncodingService().rubyEncodingFromObject(str);
  7. }

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

  1. @JRubyMethod
  2. public IRubyObject source_encoding(ThreadContext context) {
  3. if (ec.sourceEncoding == null) return context.nil;
  4. return context.runtime.getEncodingService().convertEncodingToRubyEncoding(ec.sourceEncoding);
  5. }

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

  1. @JRubyMethod
  2. public IRubyObject destination_encoding(ThreadContext context) {
  3. if (ec.destinationEncoding == null) return context.nil;
  4. return context.runtime.getEncodingService().convertEncodingToRubyEncoding(ec.destinationEncoding);
  5. }

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

  1. @JRubyMethod
  2. public IRubyObject internal_encoding(ThreadContext context) {
  3. if (openFile.encs.enc2 == null) return context.nil;
  4. return context.runtime.getEncodingService().getEncoding(getReadEncoding());
  5. }

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

  1. public Encoding toEncoding(Ruby runtime) {
  2. switch (this) {
  3. case LOCALE: return runtime.getEncodingService().getLocaleEncoding();
  4. case EXTERNAL: return runtime.getDefaultExternalEncoding();
  5. case INTERNAL: return runtime.getDefaultInternalEncoding();
  6. case FILESYSTEM: return runtime.getDefaultFilesystemEncoding();
  7. default:
  8. throw new AssertionError("invalid SpecialEncoding: " + this);
  9. }
  10. }
  11. }

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

  1. public static IRubyObject objEncoding(ThreadContext context, IRubyObject obj) {
  2. Encoding enc = encGet(context, obj);
  3. if (enc == null) {
  4. throw context.runtime.newTypeError("unknown encoding");
  5. }
  6. return context.runtime.getEncodingService().convertEncodingToRubyEncoding(enc);
  7. }

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

  1. @JRubyMethod(name = "list", meta = true)
  2. public static IRubyObject list(ThreadContext context, IRubyObject recv) {
  3. Ruby runtime = context.runtime;
  4. return RubyArray.newArrayMayCopy(runtime, runtime.getEncodingService().getEncodingList());
  5. }

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

  1. @JRubyMethod
  2. public IRubyObject encoding(ThreadContext context) {
  3. Encoding enc = (pattern == null) ? str.getEncoding() : pattern.getEncoding();
  4. return context.runtime.getEncodingService().getEncoding(enc);
  5. }

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

  1. @JRubyMethod(name = "compatible?", meta = true)
  2. public static IRubyObject compatible_p(ThreadContext context, IRubyObject self, IRubyObject first, IRubyObject second) {
  3. Ruby runtime = context.runtime;
  4. Encoding enc = areCompatible(first, second);
  5. return enc == null ? runtime.getNil() : runtime.getEncodingService().getEncoding(enc);
  6. }

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

  1. public IRubyObject getDefaultExternal() {
  2. Encoding defaultEncoding = runtime.getDefaultExternalEncoding();
  3. if (defaultEncoding == null) {
  4. // TODO: MRI seems to default blindly to US-ASCII and we were using Charset default from Java...which is right?
  5. ByteList encodingName = ByteList.create("US-ASCII");
  6. defaultEncoding = runtime.getEncodingService().loadEncoding(encodingName);
  7. runtime.setDefaultExternalEncoding(defaultEncoding);
  8. }
  9. return getEncoding(defaultEncoding);
  10. }

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

  1. private void setupSourceEncoding(ParserConfiguration parserConfig, Encoding defaultEncoding) {
  2. if (config.getSourceEncoding() != null) {
  3. if (config.isVerbose()) {
  4. config.getError().println("-K is specified; it is for 1.8 compatibility and may cause odd behavior");
  5. }
  6. parserConfig.setDefaultEncoding(getEncodingService().getEncodingFromString(config.getSourceEncoding()));
  7. } else {
  8. parserConfig.setDefaultEncoding(defaultEncoding);
  9. }
  10. }

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

  1. @JRubyMethod
  2. public static IRubyObject to_s(ThreadContext context, IRubyObject self) {
  3. final Encoding ascii8bit = context.runtime.getEncodingService().getAscii8bitEncoding();
  4. // All bytes can be considered raw strings and forced to particular codings if not 8bitascii
  5. ByteList bytes = new ByteList((byte[]) ((ArrayJavaProxy) self).getObject(), ascii8bit);
  6. return RubyString.newStringLight(context.runtime, bytes);
  7. }

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

  1. @Override public Object execute(ParserSupport support, RubyLexer lexer, Object yyVal, Object[] yyVals, int yyTop) {
  2. yyVal = new FileNode(lexer.tokline, new ByteList(lexer.getFile().getBytes(),
  3. support.getConfiguration().getRuntime().getEncodingService().getLocaleEncoding()));
  4. return yyVal;
  5. }
  6. };

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

  1. public Node parseInline(InputStream in, String file, DynamicScope scope) {
  2. addEvalParseToStats();
  3. ParserConfiguration parserConfig =
  4. new ParserConfiguration(this, 0, false, true, false, config);
  5. setupSourceEncoding(parserConfig, getEncodingService().getLocaleEncoding());
  6. return parser.parse(file, in, scope, parserConfig);
  7. }

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

  1. @JRubyMethod(name = "locale_charmap", meta = true)
  2. public static IRubyObject locale_charmap(ThreadContext context, IRubyObject recv) {
  3. Ruby runtime = context.runtime;
  4. EncodingService service = runtime.getEncodingService();
  5. ByteList name = new ByteList(service.getLocaleEncoding().getName());
  6. return RubyString.newUsAsciiStringNoCopy(runtime, name);
  7. }

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

  1. @JRubyMethod
  2. public IRubyObject external_encoding(ThreadContext context) {
  3. EncodingService encodingService = context.runtime.getEncodingService();
  4. if (openFile.encs.enc2 != null) return encodingService.getEncoding(openFile.encs.enc2);
  5. if (openFile.isWritable()) {
  6. return openFile.encs.enc == null ? context.nil : encodingService.getEncoding(openFile.encs.enc);
  7. }
  8. return encodingService.getEncoding(getReadEncoding());
  9. }

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

  1. public static void ioSetEncodingByBOM(ThreadContext context, RubyIO io) {
  2. Ruby runtime = context.runtime;
  3. Encoding bomEncoding = ioStripBOM(context, io);
  4. if (bomEncoding != null) {
  5. // FIXME: Wonky that we acquire RubyEncoding to pass these encodings through
  6. IRubyObject theBom = runtime.getEncodingService().getEncoding(bomEncoding);
  7. IRubyObject theInternal = io.internal_encoding(context);
  8. io.setEncoding(runtime.getCurrentContext(), theBom, theInternal, context.nil);
  9. } else {
  10. io.setEnc2(null);
  11. }
  12. }

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

  1. @JRubyMethod
  2. public IRubyObject replacement(ThreadContext context) {
  3. int ret = ec.makeReplacement();
  4. if (ret == -1) {
  5. throw context.runtime.newUndefinedConversionError("replacement character setup failed");
  6. }
  7. return context.runtime.newString(new ByteList(
  8. ec.replacementString,
  9. 0,
  10. ec.replacementLength,
  11. context.runtime.getEncodingService().findEncodingOrAliasEntry(ec.replacementEncoding).getEncoding(), true));
  12. }

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

  1. protected void setEncoding(ByteList name) {
  2. Encoding newEncoding = parser.getRuntime().getEncodingService().loadEncoding(name);
  3. if (newEncoding == null) {
  4. compile_error("unknown encoding name: " + name.toString());
  5. return;
  6. }
  7. if (!newEncoding.isAsciiCompatible()) {
  8. compile_error(name.toString() + " is not ASCII compatible");
  9. return;
  10. }
  11. setEncoding(newEncoding);
  12. }

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

  1. protected void setEncoding(ByteList name) {
  2. Ruby runtime = parserSupport.getConfiguration().getRuntime();
  3. Encoding newEncoding = runtime.getEncodingService().loadEncoding(name);
  4. if (newEncoding == null) throw runtime.newArgumentError("unknown encoding name: " + name.toString());
  5. if (!newEncoding.isAsciiCompatible()) throw runtime.newArgumentError(name.toString() + " is not ASCII compatible");
  6. setEncoding(newEncoding);
  7. }

相关文章

Ruby类方法