sprout 1.0.32.pre → 1.0.35.pre

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sprout might be problematic. Click here for more details.

Files changed (208) hide show
  1. data/Gemfile +2 -1
  2. data/Gemfile.lock +4 -2
  3. data/README.textile +12 -13
  4. data/VERSION +1 -0
  5. data/doc/Dir.html +288 -0
  6. data/doc/Rake/Task.html +184 -0
  7. data/doc/Sprout.html +144 -0
  8. data/doc/Sprout/ArchiveUnpacker.html +1246 -0
  9. data/doc/Sprout/Base.html +126 -0
  10. data/doc/Sprout/Base/ClassMethods.html +434 -0
  11. data/doc/Sprout/Concern.html +353 -0
  12. data/doc/Sprout/Daemon.html +166 -0
  13. data/doc/Sprout/Daemon/ClassMethods.html +244 -0
  14. data/doc/Sprout/Daemon/InstanceMethods.html +601 -0
  15. data/doc/Sprout/Errors.html +101 -0
  16. data/doc/Sprout/Errors/ArchiveUnpackerError.html +125 -0
  17. data/doc/Sprout/Errors/DestinationExistsError.html +133 -0
  18. data/doc/Sprout/Errors/DuplicateMemberError.html +132 -0
  19. data/doc/Sprout/Errors/ExecutableError.html +125 -0
  20. data/doc/Sprout/Errors/ExecutableRegistrationError.html +132 -0
  21. data/doc/Sprout/Errors/ExecutionError.html +121 -0
  22. data/doc/Sprout/Errors/GeneratorError.html +125 -0
  23. data/doc/Sprout/Errors/InvalidArgumentError.html +132 -0
  24. data/doc/Sprout/Errors/LoadError.html +121 -0
  25. data/doc/Sprout/Errors/MissingArgumentError.html +132 -0
  26. data/doc/Sprout/Errors/MissingExecutableError.html +132 -0
  27. data/doc/Sprout/Errors/MissingGeneratorError.html +132 -0
  28. data/doc/Sprout/Errors/MissingTemplateError.html +132 -0
  29. data/doc/Sprout/Errors/ProcessRunnerError.html +121 -0
  30. data/doc/Sprout/Errors/RemoteFileLoaderError.html +110 -0
  31. data/doc/Sprout/Errors/SproutError.html +114 -0
  32. data/doc/Sprout/Errors/UnknownArchiveType.html +122 -0
  33. data/doc/Sprout/Errors/UsageError.html +121 -0
  34. data/doc/Sprout/Errors/ValidationError.html +121 -0
  35. data/doc/Sprout/Errors/VersionRequirementNotMetError.html +121 -0
  36. data/doc/Sprout/Executable.html +173 -0
  37. data/doc/Sprout/Executable/Boolean.html +483 -0
  38. data/doc/Sprout/Executable/ClassMethods.html +417 -0
  39. data/doc/Sprout/Executable/CollectionParam.html +483 -0
  40. data/doc/Sprout/Executable/FileParam.html +484 -0
  41. data/doc/Sprout/Executable/Files.html +292 -0
  42. data/doc/Sprout/Executable/InstanceMethods.html +2006 -0
  43. data/doc/Sprout/Executable/Number.html +141 -0
  44. data/doc/Sprout/Executable/Param.html +2818 -0
  45. data/doc/Sprout/Executable/ParameterFactory.html +232 -0
  46. data/doc/Sprout/Executable/Path.html +223 -0
  47. data/doc/Sprout/Executable/Paths.html +253 -0
  48. data/doc/Sprout/Executable/StringParam.html +213 -0
  49. data/doc/Sprout/Executable/Strings.html +167 -0
  50. data/doc/Sprout/Executable/Url.html +160 -0
  51. data/doc/Sprout/Executable/Urls.html +170 -0
  52. data/doc/Sprout/FileTarget.html +1109 -0
  53. data/doc/Sprout/Generator.html +689 -0
  54. data/doc/Sprout/Generator/Base.html +1626 -0
  55. data/doc/Sprout/Generator/Command.html +690 -0
  56. data/doc/Sprout/Generator/DirectoryManifest.html +476 -0
  57. data/doc/Sprout/Generator/FileManifest.html +572 -0
  58. data/doc/Sprout/Generator/Manifest.html +377 -0
  59. data/doc/Sprout/Generator/TemplateManifest.html +196 -0
  60. data/doc/Sprout/GeneratorGenerator.html +1018 -0
  61. data/doc/Sprout/Library.html +1141 -0
  62. data/doc/Sprout/LibraryGenerator.html +309 -0
  63. data/doc/Sprout/Log.html +496 -0
  64. data/doc/Sprout/MXMLC.html +6373 -0
  65. data/doc/Sprout/Platform.html +714 -0
  66. data/doc/Sprout/ProcessRunner.html +1352 -0
  67. data/doc/Sprout/ProgressBar.html +376 -0
  68. data/doc/Sprout/ProgressBarImpl.html +2119 -0
  69. data/doc/Sprout/ProgressBarManager.html +434 -0
  70. data/doc/Sprout/ProgressBarOutputStream.html +416 -0
  71. data/doc/Sprout/RDocParser.html +211 -0
  72. data/doc/Sprout/RemoteFileLoader.html +172 -0
  73. data/doc/Sprout/RemoteFileTarget.html +679 -0
  74. data/doc/Sprout/ReversedProgressBar.html +194 -0
  75. data/doc/Sprout/RubyFeature.html +155 -0
  76. data/doc/Sprout/RubyFeature/ClassMethods.html +1065 -0
  77. data/doc/Sprout/RubyGenerator.html +764 -0
  78. data/doc/Sprout/Specification.html +767 -0
  79. data/doc/Sprout/System.html +191 -0
  80. data/doc/Sprout/System/BaseSystem.html +1455 -0
  81. data/doc/Sprout/System/JavaSystem.html +122 -0
  82. data/doc/Sprout/System/OSXSystem.html +335 -0
  83. data/doc/Sprout/System/ThreadMock.html +193 -0
  84. data/doc/Sprout/System/UnixSystem.html +584 -0
  85. data/doc/Sprout/System/VistaSystem.html +251 -0
  86. data/doc/Sprout/System/WinNixSystem.html +325 -0
  87. data/doc/Sprout/System/WinSystem.html +571 -0
  88. data/doc/Sprout/ToolGenerator.html +931 -0
  89. data/doc/Sprout/VERSION.html +128 -0
  90. data/doc/SproutTestCase.html +1412 -0
  91. data/doc/String.html +286 -0
  92. data/doc/_index.html +1035 -0
  93. data/doc/class_list.html +36 -0
  94. data/doc/css/common.css +1 -0
  95. data/doc/css/full_list.css +53 -0
  96. data/doc/css/style.css +310 -0
  97. data/doc/file.README.html +96 -0
  98. data/doc/file.archive_unpacker.html +288 -0
  99. data/doc/file.base.html +208 -0
  100. data/doc/file.base_system.html +278 -0
  101. data/doc/file.boolean.html +135 -0
  102. data/doc/file.collection_param.html +139 -0
  103. data/doc/file.command.html +126 -0
  104. data/doc/file.concern.html +136 -0
  105. data/doc/file.daemon.html +309 -0
  106. data/doc/file.dir.html +76 -0
  107. data/doc/file.directory_manifest.html +122 -0
  108. data/doc/file.errors.html +147 -0
  109. data/doc/file.executable.html +638 -0
  110. data/doc/file.file_manifest.html +109 -0
  111. data/doc/file.file_param.html +120 -0
  112. data/doc/file.file_target.html +140 -0
  113. data/doc/file.files.html +85 -0
  114. data/doc/file.generator.html +296 -0
  115. data/doc/file.generator_class.html +72 -0
  116. data/doc/file.generator_generator.html +137 -0
  117. data/doc/file.generator_test.html +92 -0
  118. data/doc/file.generator_test_helper.html +67 -0
  119. data/doc/file.java_system.html +62 -0
  120. data/doc/file.library.html +291 -0
  121. data/doc/file.library_generator.html +74 -0
  122. data/doc/file.log.html +100 -0
  123. data/doc/file.manifest.html +67 -0
  124. data/doc/file.mxmlc.html +740 -0
  125. data/doc/file.number.html +67 -0
  126. data/doc/file.osx_system.html +79 -0
  127. data/doc/file.param.html +491 -0
  128. data/doc/file.parameter_factory.html +119 -0
  129. data/doc/file.path.html +81 -0
  130. data/doc/file.paths.html +80 -0
  131. data/doc/file.platform.html +124 -0
  132. data/doc/file.process_runner.html +224 -0
  133. data/doc/file.progress_bar.html +390 -0
  134. data/doc/file.rdoc_parser.html +145 -0
  135. data/doc/file.remote_file_loader.html +117 -0
  136. data/doc/file.remote_file_target.html +176 -0
  137. data/doc/file.ruby_base.html +64 -0
  138. data/doc/file.ruby_feature.html +244 -0
  139. data/doc/file.ruby_generator.html +118 -0
  140. data/doc/file.ruby_input.html +62 -0
  141. data/doc/file.ruby_test_case.html +78 -0
  142. data/doc/file.ruby_test_helper.html +61 -0
  143. data/doc/file.specification.html +248 -0
  144. data/doc/file.sprout.html +64 -0
  145. data/doc/file.sprout_test_case.html +280 -0
  146. data/doc/file.string.html +72 -0
  147. data/doc/file.string_param.html +76 -0
  148. data/doc/file.strings.html +71 -0
  149. data/doc/file.system.html +86 -0
  150. data/doc/file.template_manifest.html +67 -0
  151. data/doc/file.tool.html +92 -0
  152. data/doc/file.tool_generator.html +90 -0
  153. data/doc/file.unix_system.html +128 -0
  154. data/doc/file.url.html +71 -0
  155. data/doc/file.urls.html +70 -0
  156. data/doc/file.version.html +71 -0
  157. data/doc/file.vista_system.html +69 -0
  158. data/doc/file.win_nix_system.html +88 -0
  159. data/doc/file.win_system.html +129 -0
  160. data/doc/file_list.html +230 -0
  161. data/doc/frames.html +13 -0
  162. data/doc/index.html +96 -0
  163. data/doc/js/app.js +202 -0
  164. data/doc/js/full_list.js +149 -0
  165. data/doc/js/jquery.js +154 -0
  166. data/doc/method_list.html +3355 -0
  167. data/doc/top-level-namespace.html +192 -0
  168. data/lib/sprout/archive_unpacker.rb +203 -137
  169. data/lib/sprout/base.rb +38 -11
  170. data/lib/sprout/concern.rb +51 -0
  171. data/lib/sprout/daemon.rb +256 -0
  172. data/lib/sprout/executable.rb +40 -11
  173. data/lib/sprout/executable/boolean.rb +47 -1
  174. data/lib/sprout/executable/collection_param.rb +33 -1
  175. data/lib/sprout/executable/file_param.rb +16 -3
  176. data/lib/sprout/executable/files.rb +5 -0
  177. data/lib/sprout/executable/number.rb +5 -1
  178. data/lib/sprout/executable/param.rb +232 -16
  179. data/lib/sprout/executable/parameter_factory.rb +39 -1
  180. data/lib/sprout/executable/path.rb +7 -1
  181. data/lib/sprout/executable/paths.rb +6 -1
  182. data/lib/sprout/executable/string_param.rb +8 -1
  183. data/lib/sprout/executable/strings.rb +7 -1
  184. data/lib/sprout/executable/url.rb +8 -1
  185. data/lib/sprout/executable/urls.rb +7 -1
  186. data/lib/sprout/file_target.rb +11 -11
  187. data/lib/sprout/generator.rb +244 -0
  188. data/lib/sprout/generator/base.rb +0 -94
  189. data/lib/sprout/generators/generator/generator_generator.rb +35 -1
  190. data/lib/sprout/generators/generator/templates/generator_class.rb +3 -3
  191. data/lib/sprout/library.rb +75 -0
  192. data/lib/sprout/log.rb +11 -12
  193. data/lib/sprout/process_runner.rb +29 -9
  194. data/lib/sprout/remote_file_target.rb +20 -9
  195. data/lib/sprout/system/base_system.rb +11 -3
  196. data/lib/sprout/test/sprout_test_case.rb +1 -0
  197. data/lib/sprout/version.rb +7 -11
  198. data/rakefile.rb +7 -12
  199. data/script/add_param_handler.rb +43 -0
  200. data/sprout.gemspec +2 -3
  201. data/test/fixtures/executable/fdb.rb +764 -0
  202. data/test/fixtures/executable/flex3sdk_gem/fdb +60 -0
  203. data/test/fixtures/executable/mxmlc.rb +9 -11
  204. data/test/unit/daemon_test.rb +61 -0
  205. data/test/unit/process_runner_test.rb +21 -0
  206. data/test/unit/remote_file_target_test.rb +45 -11
  207. data/test/unit/sprout_test_helper.rb +1 -1
  208. metadata +210 -29
