String
# File tk/lib/tk/encodedstr.rb, line 68 def initialize(str, enc = nil) super(str) # @encoding = ( enc || # ((self.class::Encoding)? # self.class::Encoding : Tk.encoding_system) ) enc ||= (self.class::Encoding)? self.class::Encoding : ((Tk.encoding)? Tk.encoding : Tk.encoding_system) if TkCore::WITH_ENCODING unless encobj = Tk::Encoding::ENCODING_TABLE.get_obj(enc) fail ArgumentError, "unsupported Tk encoding '#{enc}'" end self.force_encoding(encobj) else @encoding = enc end end
# File tk/lib/tk/encodedstr.rb, line 60 def self.new_with_utf_backslash(str, enc = nil) self.new('', enc).replace(self.subst_utf_backslash(str)) end
# File tk/lib/tk/encodedstr.rb, line 64 def self.new_without_utf_backslash(str, enc = nil) self.new('', enc).replace(str) end
# File tk/lib/tk/encodedstr.rb, line 21 def self.subst_tk_backslash(str) TclTkLib._subst_Tcl_backslash(str) end
# File tk/lib/tk/encodedstr.rb, line 13 def self.subst_utf_backslash(str) # str.gsub(/\\u([0-9A-Fa-f]{1,4})/){[$1.hex].pack('U')} TclTkLib._subst_UTF_backslash(str) end
# File tk/lib/tk/encodedstr.rb, line 38 def self.to_backslash_sequence(str) str.unpack('U*').collect{|c| if c <= 0x1F # control character case c when 0x07; '\a' when 0x08; '\b' when 0x09; '\t' when 0x0a; '\n' when 0x0b; '\v' when 0x0c; '\f' when 0x0d; '\r' else format('\x%02X', c) end elsif c <= 0xFF # ascii character c.chr else format('\u%X', c) end }.join('') end
# File tk/lib/tk/encodedstr.rb, line 17 def self.utf_backslash(str) self.subst_utf_backslash(str) end
wrapper methods for compatibility
# File tk/lib/tk/encodedstr.rb, line 89 def encoding Tk::Encoding::ENCODING_TABLE.get_name(super()) end
# File tk/lib/tk/encodedstr.rb, line 127 def instance_eval(*args, &b) old_enc = @encoding = self.encoding ret = super(*args, &b) if @encoding if @encoding != old_enc # modified by user self.force_encoding(@encoding) end remove_instance_variable(:@encoding) else begin remove_instance_variable(:@encoding) # user sets to nil -> use current default self.force_encoding(Tk.encoding) rescue NameError # removed by user -> ignore, because user don't use @encoding end end ret end
# File tk/lib/tk/encodedstr.rb, line 106 def instance_variable_get(key) if (key.to_s == '@encoding') self.encoding else super(key) end end
# File tk/lib/tk/encodedstr.rb, line 114 def instance_variable_set(key, value) if (key.to_s == '@encoding') if value self.force_encoding(value) else self.force_encoding(Tk::Encoding::UNKNOWN) end value else super(key, value) end end
# File tk/lib/tk/encodedstr.rb, line 151 def instance_variables ret = super() ret << :@encoding # fake !! ret end
Commenting is here to help enhance the documentation. For example, sample code, or clarification of the documentation.
If you have questions about Ruby or the documentation, please post to one of the Ruby mailing lists. You will get better, faster, help that way.
If you wish to post a correction of the docs, please do so, but also file bug report so that it can be corrected for the next release. Thank you.