Class: TclTkIp
- Defined in:
- sample/demos-en/tkencoding.rb,
lib/tk.rb,
lib/tk.rb,
lib/tk.rb
Overview
-*- ruby -*-
tkencoding.rb written by [email protected]
Instance Attribute Summary collapse
-
#encoding ⇒ Object
from tkencoding.rb by [email protected] attr_accessor :encoding.
Class Method Summary collapse
Instance Method Summary collapse
- #__fromUTF8 ⇒ Object
- #__toUTF8 ⇒ Object
- #_eval(cmd) ⇒ Object (also: #_eval_with_enc, #__eval)
-
#_eval_without_enc ⇒ Object
backup original (without encoding) _eval and _invoke.
- #_fromUTF8(str, encoding = nil) ⇒ Object
- #_invoke(*cmds) ⇒ Object (also: #_invoke_with_enc, #__invoke)
- #_invoke_without_enc ⇒ Object
- #_ip_id_ ⇒ Object
-
#_toUTF8(str, encoding = nil) ⇒ Object
without Encoding (Ruby 1.8).
- #default_encoding=(name) ⇒ Object
- #encoding_name ⇒ Object (also: #encoding, #default_encoding)
- #encoding_obj ⇒ Object
- #force_default_encoding=(mode) ⇒ Object
- #force_default_encoding? ⇒ Boolean
Instance Attribute Details
#encoding=(value) ⇒ Object
from tkencoding.rb by [email protected] attr_accessor :encoding
2643 2644 2645 |
# File 'lib/tk.rb', line 2643 def encoding=(value) @encoding = value end |
Class Method Details
.__new__ ⇒ Object
24 |
# File 'lib/multi-tk.rb', line 24 alias __new__ new |
.new(*args) ⇒ Object
27 28 29 30 31 32 |
# File 'lib/multi-tk.rb', line 27 def new(*args) if Thread.current.group != ThreadGroup::Default raise SecurityError, 'only ThreadGroup::Default can call TclTkIp.new' end __new__(*args) end |
Instance Method Details
#__fromUTF8 ⇒ Object
2663 |
# File 'lib/tk.rb', line 2663 alias __fromUTF8 _fromUTF8 |
#__toUTF8 ⇒ Object
2662 |
# File 'lib/tk.rb', line 2662 alias __toUTF8 _toUTF8 |
#_eval(cmd) ⇒ Object Also known as: _eval_with_enc, __eval
14 15 16 17 18 19 20 |
# File 'sample/demos-en/tkencoding.rb', line 14 def _eval(cmd) if( @encoding ) _fromUTF8(__eval(_toUTF8(cmd,@encoding)),@encoding) else __eval(cmd) end end |
#_eval_without_enc ⇒ Object
backup original (without encoding) _eval and _invoke
17 |
# File 'lib/tk.rb', line 17 alias _eval_without_enc _eval |
#_fromUTF8(str, encoding = nil) ⇒ Object
2716 2717 2718 2719 2720 2721 2722 2723 2724 2725 2726 2727 2728 2729 2730 2731 2732 2733 2734 2735 2736 2737 2738 2739 2740 2741 |
# File 'lib/tk.rb', line 2716 def _fromUTF8(str, enc = nil) # str must be UTF-8 or binary. enc_name = str.instance_variable_get(:@encoding) enc_name ||= Tk::Encoding::ENCODING_TABLE.get_name(str.encoding) rescue nil # is 'binary' encoding? if enc_name == Tk::Encoding::BINARY_NAME return str.dup.force_encoding(Tk::Encoding::BINARY_NAME) end # get target encoding name (if enc == nil, use default encoding) begin enc_name = Tk::Encoding::ENCODING_TABLE.get_name(enc) rescue # then, enc != nil # unknown encoding for Tk -> try to convert encoding on Ruby str = str.dup.force_encoding(Tk::Encoding::UTF8_NAME) str.encode!(enc) # modify self !! return str # if no error, probably succeed converting end encstr = __fromUTF8(str, enc_name) encstr.force_encoding(Tk::Encoding::ENCODING_TABLE.get_obj(enc_name)) encstr end |
#_invoke(*cmds) ⇒ Object Also known as: _invoke_with_enc, __invoke
22 23 24 25 26 27 28 29 |
# File 'sample/demos-en/tkencoding.rb', line 22 def _invoke(*cmds) if( @encoding ) cmds = cmds.collect{|cmd| _toUTF8(cmd,@encoding)} _fromUTF8(__invoke(*cmds),@encoding) else __invoke(*cmds) end end |
#_invoke_without_enc ⇒ Object
18 |
# File 'lib/tk.rb', line 18 alias _invoke_without_enc _invoke |
#_ip_id_ ⇒ Object
20 21 22 23 |
# File 'lib/tk.rb', line 20 def _ip_id_ # for RemoteTkIp '' end |
#_toUTF8(str, encoding = nil) ⇒ Object
without Encoding (Ruby 1.8)
2671 2672 2673 2674 2675 2676 2677 2678 2679 2680 2681 2682 2683 2684 2685 2686 2687 2688 2689 2690 2691 2692 2693 2694 2695 2696 2697 2698 2699 2700 2701 2702 2703 2704 2705 2706 2707 2708 2709 2710 2711 2712 2713 2714 2715 |
# File 'lib/tk.rb', line 2671 def _toUTF8(str, enc = nil) if enc # use given encoding begin enc_name = Tk::Encoding::ENCODING_TABLE.get_name(enc) rescue # unknown encoding for Tk -> try to convert encoding on Ruby str = str.dup.force_encoding(enc) str.encode!(Tk::Encoding::UTF8_NAME) # modify self !! return str # if no error, probably succeed converting end end enc_name ||= str.instance_variable_get(:@encoding) enc_name ||= Tk::Encoding::ENCODING_TABLE.get_name(str.encoding) rescue nil unless enc_name # str.encoding isn't supported by Tk -> try to convert on Ruby begin return str.encode(Tk::Encoding::UTF8_NAME) # new string rescue # error -> ignore, try to use default encoding of Ruby/Tk end end #enc_name ||= # Tk::Encoding::ENCODING_TABLE.get_name(Tk.encoding) rescue nil enc_name ||= Tk::Encoding::ENCODING_TABLE.get_name(nil) # is 'binary' encoding? if enc_name == Tk::Encoding::BINARY_NAME return str.dup.force_encoding(Tk::Encoding::BINARY_NAME) end # force default encoding? if ! str.kind_of?(Tk::EncodedString) && self.force_default_encoding? enc_name = Tk::Encoding::ENCODING_TABLE.get_name(Tk.default_encoding) end encstr = __toUTF8(str, enc_name) encstr.force_encoding(Tk::Encoding::UTF8_NAME) encstr end |
#default_encoding=(name) ⇒ Object
2636 2637 2638 2639 |
# File 'lib/tk.rb', line 2636 def default_encoding=(name) name = name.name if name.kind_of?(::Encoding) if Tk::WITH_ENCODING @encoding = name end |
#encoding_name ⇒ Object Also known as: encoding, default_encoding
2648 2649 2650 |
# File 'lib/tk.rb', line 2648 def encoding_name (@encoding)? @encoding.dup: nil end |
#encoding_obj ⇒ Object
2654 2655 2656 2657 2658 2659 2660 |
# File 'lib/tk.rb', line 2654 def encoding_obj if Tk::WITH_ENCODING Tk::Encoding.tcl2rb_encoding(@encoding) else (@encoding)? @encoding.dup: nil end end |
#force_default_encoding=(mode) ⇒ Object
2628 2629 2630 |
# File 'lib/tk.rb', line 2628 def force_default_encoding=(mode) @force_default_encoding = (mode)? true: false end |
#force_default_encoding? ⇒ Boolean
2632 2633 2634 |
# File 'lib/tk.rb', line 2632 def force_default_encoding? @force_default_encoding ||= false end |