14
14
Tk_Namespace_ID_TBL = TkCore::INTERP.create_table
15
15
Tk_Namespace_ID = ["ns".freeze, "00000".taint].freeze
17
Tk_NsCode_RetObjID_TBL = TkCore::INTERP.create_table
19
TkCore::INTERP.init_ip_env{
20
Tk_Namespace_ID_TBL.clear
21
Tk_NsCode_RetObjID_TBL.clear
24
def TkNamespace.id2obj(id)
25
Tk_Namespace_ID_TBL[id]? Tk_Namespace_ID_TBL[id]: id
28
#####################################
17
30
class Ensemble < TkObject
19
32
['namespace', 'ensemble', 'configure', self.path]
153
TkCore::INTERP._eval_without_enc(@scope + array2tk_list(args))
171
ret = TkCore::INTERP._eval_without_enc(@scope + array2tk_list(args))
173
ret = TkNamespace::Tk_NsCode_RetObjID_TBL.delete(ret.to_i)
179
#####################################
182
lst = tk_split_simplelist(super(cmd), false, false)
186
lst.insert(1, @fullname)
188
TkCore::INTERP._merge_tklist(*lst)
157
191
alias __tk_call tk_call
240
274
def self.code(script = Proc.new)
241
275
TkNamespace.new('').code(script)
243
278
def code(script = Proc.new)
244
279
if script.kind_of?(String)
245
280
cmd = proc{|*args| ScopeArgs.new(@fullname,*args).instance_eval(script)}
251
286
TkNamespace::NsCode.new(tk_call_without_enc('namespace', 'code',
252
287
_get_eval_string(cmd, false)))
290
def code(script = Proc.new)
291
if script.kind_of?(String)
293
ret = ScopeArgs.new(@fullname,*args).instance_eval(script)
295
TkNamespace::Tk_NsCode_RetObjID_TBL[id] = ret
298
elsif script.kind_of?(Proc)
300
ret = ScopeArgs.new(@fullname,*args).instance_eval(&script)
302
TkNamespace::Tk_NsCode_RetObjID_TBL[id] = ret
306
fail ArgumentError, "String or Proc is expected"
308
TkNamespace::NsCode.new(tk_call_without_enc('namespace', 'code',
309
_get_eval_string(cmd, false)),
313
def self.current_path
314
tk_call('namespace', 'current')
256
tk_call('namespace', 'current')
321
ns = self.current_path
322
if Tk_Namespace_ID_TBL.key?(ns)
323
Tk_Namespace_ID_TBL[ns]
258
328
def current_namespace
259
329
# ns_tk_call('namespace', 'current')
262
333
alias current current_namespace
264
335
def self.delete(*ns_list)
265
336
tk_call('namespace', 'delete', *ns_list)
338
if ns.kind_of?(TkNamespace)
339
Tk_Namespace_ID_TBL.delete(ns.path)
341
Tk_Namespace_ID_TBL.delete(ns.to_s)
268
346
TkNamespece.delete(@fullname)
295
373
#tk_call('namespace', 'eval', namespace, cmd, *args)
296
374
TkNamespace.new(namespece).eval(cmd, *args)
298
377
def eval(cmd = Proc.new, *args)
299
378
#TkNamespace.eval(@fullname, cmd, *args)
300
379
#ns_tk_call(cmd, *args)
302
381
ret = code_obj.call(*args)
303
382
# uninstall_cmd(TkCore::INTERP._split_tklist(code_obj.path)[-1])
304
383
uninstall_cmd(_fromUTF8(TkCore::INTERP._split_tklist(_toUTF8(code_obj.path))[-1]))
387
def eval(cmd = Proc.new, *args)
389
ret = code_obj.call(*args)
390
uninstall_cmd(_fromUTF8(TkCore::INTERP._split_tklist(_toUTF8(code_obj.path))[-1]))
309
395
bool(tk_call('namespace', 'exists', ns))
312
TkNamespece.delete(@fullname)
398
TkNamespece.exist?(@fullname)
315
401
def self.export(*patterns)
349
435
tk_call('namespace', 'inscope', namespace, script, *args)
351
437
def inscope(script, *args)
352
TkNamespace(@fullname, script, *args)
438
TkNamespace.inscope(@fullname, script, *args)
355
441
def self.origin(cmd)