Hash
# File tk/lib/tk/optionobj.rb, line 163 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 187 def [](key) super(key.to_s) end
# File tk/lib/tk/optionobj.rb, line 197 def []=(key, val) store(key,val) end
# File tk/lib/tk/optionobj.rb, line 59 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 179 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 99 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 23 def observ_info @observ.dup end
# File tk/lib/tk/optionobj.rb, line 27 def observs @observ.collect{|win| if win.kind_of?(Array) win[0] else win end } end
# File tk/lib/tk/optionobj.rb, line 201 def replace(hash) super(_symbolkey2str(hash)) notify end
# File tk/lib/tk/optionobj.rb, line 192 def store(key, val) key = key.to_s super(key, val) notify end
# File tk/lib/tk/optionobj.rb, line 92 def unassign(*wins) wins.each{|win| _remove_win(win) } self end
# File tk/lib/tk/optionobj.rb, line 174 def update(hash) update_without_notify(_symbolkey2str(hash)) notify end
Commenting is here to help enhance the documentation. For example, code samples, 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.
If you want to help improve the Ruby documentation, please visit Documenting-ruby.org.