@@ -0,0 +1,119 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: parameter_factory</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: parameter_factory</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'>
45
+ <p>module Sprout::Executable</p>
46
+
47
+ <pre class="code"><span class='comment'>##
48
+ </span><span class='comment'># A factory to create concrete Sprout::Executable::Param
49
+ </span><span class='comment'># entities from a set of known types.
50
+ </span><span class='comment'>#
51
+ </span><span class='comment'># If an unrecognized Class reference is provided
52
+ </span><span class='comment'># we will instantiate it and ensure that it
53
+ </span><span class='comment'># responds to the public members of the
54
+ </span><span class='comment'># Executable::Param interface.
55
+ </span><span class='comment'>#
56
+ </span><span class='comment'># This Factory gives you the ability to create new,
57
+ </span><span class='comment'># custom parameter types by simply ensuring they are
58
+ </span><span class='comment'># available to Ruby before your executable is
59
+ </span><span class='comment'># interpreted.
60
+ </span><span class='comment'>#
61
+ </span><span class='comment'># Following is an example of a custom Parameter:
62
+ </span><span class='comment'>#
63
+ </span><span class='comment'># class CustomParam &lt; Sprout::Executable::Param
64
+ </span><span class='comment'>#
65
+ </span><span class='comment'># def to_shell
66
+ </span><span class='comment'># &quot;--foo-bar=#{value}&quot;
67
+ </span><span class='comment'># end
68
+ </span><span class='comment'># end
69
+ </span><span class='comment'>#
70
+ </span><span class='comment'># Following is an example Executable that can consume
71
+ </span><span class='comment'># the above parameter:
72
+ </span><span class='comment'>#
73
+ </span><span class='comment'># require 'custom_param'
74
+ </span><span class='comment'>#
75
+ </span><span class='comment'># class Foo
76
+ </span><span class='comment'># include Sprout::Executable
77
+ </span><span class='comment'>#
78
+ </span><span class='comment'># add_param :name, CustomParam
79
+ </span><span class='comment'>#
80
+ </span><span class='comment'># end
81
+ </span><span class='comment'>#
82
+ </span><span class='comment'># That's it, there is no need to register your custom types
83
+ </span><span class='comment'># with the Factory, just get it into your load path and
84
+ </span><span class='comment'># require it.
85
+ </span><span class='comment'>#
86
+ </span><span class='kw'>class</span> <span class='const'>ParameterFactory</span>
87
+
88
+ <span class='kw'>class</span> <span class='op'>&lt;&lt;</span> <span class='kw'>self</span>
89
+
90
+ <span class='comment'>##
91
+ </span> <span class='comment'># This factory allows us to use classes by
92
+ </span> <span class='comment'># reference in the Executable interface.
93
+ </span> <span class='comment'># Since there are already Ruby primitives for
94
+ </span> <span class='comment'># String and File and we don't want to clobber
95
+ </span> <span class='comment'># them, we use this factory to convert those
96
+ </span> <span class='comment'># to the appropriate types.
97
+ </span> <span class='kw'>def</span> <span class='id create'>create</span> <span class='id type'>type</span>
98
+ <span class='comment'># Didn't want to clobber the stdlib references
99
+ </span> <span class='comment'># to these two important data types...
100
+ </span> <span class='comment'># But wanted to keep the add_param interface
101
+ </span> <span class='comment'># clean and simple.
102
+ </span> <span class='kw'>return</span> <span class='const'>StringParam</span><span class='period'>.</span><span class='id new'>new</span> <span class='kw'>if</span> <span class='id type'>type</span> <span class='op'>==</span> <span class='const'>String</span>
103
+ <span class='kw'>return</span> <span class='const'>FileParam</span><span class='period'>.</span><span class='id new'>new</span> <span class='kw'>if</span> <span class='id type'>type</span> <span class='op'>==</span> <span class='const'>File</span>
104
+ <span class='id type'>type</span><span class='period'>.</span><span class='id new'>new</span>
105
+ <span class='kw'>end</span>
106
+ <span class='kw'>end</span>
107
+ <span class='kw'>end</span></pre>
108
+
109
+ <p>end</p>
110
+ </div></div>
111
+
112
+ <div id="footer">
113
+ Generated on Wed Dec 22 11:58:31 2010 by
114
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
115
+ 0.6.3 (ruby-1.9.2).
116
+ </div>
117
+
118
+ </body>
119
+ </html>
@@ -0,0 +1,81 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: path</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: path</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'>
45
+ <p>module Sprout</p>
46
+
47
+ <pre class="code"><span class='kw'>module</span> <span class='const'>Executable</span>
48
+
49
+ <span class='comment'>##
50
+ </span> <span class='comment'># Concrete Sprout::Executable::Param object for Path values.
51
+ </span> <span class='comment'>#
52
+ </span> <span class='comment'># Path parameters will create a FileList of prerequisites by concatenating the value with
53
+ </span> <span class='comment'># the +file_expression+ that is set on the parameter or Sprout::Executable.
54
+ </span> <span class='comment'>#
55
+ </span> <span class='comment'># @see Sprout::Executable::Param
56
+ </span> <span class='comment'>#
57
+ </span> <span class='kw'>class</span> <span class='const'>Path</span> <span class='op'>&lt;</span> <span class='const'>Executable</span><span class='op'>::</span><span class='const'>Param</span>
58
+
59
+ <span class='kw'>def</span> <span class='id prepare_prerequisites'>prepare_prerequisites</span>
60
+ <span class='kw'>if</span><span class='lparen'>(</span><span class='id value'>value</span> <span class='op'>&amp;&amp;</span> <span class='op'>!</span><span class='id file_is_output?'>file_is_output?</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span><span class='rparen'>)</span>
61
+ <span class='id files'>files</span> <span class='op'>=</span> <span class='const'>FileList</span><span class='lbracket'>[</span><span class='id value'>value</span> <span class='op'>+</span> <span class='id file_expression'>file_expression</span><span class='rbracket'>]</span>
62
+ <span class='id files'>files</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id f'>f</span><span class='op'>|</span>
63
+ <span class='id file'>file</span> <span class='id f'>f</span>
64
+ <span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id prerequisites'>prerequisites</span> <span class='op'>&lt;&lt;</span> <span class='id f'>f</span>
65
+ <span class='kw'>end</span>
66
+ <span class='kw'>end</span>
67
+ <span class='kw'>end</span>
68
+ <span class='kw'>end</span>
69
+ <span class='kw'>end</span></pre>
70
+
71
+ <p>end</p>
72
+ </div></div>
73
+
74
+ <div id="footer">
75
+ Generated on Wed Dec 22 11:58:31 2010 by
76
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
77
+ 0.6.3 (ruby-1.9.2).
78
+ </div>
79
+
80
+ </body>
81
+ </html>
@@ -0,0 +1,80 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: paths</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: paths</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'>
45
+ <p>module Sprout</p>
46
+
47
+ <pre class="code"><span class='kw'>module</span> <span class='const'>Executable</span>
48
+
49
+ <span class='comment'>##
50
+ </span> <span class='comment'># A collection of Paths.
51
+ </span> <span class='comment'>#
52
+ </span> <span class='comment'># @see Sprout::Executable::Path
53
+ </span> <span class='comment'># @see Sprout::Executable::Param
54
+ </span> <span class='comment'># @see Sprout::Executable::CollectionParam
55
+ </span> <span class='comment'>#
56
+ </span> <span class='kw'>class</span> <span class='const'>Paths</span> <span class='op'>&lt;</span> <span class='const'>Files</span>
57
+
58
+ <span class='kw'>def</span> <span class='id prepare_prerequisites'>prepare_prerequisites</span>
59
+ <span class='id value'>value</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id path'>path</span><span class='op'>|</span>
60
+ <span class='id files'>files</span> <span class='op'>=</span> <span class='const'>FileList</span><span class='lbracket'>[</span><span class='id path'>path</span> <span class='op'>+</span> <span class='id file_expression'>file_expression</span><span class='rbracket'>]</span>
61
+ <span class='id files'>files</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id f'>f</span><span class='op'>|</span>
62
+ <span class='id file'>file</span> <span class='id f'>f</span>
63
+ <span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id prerequisites'>prerequisites</span> <span class='op'>&lt;&lt;</span> <span class='id f'>f</span>
64
+ <span class='kw'>end</span>
65
+ <span class='kw'>end</span>
66
+ <span class='kw'>end</span>
67
+ <span class='kw'>end</span>
68
+ <span class='kw'>end</span></pre>
69
+
70
+ <p>end</p>
71
+ </div></div>
72
+
73
+ <div id="footer">
74
+ Generated on Wed Dec 22 11:58:31 2010 by
75
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
76
+ 0.6.3 (ruby-1.9.2).
77
+ </div>
78
+
79
+ </body>
80
+ </html>
@@ -0,0 +1,124 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: platform</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: platform</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'>
45
+ <p>module Sprout</p>
46
+
47
+ <pre class="code"><span class='comment'>##
48
+ </span><span class='comment'># Determine what environment we're in so that we
49
+ </span><span class='comment'># can play nice with libraries, processes, executables, etc.
50
+ </span><span class='comment'>#
51
+ </span><span class='kw'>class</span> <span class='const'>Platform</span>
52
+
53
+ <span class='comment'>##
54
+ </span> <span class='comment'># Returns +true+ if the current platform is some flavor of Windows.
55
+ </span> <span class='comment'>#
56
+ </span> <span class='kw'>def</span> <span class='id windows?'>windows?</span>
57
+ <span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>cygwin|mswin|mingw|bccwin|wince|emx|vista</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id ruby_platform'>ruby_platform</span><span class='rparen'>)</span> <span class='op'>!=</span> <span class='kw'>nil</span>
58
+ <span class='kw'>end</span>
59
+
60
+ <span class='comment'>##
61
+ </span> <span class='comment'># Returns +true+ if the current platform is Vista.
62
+ </span> <span class='comment'>#
63
+ </span> <span class='kw'>def</span> <span class='id vista?'>vista?</span>
64
+ <span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>vista</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id ruby_platform'>ruby_platform</span><span class='rparen'>)</span> <span class='op'>!=</span> <span class='kw'>nil</span>
65
+ <span class='kw'>end</span>
66
+
67
+ <span class='comment'>##
68
+ </span> <span class='comment'># Returns +true+ if the current platform is some flavor of Unix on
69
+ </span> <span class='comment'># Windows. Recognized nix-ish systems are: Cygwin, Mingw and BCCWin.
70
+ </span> <span class='comment'>#
71
+ </span> <span class='kw'>def</span> <span class='id windows_nix?'>windows_nix?</span>
72
+ <span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>cygwin|mingw|bccwin</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id ruby_platform'>ruby_platform</span><span class='rparen'>)</span> <span class='op'>!=</span> <span class='kw'>nil</span>
73
+ <span class='kw'>end</span>
74
+
75
+ <span class='comment'>##
76
+ </span> <span class='comment'># Returns +true+ if the current platform is some flash of OS X.
77
+ </span> <span class='comment'>#
78
+ </span> <span class='kw'>def</span> <span class='id mac?'>mac?</span>
79
+ <span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>darwin</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id ruby_platform'>ruby_platform</span><span class='rparen'>)</span> <span class='op'>!=</span> <span class='kw'>nil</span>
80
+ <span class='kw'>end</span>
81
+
82
+ <span class='comment'>##
83
+ </span> <span class='comment'># Returns +true+ if the current platform is not +windows?+ or +java?+.
84
+ </span> <span class='comment'>#
85
+ </span> <span class='kw'>def</span> <span class='id unix?'>unix?</span>
86
+ <span class='kw'>not</span> <span class='id windows?'>windows?</span> <span class='kw'>and</span> <span class='kw'>not</span> <span class='id java?'>java?</span>
87
+ <span class='kw'>end</span>
88
+
89
+ <span class='comment'>##
90
+ </span> <span class='comment'># Returns +true+ if the current platform is +unix?+ and not +mac?+.
91
+ </span> <span class='comment'>#
92
+ </span> <span class='kw'>def</span> <span class='id linux?'>linux?</span>
93
+ <span class='id unix?'>unix?</span> <span class='kw'>and</span> <span class='kw'>not</span> <span class='id mac?'>mac?</span>
94
+ <span class='kw'>end</span>
95
+
96
+ <span class='comment'>##
97
+ </span> <span class='comment'># Returns +true+ if the current platform is running in the JVM (JRuby).
98
+ </span> <span class='comment'>#
99
+ </span> <span class='kw'>def</span> <span class='id java?'>java?</span>
100
+ <span class='lparen'>(</span><span class='tstring'><span class='regexp_beg'>/</span><span class='tstring_content'>java</span><span class='regexp_end'>/</span></span> <span class='op'>=~</span> <span class='id ruby_platform'>ruby_platform</span><span class='rparen'>)</span> <span class='op'>!=</span> <span class='kw'>nil</span>
101
+ <span class='kw'>end</span>
102
+
103
+ <span class='comment'>##
104
+ </span> <span class='comment'># Instance wrapper for the global Ruby Constant, +RUBY_PLATFORM+.
105
+ </span> <span class='comment'>#
106
+ </span> <span class='comment'># wrapping this global allows for much easier testing and environment simulation.
107
+ </span> <span class='comment'>#
108
+ </span> <span class='kw'>def</span> <span class='id ruby_platform'>ruby_platform</span>
109
+ <span class='const'>RUBY_PLATFORM</span>
110
+ <span class='kw'>end</span>
111
+
112
+ <span class='kw'>end</span></pre>
113
+
114
+ <p>end</p>
115
+ </div></div>
116
+
117
+ <div id="footer">
118
+ Generated on Wed Dec 22 11:58:32 2010 by
119
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
120
+ 0.6.3 (ruby-1.9.2).
121
+ </div>
122
+
123
+ </body>
124
+ </html>
@@ -0,0 +1,224 @@
1
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN"
2
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
3
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
4
+ <head>
5
+ <meta name="Content-Type" content="text/html; charset=utf-8" />
6
+ <title>File: process_runner</title>
7
+ <link rel="stylesheet" href="css/style.css" type="text/css" media="screen" charset="utf-8" />
8
+ <link rel="stylesheet" href="css/common.css" type="text/css" media="screen" charset="utf-8" />
9
+
10
+ <script type="text/javascript" charset="utf-8">
11
+ relpath = '';
12
+ if (relpath != '') relpath += '/';
13
+ </script>
14
+ <script type="text/javascript" charset="utf-8" src="js/jquery.js"></script>
15
+ <script type="text/javascript" charset="utf-8" src="js/app.js"></script>
16
+
17
+ </head>
18
+ <body>
19
+ <script type="text/javascript" charset="utf-8">
20
+ if (window.top.frames.main) document.body.className = 'frames';
21
+ </script>
22
+
23
+ <div id="header">
24
+ <div id="menu">
25
+
26
+ <a href="_index.html" title="Index">Index</a> &raquo;
27
+ <span class="title">File: process_runner</span>
28
+
29
+
30
+ <div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
31
+ </div>
32
+
33
+ <div id="search">
34
+ <a id="class_list_link" href="#">Class List</a>
35
+ <a id="method_list_link" href="#">Method List</a>
36
+ <a id ="file_list_link" href="#">File List</a>
37
+ </div>
38
+
39
+ <div class="clear"></div>
40
+ </div>
41
+
42
+ <iframe id="search_frame"></iframe>
43
+
44
+ <div id="content"><div id='filecontents'>
45
+ <p>module Sprout #:nodoc:</p>
46
+
47
+ <pre class="code"><span class='comment'># The ProcessRunner is a cross-platform wrapper for executing
48
+ </span><span class='comment'># external executable processes.
49
+ </span><span class='comment'>#
50
+ </span><span class='comment'># As it turns out, Ruby handle differences very well, and
51
+ </span><span class='comment'># other process libraries (like win32-open3 and open4.popen4),
52
+ </span><span class='comment'># do make the experience more consistent on a given platform,
53
+ </span><span class='comment'># but they don't hide the differences introduced by the
54
+ </span><span class='comment'># continuing beligerence of Windows or *nix (depending on
55
+ </span><span class='comment'># which side of the fence you're on).
56
+ </span><span class='kw'>class</span> <span class='const'>ProcessRunner</span>
57
+
58
+ <span class='id attr_reader'>attr_reader</span> <span class='symbol'>:pid</span>
59
+ <span class='id attr_reader'>attr_reader</span> <span class='symbol'>:ruby_version</span>
60
+
61
+ <span class='comment'>##
62
+ </span> <span class='comment'># Read IO (readable)
63
+ </span> <span class='id attr_reader'>attr_reader</span> <span class='symbol'>:r</span>
64
+
65
+ <span class='comment'>##
66
+ </span> <span class='comment'># Write IO (writeable)
67
+ </span> <span class='id attr_reader'>attr_reader</span> <span class='symbol'>:w</span>
68
+
69
+ <span class='comment'>##
70
+ </span> <span class='comment'># Error IO (readable)
71
+ </span> <span class='id attr_reader'>attr_reader</span> <span class='symbol'>:e</span>
72
+
73
+ <span class='kw'>def</span> <span class='id initialize'>initialize</span>
74
+ <span class='kw'>super</span>
75
+ <span class='ivar'>@ruby_version</span> <span class='op'>=</span> <span class='const'>RUBY_VERSION</span>
76
+ <span class='kw'>end</span>
77
+
78
+ <span class='comment'># Execute the provided command using the open4.popen4
79
+ </span> <span class='comment'># library. This is generally only used by Cygwin and
80
+ </span> <span class='comment'># *nix variants (including OS X).
81
+ </span> <span class='kw'>def</span> <span class='id execute_open4'>execute_open4</span> <span class='op'>*</span><span class='id command'>command</span>
82
+ <span class='id execute_with_block'>execute_with_block</span> <span class='op'>*</span><span class='id command'>command</span> <span class='kw'>do</span>
83
+ <span class='comment'># Not sure about the join - with the 1.0 push, we're
84
+ </span> <span class='comment'># sending in 2 args - the exe path, and options as a string.
85
+ </span> <span class='comment'># This was new and was causing problems...
86
+ </span> <span class='ivar'>@pid</span><span class='comma'>,</span> <span class='ivar'>@w</span><span class='comma'>,</span> <span class='ivar'>@r</span><span class='comma'>,</span> <span class='ivar'>@e</span> <span class='op'>=</span> <span class='id open4_popen4_block'>open4_popen4_block</span> <span class='op'>*</span><span class='id command'>command</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'> </span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
87
+ <span class='kw'>end</span>
88
+ <span class='kw'>end</span>
89
+
90
+ <span class='comment'># Execute the provided command using the win32-open3
91
+ </span> <span class='comment'># library. This is generally used even by 64-bit
92
+ </span> <span class='comment'># Windows installations.
93
+ </span> <span class='kw'>def</span> <span class='id execute_win32'>execute_win32</span><span class='lparen'>(</span><span class='op'>*</span><span class='id command'>command</span><span class='rparen'>)</span>
94
+ <span class='id execute_with_block'>execute_with_block</span> <span class='op'>*</span><span class='id command'>command</span> <span class='kw'>do</span>
95
+ <span class='ivar'>@pid</span><span class='comma'>,</span> <span class='ivar'>@w</span><span class='comma'>,</span> <span class='ivar'>@r</span><span class='comma'>,</span> <span class='ivar'>@e</span> <span class='op'>=</span> <span class='id io_popen_block'>io_popen_block</span> <span class='op'>*</span><span class='id command'>command</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'> </span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
96
+ <span class='kw'>end</span>
97
+ <span class='kw'>end</span>
98
+
99
+ <span class='kw'>def</span> <span class='id alive?'>alive?</span>
100
+ <span class='ivar'>@alive</span> <span class='op'>=</span> <span class='id update_status'>update_status</span>
101
+ <span class='kw'>end</span>
102
+
103
+ <span class='kw'>def</span> <span class='id kill'>kill</span>
104
+ <span class='const'>Process</span><span class='period'>.</span><span class='id kill'>kill</span><span class='lparen'>(</span><span class='int'>9</span><span class='comma'>,</span> <span class='id pid'>pid</span><span class='rparen'>)</span>
105
+ <span class='kw'>end</span>
106
+
107
+ <span class='kw'>def</span> <span class='id close'>close</span>
108
+ <span class='id update_status'>update_status</span>
109
+ <span class='kw'>end</span>
110
+
111
+ <span class='kw'>def</span> <span class='id update_status'>update_status</span>
112
+ <span class='id pid_int'>pid_int</span> <span class='op'>=</span> <span class='const'>Integer</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span> <span class='ivar'>@pid</span> <span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
113
+ <span class='kw'>begin</span>
114
+ <span class='const'>Process</span><span class='op'>::</span><span class='id kill'>kill</span> <span class='int'>0</span><span class='comma'>,</span> <span class='id pid_int'>pid_int</span>
115
+ <span class='kw'>true</span>
116
+ <span class='kw'>rescue</span> <span class='const'>Errno</span><span class='op'>::</span><span class='const'>ESRCH</span>
117
+ <span class='kw'>false</span>
118
+ <span class='kw'>end</span>
119
+ <span class='kw'>end</span>
120
+
121
+ <span class='kw'>def</span> <span class='id readpartial'>readpartial</span><span class='lparen'>(</span><span class='id count'>count</span><span class='rparen'>)</span>
122
+ <span class='ivar'>@r</span><span class='period'>.</span><span class='id readpartial'>readpartial</span><span class='lparen'>(</span><span class='id count'>count</span><span class='rparen'>)</span>
123
+ <span class='kw'>end</span>
124
+
125
+ <span class='kw'>def</span> <span class='id readlines'>readlines</span>
126
+ <span class='ivar'>@r</span><span class='period'>.</span><span class='id readlines'>readlines</span>
127
+ <span class='kw'>end</span>
128
+
129
+ <span class='kw'>def</span> <span class='id flush'>flush</span>
130
+ <span class='ivar'>@w</span><span class='period'>.</span><span class='id flush'>flush</span>
131
+ <span class='kw'>end</span>
132
+
133
+ <span class='kw'>def</span> <span class='id getc'>getc</span>
134
+ <span class='ivar'>@r</span><span class='period'>.</span><span class='id getc'>getc</span>
135
+ <span class='kw'>end</span>
136
+
137
+ <span class='kw'>def</span> <span class='id print'>print</span><span class='lparen'>(</span><span class='id msg'>msg</span><span class='rparen'>)</span>
138
+ <span class='ivar'>@w</span><span class='period'>.</span><span class='id print'>print</span> <span class='id msg'>msg</span>
139
+ <span class='kw'>end</span>
140
+
141
+ <span class='kw'>def</span> <span class='id puts'>puts</span><span class='lparen'>(</span><span class='id msg'>msg</span><span class='rparen'>)</span>
142
+ <span class='ivar'>@w</span><span class='period'>.</span><span class='id puts'>puts</span><span class='lparen'>(</span><span class='id msg'>msg</span><span class='rparen'>)</span>
143
+ <span class='kw'>end</span>
144
+
145
+ <span class='kw'>def</span> <span class='id close_write'>close_write</span>
146
+ <span class='ivar'>@w</span><span class='period'>.</span><span class='id close_write'>close_write</span>
147
+ <span class='kw'>end</span>
148
+
149
+ <span class='kw'>def</span> <span class='id read'>read</span>
150
+ <span class='kw'>return</span> <span class='ivar'>@r</span><span class='period'>.</span><span class='id read'>read</span>
151
+ <span class='kw'>end</span>
152
+
153
+ <span class='kw'>def</span> <span class='id read_err'>read_err</span>
154
+ <span class='kw'>return</span> <span class='ivar'>@e</span><span class='period'>.</span><span class='id read'>read</span>
155
+ <span class='kw'>end</span>
156
+
157
+ <span class='id private'>private</span>
158
+
159
+ <span class='kw'>def</span> <span class='id open4_popen4_block'>open4_popen4_block</span> <span class='op'>*</span><span class='id command'>command</span>
160
+ <span class='id require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>open4</span><span class='tstring_end'>'</span></span>
161
+ <span class='id open4'>open4</span><span class='period'>.</span><span class='id popen4'>popen4</span><span class='lparen'>(</span><span class='op'>*</span><span class='id command'>command</span><span class='rparen'>)</span>
162
+ <span class='kw'>end</span>
163
+
164
+ <span class='kw'>def</span> <span class='id io_popen_block'>io_popen_block</span> <span class='op'>*</span><span class='id command'>command</span>
165
+ <span class='kw'>if</span><span class='lparen'>(</span><span class='id ruby_version'>ruby_version</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1.8.6</span><span class='tstring_end'>'</span></span> <span class='op'>||</span> <span class='id ruby_version'>ruby_version</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>1.8.7</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
166
+ <span class='id win32_open3_block'>win32_open3_block</span> <span class='op'>*</span><span class='id command'>command</span>
167
+ <span class='kw'>else</span>
168
+ <span class='id open3_popen3_block'>open3_popen3_block</span> <span class='op'>*</span><span class='id command'>command</span>
169
+ <span class='kw'>end</span>
170
+ <span class='kw'>end</span>
171
+
172
+ <span class='kw'>def</span> <span class='id open3_popen3_block'>open3_popen3_block</span> <span class='op'>*</span><span class='id command'>command</span>
173
+ <span class='id require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>open3</span><span class='tstring_end'>'</span></span>
174
+ <span class='id write'>write</span><span class='comma'>,</span> <span class='id read'>read</span><span class='comma'>,</span> <span class='id error'>error</span><span class='comma'>,</span> <span class='id wait_thread'>wait_thread</span> <span class='op'>=</span> <span class='const'>Open3</span><span class='period'>.</span><span class='id popen3'>popen3</span><span class='lparen'>(</span><span class='op'>*</span><span class='id command'>command</span><span class='rparen'>)</span>
175
+ <span class='lbracket'>[</span><span class='id wait_thread'>wait_thread</span><span class='lbracket'>[</span><span class='symbol'>:pid</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='id write'>write</span><span class='comma'>,</span> <span class='id read'>read</span><span class='comma'>,</span> <span class='id error'>error</span><span class='rbracket'>]</span>
176
+ <span class='kw'>end</span>
177
+
178
+ <span class='kw'>def</span> <span class='id win32_open3_block'>win32_open3_block</span> <span class='op'>*</span><span class='id command'>command</span>
179
+ <span class='id write'>write</span><span class='comma'>,</span> <span class='id read'>read</span><span class='comma'>,</span> <span class='id error'>error</span><span class='comma'>,</span> <span class='id pid'>pid</span> <span class='op'>=</span> <span class='kw'>nil</span>
180
+ <span class='id gem'>gem</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>win32-open3</span><span class='tstring_end'>'</span></span>
181
+ <span class='id require'>require</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>win32/open3</span><span class='tstring_end'>'</span></span>
182
+ <span class='const'>Open3</span><span class='period'>.</span><span class='id popen3'>popen3</span><span class='lparen'>(</span><span class='op'>*</span><span class='id command'>command</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id w'>w</span><span class='comma'>,</span> <span class='id r'>r</span><span class='comma'>,</span> <span class='id e'>e</span><span class='comma'>,</span> <span class='id p'>p</span><span class='op'>|</span>
183
+ <span class='id pid'>pid</span> <span class='op'>=</span> <span class='id p'>p</span>
184
+ <span class='id write'>write</span> <span class='op'>=</span> <span class='id w'>w</span>
185
+ <span class='id read'>read</span> <span class='op'>=</span> <span class='id r'>r</span>
186
+ <span class='id error'>error</span> <span class='op'>=</span> <span class='id e'>e</span>
187
+ <span class='kw'>end</span>
188
+ <span class='lbracket'>[</span><span class='id pid'>pid</span><span class='comma'>,</span> <span class='id write'>write</span><span class='comma'>,</span> <span class='id read'>read</span><span class='comma'>,</span> <span class='id error'>error</span><span class='rbracket'>]</span>
189
+ <span class='kw'>end</span>
190
+
191
+ <span class='kw'>def</span> <span class='id execute_with_block'>execute_with_block</span> <span class='op'>*</span><span class='id command'>command</span>
192
+ <span class='kw'>begin</span>
193
+ <span class='ivar'>@alive</span> <span class='op'>=</span> <span class='kw'>true</span>
194
+ <span class='kw'>yield</span>
195
+ <span class='kw'>rescue</span> <span class='const'>Errno</span><span class='op'>::</span><span class='const'>EACCES</span> <span class='op'>=&gt;</span> <span class='id eacces'>eacces</span>
196
+ <span class='id update_executable_mode'>update_executable_mode</span><span class='lparen'>(</span><span class='op'>*</span><span class='id command'>command</span><span class='rparen'>)</span>
197
+ <span class='kw'>yield</span>
198
+ <span class='kw'>rescue</span> <span class='const'>Errno</span><span class='op'>::</span><span class='const'>ENOENT</span> <span class='op'>=&gt;</span> <span class='id enoent'>enoent</span>
199
+ <span class='ivar'>@alive</span> <span class='op'>=</span> <span class='kw'>false</span>
200
+ <span class='id part'>part</span> <span class='op'>=</span> <span class='id command'>command</span><span class='lbracket'>[</span><span class='int'>0</span><span class='rbracket'>]</span>
201
+ <span class='id raise'>raise</span> <span class='const'>Sprout</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>ProcessRunnerError</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>The expected executable was not found for command [</span><span class='embexpr_beg'>#{</span><span class='id part'>part</span><span class='rbrace'>}</span><span class='tstring_content'>], please check your system path and/or sprout definition</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
202
+ <span class='kw'>end</span>
203
+ <span class='kw'>end</span>
204
+
205
+ <span class='kw'>def</span> <span class='id update_executable_mode'>update_executable_mode</span><span class='lparen'>(</span><span class='op'>*</span><span class='id command'>command</span><span class='rparen'>)</span>
206
+ <span class='id str'>str</span> <span class='op'>=</span> <span class='id command'>command</span><span class='period'>.</span><span class='id shift'>shift</span>
207
+ <span class='kw'>if</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id exists?'>exists?</span><span class='lparen'>(</span><span class='id str'>str</span><span class='rparen'>)</span><span class='rparen'>)</span>
208
+ <span class='const'>FileUtils</span><span class='period'>.</span><span class='id chmod'>chmod</span><span class='lparen'>(</span><span class='int'>0744</span><span class='comma'>,</span> <span class='id str'>str</span><span class='rparen'>)</span>
209
+ <span class='kw'>end</span>
210
+ <span class='kw'>end</span>
211
+
212
+ <span class='kw'>end</span></pre>
213
+
214
+ <p>end</p>
215
+ </div></div>
216
+
217
+ <div id="footer">
218
+ Generated on Wed Dec 22 11:58:32 2010 by
219
+ <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
220
+ 0.6.3 (ruby-1.9.2).
221
+ </div>
222
+
223
+ </body>
224
+ </html>