| In: |
tk/lib/tk/namespace.rb
|
| Parent: | TkObject |
| TkCommandNames | = | [ 'namespace'.freeze, ].freeze |
| Tk_Namespace_ID_TBL | = | TkCore::INTERP.create_table |
| Tk_Namespace_ID | = | ["ns".freeze, "00000".taint].freeze |
| tk_call | -> | __tk_call |
| tk_call_without_enc | -> | __tk_call_without_enc |
| tk_call_with_enc | -> | __tk_call_with_enc |
# File tk/lib/tk/namespace.rb, line 130 def self.children(*args) # args ::= [<namespace>] [<pattern>] # <pattern> must be glob-style pattern tk_split_simplelist(tk_call('namespace', 'children', *args)).collect{|ns| # ns is fullname if Tk_Namesapce_ID.key?(ns) Tk_Namesapce_ID[ns] else ns end } end
# File tk/lib/tk/namespace.rb, line 146 def self.code(script = Proc.new) TkNamespace.new('').code(script) end
# File tk/lib/tk/namespace.rb, line 170 def self.delete(*ns_list) tk_call('namespace', 'delete', *ns_list) end
# File tk/lib/tk/namespace.rb, line 187 def self.ensemble_configinfo(cmd, slot = nil) if slot tk_call('namespace', 'ensemble', 'configure', cmd, '-' + slot.to_s) else inf = {} Hash(*tk_split_simplelist(tk_call('namespace', 'ensemble', 'configure', cmd))).each{|k, v| inf[k[1..-1]] = v} inf end end
# File tk/lib/tk/namespace.rb, line 180 def self.ensemble_configure(cmd, slot, value=None) if slot.kind_of?(Hash) tk_call('namespace', 'ensemble', 'configure', cmd, *hash_kv(slot)) else tk_call('namespace', 'ensemble', 'configure', cmd, '-'+slot.to_s, value) end end
# File tk/lib/tk/namespace.rb, line 177 def self.ensemble_create(*keys) tk_call('namespace', 'ensemble', 'create', *hash_kv(keys)) end
# File tk/lib/tk/namespace.rb, line 196 def self.ensemble_exist?(cmd) bool(tk_call('namespace', 'ensemble', 'exists', cmd)) end
# File tk/lib/tk/namespace.rb, line 200 def self.eval(namespace, cmd = Proc.new, *args) #tk_call('namespace', 'eval', namespace, cmd, *args) TkNamespace.new(namespece).eval(cmd, *args) end
# File tk/lib/tk/namespace.rb, line 213 def self.exist?(ns) bool(tk_call('namespace', 'exists', ns)) end
# File tk/lib/tk/namespace.rb, line 220 def self.export(*patterns) tk_call('namespace', 'export', *patterns) end
# File tk/lib/tk/namespace.rb, line 223 def self.export_with_clear(*patterns) tk_call('namespace', 'export', '-clear', *patterns) end
# File tk/lib/tk/namespace.rb, line 243 def self.force_import(*patterns) tk_call('namespace', 'import', '-force', *patterns) end
# File tk/lib/tk/namespace.rb, line 233 def self.forget(*patterns) tk_call('namespace', 'forget', *patterns) end
# File tk/lib/tk/namespace.rb, line 240 def self.import(*patterns) tk_call('namespace', 'import', *patterns) end
# File tk/lib/tk/namespace.rb, line 253 def self.inscope(namespace, script, *args) tk_call('namespace', 'inscope', namespace, script, *args) end
# File tk/lib/tk/namespace.rb, line 89 def initialize(name = nil, parent = nil) unless name name = Tk_Namespace_ID.join('') Tk_Namespace_ID[1].succ! end name = __tk_call('namespace', 'current') if name == '' if parent if parent =~ /^::/ if name =~ /^::/ @fullname = parent + name else @fullname = parent +'::'+ name end else ancestor = __tk_call('namespace', 'current') ancestor = '' if ancestor == '::' if name =~ /^::/ @fullname = ancestor + '::' + parent + name else @fullname = ancestor + '::'+ parent +'::'+ name end end else # parent == nil ancestor = __tk_call('namespace', 'current') ancestor = '' if ancestor == '::' if name =~ /^::/ @fullname = name else @fullname = ancestor + '::' + name end end @path = @fullname @parent = __tk_call('namespace', 'qualifiers', @fullname) @name = __tk_call('namespace', 'tail', @fullname) # create namespace __tk_call('namespace', 'eval', @fullname, '') Tk_Namespace_ID_TBL[@fullname] = self end
# File tk/lib/tk/namespace.rb, line 260 def self.origin(cmd) tk_call('namespace', 'origin', cmd) end
# File tk/lib/tk/namespace.rb, line 264 def self.parent(namespace=None) ns = tk_call('namespace', 'parent', namespace) if Tk_Namesapce_ID.key?(ns) Tk_Namesapce_ID[ns] else ns end end
# File tk/lib/tk/namespace.rb, line 276 def self.qualifiers(str) tk_call('namespace', 'qualifiers', str) end
# File tk/lib/tk/namespace.rb, line 284 def self.which(name) tk_call('namespace', 'which', name) end
# File tk/lib/tk/namespace.rb, line 287 def self.which_command(name) tk_call('namespace', 'which', '-command', name) end
# File tk/lib/tk/namespace.rb, line 290 def self.which_variable(name) tk_call('namespace', 'which', '-variable', name) end
# File tk/lib/tk/namespace.rb, line 142 def children(pattern=None) TkNamespace.children(@fullname, pattern) end
# File tk/lib/tk/namespace.rb, line 149 def code(script = Proc.new) if script.kind_of?(String) cmd = proc{|*args| ScopeArgs.new(@fullname,*args).instance_eval(script)} elsif script.kind_of?(Proc) cmd = proc{|*args| ScopeArgs.new(@fullname,*args).instance_eval(&script)} else fail ArgumentError, "String or Proc is expected" end TkNamespace::NsCode.new(tk_call_without_enc('namespace', 'code', _get_eval_string(cmd, false))) end
# File tk/lib/tk/namespace.rb, line 164 def current_namespace # ns_tk_call('namespace', 'current') @fullname end
# File tk/lib/tk/namespace.rb, line 204 def eval(cmd = Proc.new, *args) #TkNamespace.eval(@fullname, cmd, *args) #ns_tk_call(cmd, *args) code_obj = code(cmd) ret = code_obj.call(*args) uninstall_cmd(TkCore::INTERP._split_tklist(code_obj.path)[-1]) ret end
# File tk/lib/tk/namespace.rb, line 229 def export_with_clear TkNamespace.export_with_clear(@fullname) end
# File tk/lib/tk/namespace.rb, line 256 def inscope(script, *args) TkNamespace(@fullname, script, *args) end
# File tk/lib/tk/namespace.rb, line 67 def tk_call(*args) #super('namespace', 'eval', @fullname, *args) args = args.collect{|arg| (s = _get_eval_string(arg))? s: ''} super('namespace', 'eval', @fullname, TkCore::INTERP._merge_tklist(*args)) end
# File tk/lib/tk/namespace.rb, line 79 def tk_call_with_enc(*args) #super('namespace', 'eval', @fullname, *args) args = args.collect{|arg| (s = _get_eval_string(arg))? s: ''} super('namespace', 'eval', @fullname, TkCore::INTERP._merge_tklist(*args)) end