RDI 0.1.0.20091020

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (78) hide show
  1. data/AUTHORS +3 -0
  2. data/ChangeLog +46 -0
  3. data/Credits +21 -0
  4. data/LICENSE +31 -0
  5. data/README +18 -0
  6. data/TODO +17 -0
  7. data/lib/rdi/Installer.rb +678 -0
  8. data/lib/rdi/Model/ContextModifier.rb +20 -0
  9. data/lib/rdi/Model/DependencyDescription.rb +154 -0
  10. data/lib/rdi/Model/DependencyUserChoice.rb +202 -0
  11. data/lib/rdi/Model/Installer.rb +24 -0
  12. data/lib/rdi/Model/LocationSelector.rb +16 -0
  13. data/lib/rdi/Model/ProgressView.rb +16 -0
  14. data/lib/rdi/Model/Tester.rb +20 -0
  15. data/lib/rdi/Model/View.rb +16 -0
  16. data/lib/rdi/Plugins/ContextModifiers/GemPath.desc.rb +13 -0
  17. data/lib/rdi/Plugins/ContextModifiers/GemPath.rb +106 -0
  18. data/lib/rdi/Plugins/ContextModifiers/LibraryPath.rb +74 -0
  19. data/lib/rdi/Plugins/ContextModifiers/RubyLoadPath.rb +76 -0
  20. data/lib/rdi/Plugins/ContextModifiers/SystemPath.rb +74 -0
  21. data/lib/rdi/Plugins/GemCommon.rb +127 -0
  22. data/lib/rdi/Plugins/Installers/Download.rb +72 -0
  23. data/lib/rdi/Plugins/Installers/DownloadAndInstall.desc.rb +11 -0
  24. data/lib/rdi/Plugins/Installers/DownloadAndInstall.rb +54 -0
  25. data/lib/rdi/Plugins/Installers/Gem.desc.rb +13 -0
  26. data/lib/rdi/Plugins/Installers/Gem.rb +67 -0
  27. data/lib/rdi/Plugins/Installers/Icons/Download.png +0 -0
  28. data/lib/rdi/Plugins/Installers/Icons/DownloadAndInstall.png +0 -0
  29. data/lib/rdi/Plugins/Installers/Icons/Gem.png +0 -0
  30. data/lib/rdi/Plugins/Installers/Yum.rb +52 -0
  31. data/lib/rdi/Plugins/ProgressViews/SimpleWxGUI.desc.rb +13 -0
  32. data/lib/rdi/Plugins/ProgressViews/SimpleWxGUI.rb +58 -0
  33. data/lib/rdi/Plugins/ProgressViews/Text.rb +68 -0
  34. data/lib/rdi/Plugins/RubyGemsDepDesc.rb +41 -0
  35. data/lib/rdi/Plugins/Testers/Binaries.rb +56 -0
  36. data/lib/rdi/Plugins/Testers/DynamicLibraries.rb +56 -0
  37. data/lib/rdi/Plugins/Testers/RubyRequires.rb +76 -0
  38. data/lib/rdi/Plugins/Views/SimpleWxGUI/DependenciesLoaderDialog.rb +147 -0
  39. data/lib/rdi/Plugins/Views/SimpleWxGUI/DependencyPanel.rb +301 -0
  40. data/lib/rdi/Plugins/Views/SimpleWxGUI/Icons/Dependency.png +0 -0
  41. data/lib/rdi/Plugins/Views/SimpleWxGUI/Icons/Ignore.png +0 -0
  42. data/lib/rdi/Plugins/Views/SimpleWxGUI/Icons/ValidKO.png +0 -0
  43. data/lib/rdi/Plugins/Views/SimpleWxGUI/Icons/ValidOK.png +0 -0
  44. data/lib/rdi/Plugins/Views/SimpleWxGUI/LocationSelectors/Directory.desc.rb +13 -0
  45. data/lib/rdi/Plugins/Views/SimpleWxGUI/LocationSelectors/Directory.rb +45 -0
  46. data/lib/rdi/Plugins/Views/SimpleWxGUI.desc.rb +13 -0
  47. data/lib/rdi/Plugins/Views/SimpleWxGUI.rb +60 -0
  48. data/lib/rdi/Plugins/Views/Text/LocationSelectors/Directory.rb +44 -0
  49. data/lib/rdi/Plugins/Views/Text.rb +257 -0
  50. data/lib/rdi/Plugins/WxCommon.rb +69 -0
  51. data/lib/rdi/Plugins/WxRubyDepDesc.rb +36 -0
  52. data/lib/rdi/rdi.rb +8 -0
  53. data/test/Common.rb +796 -0
  54. data/test/Flows/BasicFlows.rb +114 -0
  55. data/test/Flows/UIFlows.rb +460 -0
  56. data/test/Plugins/ContextModifiers/GemPath.rb +44 -0
  57. data/test/Plugins/ContextModifiers/LibraryPath.rb +36 -0
  58. data/test/Plugins/ContextModifiers/RubyLoadPath.rb +36 -0
  59. data/test/Plugins/ContextModifiers/SystemPath.rb +36 -0
  60. data/test/Plugins/Installers/Download.rb +65 -0
  61. data/test/Plugins/Installers/DownloadAndInstall.rb +73 -0
  62. data/test/Plugins/Installers/Gem.rb +79 -0
  63. data/test/Plugins/LocationSelectors/Directory.rb +34 -0
  64. data/test/Plugins/Testers/Binaries.rb +46 -0
  65. data/test/Plugins/Testers/DynamicLibraries.rb +46 -0
  66. data/test/Plugins/Testers/RubyRequires.rb +48 -0
  67. data/test/Plugins/Views/SimpleWxGUI.rb +190 -0
  68. data/test/Plugins/Views/Text.rb +112 -0
  69. data/test/Plugins/WxEnv.rb +58 -0
  70. data/test/Plugins/WxEnvApp.rb +53 -0
  71. data/test/Repository/Binaries/DummyBinary +1 -0
  72. data/test/Repository/Libraries/DummyLibrary.so +1 -0
  73. data/test/Repository/RubyGems/DummyGem-0.0.1.20090828.gem +0 -0
  74. data/test/Repository/RubyGems/GemsSources/DummyGem/DummyGem.gemspec.rb +23 -0
  75. data/test/Repository/RubyGems/GemsSources/DummyGem/lib/DummyGemMain.rb +5 -0
  76. data/test/Repository/RubyLibraries/DummyRubyLib.rb +1 -0
  77. data/test/run.rb +23 -0
  78. metadata +145 -0
