Hash
# File tk/lib/tk/optionobj.rb, line 162 def +(hash) unless hash.kind_of?(Hash) fail ArgumentError, "expect a Hash" end new_obj = self.dup new_obj.update_without_notify(_symbolkey2str(hash)) new_obj end
# File tk/lib/tk/optionobj.rb, line 186 def [](key) super(key.to_s) end
# File tk/lib/tk/optionobj.rb, line 196 def []=(key, val) store(key,val) end
# File tk/lib/tk/optionobj.rb, line 58 def assign(*wins) # win := # widget #==> call widget.configure(hash) # [widget] #==> call widget.configure(hash) # [widget, nil, {src=>target, ... }] # #==> call widget.configure(hash) # with converting hash-key # [widget, method] #==> call widget.method(hash) # [widget, method, {src=>target, ... }] # #==> call widget.method(hash) # with converting hash-key # [widget [receiver, method, arg, ... ]] # #==> call receiver.method(arg, ... , hash) # [widget [receiver, method, arg, ... ], {src=>target, ... }] # #==> call receiver.method(arg, ... , hash) # with onverting hash-key # # src := option_name_on_optobj # # target := # nil #==> not use the src # option_name_on_target_widget # [ option_name_on_target_widget, ... ] # #==> set all of them # wins.each{|win| _remove_win(win) @observ << win notify(win) } self end
# File tk/lib/tk/optionobj.rb, line 178 def configure(key, value=nil) if key.kind_of?(Hash) update(key) else store(key,value) end end
# File tk/lib/tk/optionobj.rb, line 98 def notify(target = nil) if target targets = [target] elsif @observ.empty? return self else targets = @observ.dup end return self if empty? org_hash = _symbolkey2str(self) targets.each{|win| widget = receiver = win hash = org_hash begin if win.kind_of?(Array) widget, method, conv_tbl = win receiver = widget if conv_tbl hash = {} org_hash.each{|key, val| key = conv_tbl[key] if conv_tbl.key?(key) next unless key if key.kind_of?(Array) key.each{|k| hash[k] = val} else hash[key] = val end } end if method.kind_of?(Array) receiver, method, *args = method receiver.__send__(method, *(args << hash)) elsif method widget.__send__(method, hash) else widget.configure(hash) end else widget.configure(self) end rescue => e if ( ( widget.kind_of?(TkObject) && widget.respond_to?('exist?') && ! receiver.exist? ) || ( receiver.kind_of?(TkObject) && receiver.respond_to?('exist?') && ! receiver.exist? ) ) @observ.delete(win) else fail e end end } self end
# File tk/lib/tk/optionobj.rb, line 22 def observ_info @observ.dup end
# File tk/lib/tk/optionobj.rb, line 26 def observs @observ.collect{|win| if win.kind_of?(Array) win[0] else win end } end
# File tk/lib/tk/optionobj.rb, line 200 def replace(hash) super(_symbolkey2str(hash)) notify end
# File tk/lib/tk/optionobj.rb, line 191 def store(key, val) key = key.to_s super(key, val) notify end
# File tk/lib/tk/optionobj.rb, line 91 def unassign(*wins) wins.each{|win| _remove_win(win) } self end
# File tk/lib/tk/optionobj.rb, line 173 def update(hash) update_without_notify(_symbolkey2str(hash)) notify 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.