RDI 0.1.0.20091020

Sign up to get free protection for your applications and to get access to all the features.
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.