data/AUTHORS ADDED
@@ -0,0 +1,3 @@
1
+ = Muriel Salvan (murielsalvan@users.sourceforge.net)
2
+ * 0.0.1.20090910
3
+ * 0.1.0.20091020
data/ChangeLog ADDED
@@ -0,0 +1,46 @@
1
+ = RDI Release History
2
+
3
+ == 0.1.0.20091020 (Alpha)
4
+
5
+ === New features
6
+
7
+ * Updated icon for ignoring dependencies
8
+ * Implemented ProgressViews to give progression dialogs upon installation.
9
+ * Implemented Text Progress View.
10
+ * Implemented SimpleWxGUI Progress View.
11
+ * Added possibility to specify preferred ProgressViews.
12
+ * Refactored requires for gain in startup performances.
13
+ * Implemented a cache of Gem.path, find_files and clear_cache.
14
+ * Setting default options does not unset previously set default options, unless explicitly specified.
15
+ * Added getDefaultInstallLocation to the API.
16
+ * Added ensureLocationInContext to the API.
17
+ * Add install icons next to the installer choices in SimpleWxGUI.
18
+ * Local downloads are made in a Downloads sub-directory.
19
+ * Better error handling of zip extraction.
20
+ * Changed the local path to install gems (added LocalGems subdirectory to it)
21
+ * Removed .rb suffixes in required files (better migration to .so if needed)
22
+ * Adapted to new getPluginInstance interface
23
+ * Added default options that can be changed.
24
+ * Adopted new rUtilAnts API
25
+ * Removed direct public access to the application root directory (always use ExtDir instead).
26
+ * Implemented a main instance singleton.
27
+ * Renamed $CT_* variables into $rUtilAnts_*
28
+
29
+ === Testing
30
+
31
+ * Regression: Implemented MuteProgressView to silently progress on test installations.
32
+ * Regression: Used new API.
33
+ * Use TempDir instead of AppRootDir in regression.
34
+
35
+ === Bug correction
36
+
37
+ * Bug correction: Zip extraction did not set %INSTALLDIR% correctly for ContextModifiers.
38
+ * Bug correction: Installing Gem dependencies in paths already part of Gem.path could not be used correctly.
39
+ * Bug correction: Setting installer in the DependencyUserChoice object also set the Ignore flag.
40
+ * Bug correction: When choosing an alternate location to install to, the components did not display it correctly.
41
+ * Bug correction: rUtilAnts/Plugins was wrongly required.
42
+ * Bug correction: Corrected some regression test cases that did not clean everything behind them.
43
+
44
+ == 0.0.1.20090910 (Alpha)
45
+
46
+ * Initial public release
data/Credits ADDED
@@ -0,0 +1,21 @@
1
+ = Projects used by RDI
2
+
3
+ == Ruby
4
+ * Yukihiro « matz » Matsumoto (http://www.rubyist.net/~matz/)
5
+ * http://www.ruby-lang.org/
6
+ * Thanks a lot Matz for this truly wonderful language !
7
+
8
+ == RubyGems
9
+ * Paul Duncan <pabs@pablotron.org>
10
+ * http://rubygems.org/
11
+ * Used to automatically download Gem dependencies
12
+
13
+ == WxRuby
14
+ * Sean Long (http://rubyforge.org/users/seanlong/)
15
+ * Alex Fenton (http://rubyforge.org/users/brokentoy/)
16
+ * http://wxruby.rubyforge.org
17
+ * Used as the GUI framework
18
+
19
+ = People that helped a lot in developing RDI
20
+
21
+ * Alex Fenton (http://rubyforge.org/users/brokentoy/) for his unvaluable help in better understanding WxRuby and WxWidgets
data/LICENSE ADDED
@@ -0,0 +1,31 @@
1
+
2
+ The license stated herein is a copy of the BSD License (modified on July 1999).
3
+ The AUTHOR mentionned below refers to the list of people involved in the
4
+ creation and modification of any file included in the delivered package.
5
+ This list is found in the file named AUTHORS.
6
+ The AUTHORS and LICENSE files have to be included in any release of software
7
+ embedding source code of this package, or using it as a derivative software.
8
+
9
+ Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
10
+
11
+ Redistribution and use in source and binary forms, with or without
12
+ modification, are permitted provided that the following conditions are met:
13
+
14
+ 1. Redistributions of source code must retain the above copyright notice,
15
+ this list of conditions and the following disclaimer.
16
+ 2. Redistributions in binary form must reproduce the above copyright notice,
17
+ this list of conditions and the following disclaimer in the documentation
18
+ and/or other materials provided with the distribution.
19
+ 3. The name of the author may not be used to endorse or promote products
20
+ derived from this software without specific prior written permission.
21
+
22
+ THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR IMPLIED
23
+ WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF
24
+ MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO
25
+ EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL,
26
+ EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT
27
+ OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
28
+ INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
29
+ CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
30
+ IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY
31
+ OF SUCH DAMAGE.
data/README ADDED
@@ -0,0 +1,18 @@
1
+ -- This file is best viewed when processed by rdoc.
2
+ ++
3
+
4
+ = RDI: Runtime Dependencies Installer
5
+
6
+ Library that embeds a dynamic dependencies installer.
7
+
8
+ == Where is the documentation ?
9
+
10
+ Check the website at http://rdi.sourceforge.net
11
+
12
+ == Who wrote it ?
13
+
14
+ Check the AUTHORS[link:files/AUTHORS.html] file.
15
+
16
+ == What is the license ?
17
+
18
+ You can find out in the LICENSE[link:files/LICENSE.html] file.
data/TODO ADDED
@@ -0,0 +1,17 @@
1
+ * Documentation
2
+ ** Write a complete User Guide.
3
+ ** Write a complete Developer Guide.
4
+ ** Create FAQ
5
+
6
+ * Testing
7
+ ** Regression should test automatically for each Installer type that depending on the location of the install (Local, System, User...), only the correct directories are altered.
8
+ ** Regression should warn when plugins don't have regression test cases
9
+ ** Add cases were part of Testers are resolved (do GUIs correctly take the resolved ones into account ?)
10
+ ** Add generic cases testing that for each AffectingContextModifier in Testers plugins, they effectively resolve Testers.
11
+ ** Add generic cases for ProgressViews.
12
+
13
+ * Development
14
+ ** In the dependenciesloader dialog, test internet connection before proposing installing Gems and Dlls.
15
+ ** Give the possiblity to provide simple APIs that will handle most common dependency descriptions.
16
+ ** Add buttons/combos 'Ignore All' 'Install All local' 'Install All system'... in the SimpleWxGUI.
17
+ ** In the dependency description, each installer could have a list of DependencyDescription to ensure before trying to install. This could be useful for installers that compile... This can be used for nokogiri under Linux that needs yum install libxml2-devel and libxslt-devel.