# Copyright 2005, @Last Software, Inc. # This software is provided as an example of using the Ruby interface # to SketchUp. # Permission to use, copy, modify, and distribute this software for # any purpose and without fee is hereby granted, provided that the above # copyright notice appear in all copies. # THIS SOFTWARE IS PROVIDED "AS IS" AND WITHOUT ANY EXPRESS OR # IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED # WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. #----------------------------------------------------------------------------- require 'sketchup.rb' #----------------------------------------------------------------------------- def getValueOptionsProviderTest model = Sketchup.active_model manager = model.options begin provider = manager[0] rescue UI.messagebox $!.message end # Retrieves each value for each key option = provider[1] if (option) UI.messagebox option else UI.messagebox "Failure" end end def setValueOptionsProviderTest model = Sketchup.active_model manager = model.options begin provider = manager[0] rescue UI.messagebox $!.message end # Retrieves each value for each key option = provider[1] UI.messagebox option option = provider[1]=10 if (option) UI.messagebox option else UI.messagebox "Failure" end end #each and each_pair are the same. each_pair is an alias for each def eachOptionsProviderTest model = Sketchup.active_model manager = model.options begin # First provider is PageManager provider = manager[0] rescue UI.messagebox $!.message end name = provider.name if (name) UI.messagebox name else UI.messagebox "Failure" end # Retrieves each key provider.each { |key, value| UI.messagebox key } # Retrieves each corresponding value provider.each { |key, value| UI.messagebox key } end def eachKeyOptionsProviderTest model = Sketchup.active_model manager = model.options begin # First provider is PageManager provider = manager[0] rescue UI.messagebox $!.message end name = provider.name if (name) UI.messagebox name else UI.messagebox "Failure" end # Retrieves each key provider.each_key { |key| UI.messagebox key } end def eachValueOptionsProviderTest model = Sketchup.active_model manager = model.options begin # First provider is PageManager provider = manager[0] rescue UI.messagebox $!.message end name = provider.name if (name) UI.messagebox name else UI.messagebox "Failure" end # Retrieves each key provider.each_value { |value| UI.messagebox value } end #has_key? and key? are the same. Key is an alias for has_key? def hasKeyOptionsProviderTest model = Sketchup.active_model manager = model.options begin # First provider is PageManager provider = manager[0] rescue UI.messagebox $!.message end name = provider.name if (name) UI.messagebox name else UI.messagebox "Failure" end status = provider.has_key? "PageOptions" if (status) UI.messagebox status else UI.messagebox "Failure" end end def keysOptionsProviderTest model = Sketchup.active_model manager = model.options begin # First provider is PageManager provider = manager[0] rescue UI.messagebox $!.message end name = provider.name if (name) UI.messagebox name else UI.messagebox "Failure" end keys = provider.keys key = keys[0] if (key) UI.messagebox key else UI.messagebox "Failure" end end def nameOptionsProviderTest model = Sketchup.active_model manager = model.options begin # First provider is PageManager provider = manager[0] rescue UI.messagebox $!.message end name = provider.name if (name) UI.messagebox name else UI.messagebox "Failure" end end # size and count are the same. count is an alias for size. def sizeOptionsProviderTest model = Sketchup.active_model manager = model.options begin # First provider is PageManager provider = manager[0] rescue UI.messagebox $!.message end size = provider.size if (size) UI.messagebox size else UI.messagebox "Failure" end end if( not file_loaded?("optionsprovidertests.rb") ) # This will add a separator to the menu, but only once add_separator_to_menu("Plugins") plugins_menu = UI.menu("Plugins") OptionsProvider_menu = plugins_menu.add_submenu("OptionsProvider Tests") OptionsProvider_menu.add_item("OptionsProvider.[]") { getValueOptionsProviderTest } OptionsProvider_menu.add_item("OptionsProvider.[]=") { setValueOptionsProviderTest } OptionsProvider_menu.add_item("OptionsProvider.each") { eachOptionsProviderTest } OptionsProvider_menu.add_item("OptionsProvider.each_key") { eachKeyOptionsProviderTest } OptionsProvider_menu.add_item("OptionsProvider.each_value") { eachValueOptionsProviderTest } OptionsProvider_menu.add_item("OptionsProvider.has_key?") { hasKeyOptionsProviderTest } OptionsProvider_menu.add_item("OptionsProvider.keys") { keysOptionsProviderTest } OptionsProvider_menu.add_item("OptionsProvider.name") { nameOptionsProviderTest } OptionsProvider_menu.add_item("OptionsProvider.size") { sizeOptionsProviderTest } end #----------------------------------------------------------------------------- file_loaded("optionsprovidertests.rb")