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
@@ -0,0 +1,112 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ module RDI
7
+
8
+ module Test
9
+
10
+ module Views
11
+
12
+ class Text < RDITestCase
13
+
14
+ include RDITestCase_Views
15
+
16
+ # Constructor
17
+ def setup
18
+ super
19
+ @ViewPluginName = 'Text'
20
+ end
21
+
22
+ # Initialize the context to inject the following scenario to the View plugin
23
+ #
24
+ # Parameters:
25
+ # * *ioPlugin* (_Object_): The View plugin
26
+ # * *iScenario* (<em>list<[Integer,String,Object]></em>): The scenario
27
+ # * *iMissingDependencies* (<em>list<DependencyDescription></em>): The missing dependencies list
28
+ def initScenario(ioPlugin, iScenario, iMissingDependencies)
29
+ # Index the dependencies ID
30
+ # map< String, Integer >
31
+ lDepsIndex = {}
32
+ lIdx = 0
33
+ iMissingDependencies.each do |iDepDesc|
34
+ lDepsIndex[iDepDesc.ID] = lIdx
35
+ lIdx += 1
36
+ end
37
+ # Get the list of commands to perform
38
+ # list< String >
39
+ lCmdList = []
40
+ # Display it to the user for him to perform the actions
41
+ iScenario.each do |iActionInfo|
42
+ iAction, iDepID, iParameters = iActionInfo
43
+ lStr = ''
44
+ if (iDepID != nil)
45
+ lStr += "#{lDepsIndex[iDepID]+1}."
46
+ end
47
+ case iAction
48
+ when ACTION_LOCATE
49
+ lStr += '1.'
50
+ when ACTION_IGNORE
51
+ lStr += '2.'
52
+ when ACTION_INSTALL
53
+ lStr += "3.#{iParameters[0]+1}.#{iParameters[1]+1}."
54
+ if (iParameters[2] != nil)
55
+ lCmdList << lStr
56
+ lStr = iParameters[2]
57
+ end
58
+ when ACTION_APPLY
59
+ lStr = "#{iMissingDependencies.size+1}."
60
+ when ACTION_SELECT_AFFECTING_CONTEXTMODIFIER
61
+ # Find the position of ContextModifier named iParameters[0] in the UI display
62
+ lStr += "1.#{RDI::Model::DependencyUserChoice::getAffectingContextModifiers(@Installer, iMissingDependencies[lDepsIndex[iDepID]]).index(iParameters[0])+1}."
63
+ lCmdList << lStr
64
+ lStr = iParameters[1]
65
+ else
66
+ logBug "Unknown Action: #{iAction}"
67
+ end
68
+ lCmdList << lStr
69
+ end
70
+ # Write the file that will serve $stdin
71
+ File.open("#{@Installer.TempDir}/stdin", 'w') do |iFile|
72
+ iFile << lCmdList.join("\n")
73
+ end
74
+ # Now we redirect $stdin and $stdout on files
75
+ @StdOutOrg = $stdout
76
+ $stdout = File.open("#{@Installer.TempDir}/stdout", 'w')
77
+ @StdInOrg = $stdin
78
+ $stdin = File.open("#{@Installer.TempDir}/stdin", 'r')
79
+ end
80
+
81
+ # Finalize scenarion.
82
+ # If context was modified by initScenario, revert it here.
83
+ #
84
+ # Parameters:
85
+ # * *ioPlugin* (_Object_): The View plugin
86
+ def finalScenario(ioPlugin)
87
+ # We direct back $stdin and $stdout
88
+ $stdout.close
89
+ $stdin.close
90
+ $stdout = @StdOutOrg
91
+ $stdin = @StdInOrg
92
+ end
93
+
94
+ # Call the execute method of the plugin.
95
+ #
96
+ # Parameters:
97
+ # * *ioPlugin* (_Object_): The View plugin
98
+ # * *ioInstaller* (_Installer_): The RDI installer
99
+ # * *iMissingDependencies* (<em>list<DependencyDescription></em>): The missing dependencies list
100
+ # Return:
101
+ # * <em>list<DependencyUserChoice></em>: The corresponding user choices
102
+ def executeScenario(ioPlugin, ioInstaller, iMissingDependencies)
103
+ return ioPlugin.execute(ioInstaller, iMissingDependencies)
104
+ end
105
+
106
+ end
107
+
108
+ end
109
+
110
+ end
111
+
112
+ end
@@ -0,0 +1,58 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ module RDI
7
+
8
+ module Test
9
+
10
+ module RDIWx
11
+
12
+ # Setup the Wx environment. Here are the constraints to respect:
13
+ # * It is impossible to call main_loop several times (the second times, Wx::Bitmap objects can't recognize image handlers anymore)
14
+ # * It is impossible to unload wx library and reload it (the .so library does not reload constants like Wxruby2::WXWIDGETS_MAJOR_VERSION)
15
+ # * It is impossible to fork the process (does not work on Windows)
16
+ # Therefore the solution found is to use Threads:
17
+ # * Create 1 thread that will run the main_loop
18
+ # * Make the on_init method process a kind of events loop that will be fed by test usecases
19
+ def self.installTestWxEnv
20
+ lWxRubyInstallLocation = "#{Dir.tmpdir}/RDITest/WxRubyTestInstall"
21
+ if (defined?($RDI_Test_WxApp) == nil)
22
+ require 'rdi/Plugins/WxRubyDepDesc'
23
+ RDI::Installer.new(lWxRubyInstallLocation).ensureDependencies(
24
+ [ ::RDI::getWxRubyDepDesc ],
25
+ {
26
+ :AutoInstall => DEST_OTHER,
27
+ :AutoInstallLocation => lWxRubyInstallLocation,
28
+ :PreferredViews => [ 'Text' ]
29
+ } )
30
+ # TODO: Re-enable it when WxRuby will be more stable
31
+ GC.disable
32
+ require 'wx'
33
+ setGUIForDialogs(RUtilAnts::Logging::Logger::GUI_WX)
34
+ # Create the main application
35
+ require 'Plugins/WxEnvApp'
36
+ $RDI_Test_WxApp = TestApp.new
37
+ # Create the thread that will run the application
38
+ Thread.new do
39
+ $RDI_Test_WxApp.main_loop
40
+ end
41
+ # Wait for the thread to be ready
42
+ while (!$RDI_Test_WxApp.Ready)
43
+ sleep(1)
44
+ end
45
+ else
46
+ # It is already loaded.
47
+ # Add the direcotry to the Gem path.
48
+ RDI::Installer.new(lWxRubyInstallLocation).accessPlugin('ContextModifiers', 'GemPath') do |ioPlugin|
49
+ ioPlugin.addLocationToContext(lWxRubyInstallLocation)
50
+ end
51
+ end
52
+ end
53
+
54
+ end
55
+
56
+ end
57
+
58
+ end
@@ -0,0 +1,53 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ module RDI
7
+
8
+ module Test
9
+
10
+ module RDIWx
11
+
12
+ # The application that will run tests
13
+ class TestApp < Wx::App
14
+
15
+ # Exit flag
16
+ # Boolean
17
+ attr_accessor :Exit
18
+
19
+ # Ready flag
20
+ # Boolean
21
+ attr_reader :Ready
22
+
23
+ # Constructor
24
+ def initialize
25
+ super
26
+ @Exit = false
27
+ @Ready = false
28
+ end
29
+
30
+ # Init
31
+ def on_init
32
+ # Make sure other threads will be called during looping.
33
+ # We have to use this workaround, as WxRuby's threads are different than Ruby's threads
34
+ lThreadsTimer = Wx::Timer.new(self, 42)
35
+ evt_timer(42) do
36
+ Thread.pass
37
+ end
38
+ # Trigger every 100 ms
39
+ lThreadsTimer.start(100)
40
+ while (!@Exit)
41
+ @Ready = true
42
+ sleep(1)
43
+ end
44
+ return false
45
+ end
46
+
47
+ end
48
+
49
+ end
50
+
51
+ end
52
+
53
+ end
@@ -0,0 +1 @@
1
+ This file is a dummy binary.
@@ -0,0 +1 @@
1
+ This file is a dummy library.
@@ -0,0 +1,23 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ require 'rubygems'
7
+
8
+ # Return the Gem specification
9
+ #
10
+ # Return:
11
+ # * <em>Gem::Specification</em>: The Gem specification
12
+ Gem::Specification.new do |iSpec|
13
+ iSpec.name = 'DummyGem'
14
+ iSpec.version = '0.0.1.20090828'
15
+ iSpec.author = 'Muriel Salvan'
16
+ iSpec.email = 'murielsalvan@users.sourceforge.net'
17
+ iSpec.homepage = 'http://rdi.sourceforge.net/'
18
+ iSpec.platform = Gem::Platform::RUBY
19
+ iSpec.summary = 'A dummy Gem.'
20
+ iSpec.description = 'This Gem is used to test RubyGems functionnality only.'
21
+ iSpec.files = [ 'lib/DummyGemMain.rb' ]
22
+ iSpec.require_path = 'lib'
23
+ end
@@ -0,0 +1,5 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
@@ -0,0 +1 @@
1
+ This file is a dummy Ruby library.
data/test/run.rb ADDED
@@ -0,0 +1,23 @@
1
+ #--
2
+ # Copyright (c) 2009 Muriel Salvan (murielsalvan@users.sourceforge.net)
3
+ # Licensed under the terms specified in LICENSE file. No warranty is provided.
4
+ #++
5
+
6
+ # Run the test suite of RDI
7
+
8
+ lTestDir = File.dirname(__FILE__)
9
+ $LOAD_PATH << lTestDir
10
+
11
+ require 'Common'
12
+
13
+ (
14
+ Dir.glob("#{lTestDir}/Flows/*.rb") +
15
+ Dir.glob("#{lTestDir}/Plugins/Views/*.rb") +
16
+ Dir.glob("#{lTestDir}/Plugins/Testers/*.rb") +
17
+ Dir.glob("#{lTestDir}/Plugins/Installers/*.rb") +
18
+ Dir.glob("#{lTestDir}/Plugins/LocationSelectors/*.rb") +
19
+ Dir.glob("#{lTestDir}/Plugins/ContextModifiers/*.rb")
20
+ ).each do |iFileName|
21
+ # Remove the test dir from the file name, and require it.
22
+ require iFileName[lTestDir.size+1..-1]
23
+ end
metadata ADDED
@@ -0,0 +1,145 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: RDI
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0.20091020
5
+ platform: ruby
6
+ authors:
7
+ - Muriel Salvan
8
+ autorequire:
9
+ bindir: bin
10
+ cert_chain: []
11
+
12
+ date: 2009-10-20 00:00:00 +02:00
13
+ default_executable:
14
+ dependencies:
15
+ - !ruby/object:Gem::Dependency
16
+ name: rUtilAnts
17
+ type: :runtime
18
+ version_requirement:
19
+ version_requirements: !ruby/object:Gem::Requirement
20
+ requirements:
21
+ - - ">="
22
+ - !ruby/object:Gem::Version
23
+ version: "0.1"
24
+ version:
25
+ description: "RDI is a library that gives your application the ability to install its dependencies at runtime. Perfect for plugins oriented architectures. Many kind of deps: RPMs, DEBs, .so, .dll, RubyGems... Easily extensible to new kinds."
26
+ email: murielsalvan@users.sourceforge.net
27
+ executables: []
28
+
29
+ extensions: []
30
+
31
+ extra_rdoc_files:
32
+ - README
33
+ - TODO
34
+ - ChangeLog
35
+ - LICENSE
36
+ - AUTHORS
37
+ - Credits
38
+ files:
39
+ - lib/rdi/Model/DependencyDescription.rb
40
+ - lib/rdi/Model/Installer.rb
41
+ - lib/rdi/Model/Tester.rb
42
+ - lib/rdi/Model/ContextModifier.rb
43
+ - lib/rdi/Model/DependencyUserChoice.rb
44
+ - lib/rdi/Model/View.rb
45
+ - lib/rdi/Model/LocationSelector.rb
46
+ - lib/rdi/Model/ProgressView.rb
47
+ - lib/rdi/rdi.rb
48
+ - lib/rdi/Installer.rb
49
+ - lib/rdi/Plugins/Testers/RubyRequires.rb
50
+ - lib/rdi/Plugins/Testers/DynamicLibraries.rb
51
+ - lib/rdi/Plugins/Testers/Binaries.rb
52
+ - lib/rdi/Plugins/Installers/Gem.rb
53
+ - lib/rdi/Plugins/Installers/Gem.desc.rb
54
+ - lib/rdi/Plugins/Installers/Download.rb
55
+ - lib/rdi/Plugins/Installers/DownloadAndInstall.rb
56
+ - lib/rdi/Plugins/Installers/DownloadAndInstall.desc.rb
57
+ - lib/rdi/Plugins/Installers/Icons/Download.png
58
+ - lib/rdi/Plugins/Installers/Icons/Gem.png
59
+ - lib/rdi/Plugins/Installers/Icons/DownloadAndInstall.png
60
+ - lib/rdi/Plugins/Installers/Yum.rb
61
+ - lib/rdi/Plugins/RubyGemsDepDesc.rb
62
+ - lib/rdi/Plugins/ContextModifiers/GemPath.rb
63
+ - lib/rdi/Plugins/ContextModifiers/LibraryPath.rb
64
+ - lib/rdi/Plugins/ContextModifiers/GemPath.desc.rb
65
+ - lib/rdi/Plugins/ContextModifiers/RubyLoadPath.rb
66
+ - lib/rdi/Plugins/ContextModifiers/SystemPath.rb
67
+ - lib/rdi/Plugins/Views/SimpleWxGUI/DependenciesLoaderDialog.rb
68
+ - lib/rdi/Plugins/Views/SimpleWxGUI/LocationSelectors/Directory.rb
69
+ - lib/rdi/Plugins/Views/SimpleWxGUI/LocationSelectors/Directory.desc.rb
70
+ - lib/rdi/Plugins/Views/SimpleWxGUI/Icons/ValidKO.png
71
+ - lib/rdi/Plugins/Views/SimpleWxGUI/Icons/ValidOK.png
72
+ - lib/rdi/Plugins/Views/SimpleWxGUI/Icons/Dependency.png
73
+ - lib/rdi/Plugins/Views/SimpleWxGUI/Icons/Ignore.png
74
+ - lib/rdi/Plugins/Views/SimpleWxGUI/DependencyPanel.rb
75
+ - lib/rdi/Plugins/Views/Text/LocationSelectors/Directory.rb
76
+ - lib/rdi/Plugins/Views/SimpleWxGUI.rb
77
+ - lib/rdi/Plugins/Views/Text.rb
78
+ - lib/rdi/Plugins/Views/SimpleWxGUI.desc.rb
79
+ - lib/rdi/Plugins/WxRubyDepDesc.rb
80
+ - lib/rdi/Plugins/WxCommon.rb
81
+ - lib/rdi/Plugins/GemCommon.rb
82
+ - lib/rdi/Plugins/ProgressViews/SimpleWxGUI.rb
83
+ - lib/rdi/Plugins/ProgressViews/Text.rb
84
+ - lib/rdi/Plugins/ProgressViews/SimpleWxGUI.desc.rb
85
+ - test/Repository/Binaries/DummyBinary
86
+ - test/Repository/Libraries/DummyLibrary.so
87
+ - test/Repository/RubyGems/GemsSources/DummyGem/lib/DummyGemMain.rb
88
+ - test/Repository/RubyGems/GemsSources/DummyGem/DummyGem.gemspec.rb
89
+ - test/Repository/RubyGems/DummyGem-0.0.1.20090828.gem
90
+ - test/Repository/RubyLibraries/DummyRubyLib.rb
91
+ - test/Plugins/Installers/DownloadAndInstall.rb
92
+ - test/Plugins/Installers/Download.rb
93
+ - test/Plugins/Installers/Gem.rb
94
+ - test/Plugins/ContextModifiers/RubyLoadPath.rb
95
+ - test/Plugins/ContextModifiers/LibraryPath.rb
96
+ - test/Plugins/ContextModifiers/SystemPath.rb
97
+ - test/Plugins/ContextModifiers/GemPath.rb
98
+ - test/Plugins/Testers/DynamicLibraries.rb
99
+ - test/Plugins/Testers/RubyRequires.rb
100
+ - test/Plugins/Testers/Binaries.rb
101
+ - test/Plugins/LocationSelectors/Directory.rb
102
+ - test/Plugins/Views/SimpleWxGUI.rb
103
+ - test/Plugins/Views/Text.rb
104
+ - test/Plugins/WxEnv.rb
105
+ - test/Plugins/WxEnvApp.rb
106
+ - test/Flows/BasicFlows.rb
107
+ - test/Flows/UIFlows.rb
108
+ - test/run.rb
109
+ - test/Common.rb
110
+ - README
111
+ - TODO
112
+ - ChangeLog
113
+ - LICENSE
114
+ - AUTHORS
115
+ - Credits
116
+ has_rdoc: true
117
+ homepage: http://rdi.sourceforge.net/
118
+ licenses: []
119
+
120
+ post_install_message:
121
+ rdoc_options: []
122
+
123
+ require_paths:
124
+ - lib
125
+ required_ruby_version: !ruby/object:Gem::Requirement
126
+ requirements:
127
+ - - ">="
128
+ - !ruby/object:Gem::Version
129
+ version: "0"
130
+ version:
131
+ required_rubygems_version: !ruby/object:Gem::Requirement
132
+ requirements:
133
+ - - ">="
134
+ - !ruby/object:Gem::Version
135
+ version: "0"
136
+ version:
137
+ requirements: []
138
+
139
+ rubyforge_project: rdi
140
+ rubygems_version: 1.3.5
141
+ signing_key:
142
+ specification_version: 3
143
+ summary: Library allowing applications to ensure their dependencies at runtime with UI support.
144
+ test_files:
145
+ - test/run.rb