Class | Tk::EncodedString
In: | tk/lib/tk/encodedstr.rb
Parent: | String

### Methods

new new_with_utf_backslash new_without_utf_backslash subst_tk_backslash subst_utf_backslash to_backslash_sequence utf_backslash utf_to_backslash utf_to_backslash_sequence

### Constants

Encoding | = | nil

### Attributes

encoding | [R] |

### Public Class methods

new(str, enc = nil)

[Source]

    # 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) )
          @encoding = ( enc ||
                       ((self.class::Encoding)?
                             self.class::Encoding :
                             ((Tk.encoding)? Tk.encoding : Tk.encoding_system) ) )
        end

new_with_utf_backslash(str, enc = nil)

[Source]

    # 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

new_without_utf_backslash(str, enc = nil)

[Source]

    # File tk/lib/tk/encodedstr.rb, line 64
        def self.new_without_utf_backslash(str, enc = nil)
          self.new('', enc).replace(str)
        end

subst_tk_backslash(str)

[Source]

    # File tk/lib/tk/encodedstr.rb, line 21
        def self.subst_tk_backslash(str)
          TclTkLib._subst_Tcl_backslash(str)
        end

subst_utf_backslash(str)

[Source]

    # 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

to_backslash_sequence(str)

[Source]

    # 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

utf_backslash(str)

[Source]

    # File tk/lib/tk/encodedstr.rb, line 17
        def self.utf_backslash(str)
          self.subst_utf_backslash(str)
        end

utf_to_backslash(str)

[Source]

    # File tk/lib/tk/encodedstr.rb, line 34
        def self.utf_to_backslash(str)
          self.utf_to_backslash_sequence(str)
        end

utf_to_backslash_sequence(str)

[Source]

    # File tk/lib/tk/encodedstr.rb, line 25
        def self.utf_to_backslash_sequence(str)
          str.unpack('U*').collect{|c|
            if c <= 0xFF  # ascii character
              c.chr
            else
              format('\u%X', c)
            end
          }.join('')
        end

[Validate]