File: //usr/local/rvm/gems/ruby-3.0.2/doc/mail-2.7.1/ri/Mail/Multibyte/Chars/cdesc-Chars.ri
U:RDoc::NormalClass[iI"
Chars:ETI"Mail::Multibyte::Chars;TI"Object;To:RDoc::Markup::Document:@parts[o;;[o:RDoc::Markup::Paragraph;[I"sChars enables you to work transparently with UTF-8 encoding in the Ruby String class without having extensive ;TI"xknowledge about the encoding. A Chars object accepts a string upon initialization and proxies String methods in an ;TI"[encoding safe manner. All the normal String methods are also implemented on the proxy.;To:RDoc::Markup::BlankLine o; ;[I"uString methods are proxied through the Chars object, and can be accessed through the +mb_chars+ method. Methods ;TI"ewhich would normally return a String object now return a Chars object so methods can be chained.;T@o:RDoc::Markup::Verbatim;[I"X"The Perfect String ".mb_chars.downcase.strip.normalize # => "the perfect string"
;T:@format0o; ;[I"sChars objects are perfectly interchangeable with String objects as long as no explicit class checks are made. ;TI"iIf certain methods do explicitly check the class, call +to_s+ before you pass chars objects to them.;T@o;;[I"=bad.explicit_checking_method "T".mb_chars.downcase.to_s
;T;0o; ;[I"xThe default Chars implementation assumes that the encoding of the string is UTF-8, if you want to handle different ;TI"Xencodings you can write your own multibyte string handler and configure it through ;TI"!Mail::Multibyte.proxy_class.;T@o;;[I"class CharsForUTF32
;TI" def size
;TI"" @wrapped_string.size / 4
;TI" end
;TI"
;TI"! def self.accepts?(string)
;TI" string.length % 4 == 0
;TI" end
;TI" end
;TI"
;TI"0Mail::Multibyte.proxy_class = CharsForUTF32;T;0:
@fileI" lib/mail/multibyte/chars.rb;T:0@omit_headings_from_table_of_contents_below0;
0;0[[
I" to_s;TI"R;T:publicFI" lib/mail/multibyte/chars.rb;T[
I"to_str;T@8;F@9[
I"wrapped_string;T@8;F@9[ [[I"Comparable;To;;[ ;
@4;0@9[[I"
class;T[[;[[I"consumes?;T@9[I"new;T@9[I"wants?;T@9[:protected[ [:private[ [I"
instance;T[[;['[I"+;T@9[I"<=>;T@9[I"=~;T@9[I"[];T@9[I"[]=;T@9[I"acts_like_string?;T@9[I"capitalize;T@9[I"center;T@9[I"compose;T@9[I"decompose;T@9[I"
downcase;T@9[I"
g_length;T@9[I"
include?;T@9[I"
index;T@9[I"insert;T@9[I"
limit;T@9[I"
ljust;T@9[I"lstrip;T@9[I"method_missing;T@9[I"normalize;T@9[I"ord;T@9[I"respond_to?;T@9[I"reverse;T@9[I"rindex;T@9[I"
rjust;T@9[I"rstrip;T@9[I" size;T@9[I"
slice;T@9[I"
split;T@9[I"
strip;T@9[I"tidy_bytes;T@9[I"titlecase;T@9[I"
titleize;T@9[I"upcase;T@9[;[ [;[ [ [U:RDoc::Context::Section[i 0o;;[ ;
0;0[@4I"Mail::Multibyte;TcRDoc::NormalModule