Class: Coder::Cleaner::Java
- Inherits:
-
Object
- Object
- Coder::Cleaner::Java
- Defined in:
- lib/coder/cleaner/java.rb
Class Method Summary collapse
Instance Method Summary collapse
- #clean(str) ⇒ Object
-
#initialize(encoding) ⇒ Java
constructor
A new instance of Java.
Constructor Details
#initialize(encoding) ⇒ Java
Returns a new instance of Java.
13 14 15 16 17 18 19 20 21 22 23 |
# File 'lib/coder/cleaner/java.rb', line 13 def initialize(encoding) encoding = encoding.to_s.upcase @charset = ::Java::JavaNioCharset::Charset.for_name(encoding) @decoder = @charset.new_decoder @decoder.on_malformed_input(::Java::JavaNioCharset::CodingErrorAction::IGNORE) @decoder.on_unmappable_character(::Java::JavaNioCharset::CodingErrorAction::IGNORE) rescue ::Java::JavaNioCharset::UnsupportedCharsetException raise Coder::InvalidEncoding, "unknown encoding name - #{encoding}" rescue Java::JavaLang::RuntimeException => e raise Coder::Error, e., e.backtrace end |
Class Method Details
.available? ⇒ Boolean
6 7 8 9 10 11 |
# File 'lib/coder/cleaner/java.rb', line 6 def self.available? require 'java' !!::Java::JavaNioCharset::Charset rescue false end |
Instance Method Details
#clean(str) ⇒ Object
25 26 27 28 29 30 |
# File 'lib/coder/cleaner/java.rb', line 25 def clean(str) buffer = ::Java::JavaNio::ByteBuffer.wrap(str.to_java_bytes) @decoder.decode(buffer).to_s rescue Java::JavaLang::RuntimeException => e raise Coder::Error, e., e.backtrace end |