sprout 1.0.35.pre → 1.1.2.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 (234) hide show
  1. data/Gemfile +1 -1
  2. data/Gemfile.lock +0 -2
  3. data/README.textile +1 -1
  4. data/VERSION +1 -1
  5. data/lib/sprout/concern.rb +5 -7
  6. data/lib/sprout/daemon.rb +183 -143
  7. data/lib/sprout/executable/base.rb +564 -0
  8. data/lib/sprout/executable.rb +1 -550
  9. data/lib/sprout/generator/base.rb +2 -3
  10. data/lib/sprout/generator.rb +2 -1
  11. data/lib/sprout/generators/ruby/templates/ruby_base.rb +1 -2
  12. data/lib/sprout/library.rb +3 -3
  13. data/lib/sprout/output_buffer.rb +35 -0
  14. data/lib/sprout/process_runner.rb +68 -17
  15. data/lib/sprout/progress_bar.rb +5 -5
  16. data/lib/sprout/remote_file_target.rb +1 -1
  17. data/lib/sprout/system/base_system.rb +3 -3
  18. data/lib/sprout/system/unix_system.rb +1 -1
  19. data/lib/sprout/{test/sprout_test_case.rb → test_helper.rb} +214 -14
  20. data/lib/sprout/version.rb +1 -1
  21. data/lib/sprout.rb +133 -2
  22. data/rakefile.rb +2 -0
  23. data/test/fixtures/examples/echo_inputs.rb +1 -2
  24. data/test/fixtures/executable/fdb.rb +7 -9
  25. data/test/fixtures/executable/flex3sdk_gem/fdb +49 -18
  26. data/test/fixtures/executable/mxmlc.rb +1 -2
  27. data/test/fixtures/executable/subclass/executable_subclass.rb +0 -1
  28. data/test/fixtures/executable/subclass/executable_superclass.rb +1 -2
  29. data/test/fixtures/specification/flex4sdk.rb +35 -24
  30. data/test/unit/archive_unpacker_test.rb +1 -1
  31. data/test/unit/boolean_param_test.rb +1 -1
  32. data/test/unit/daemon_test.rb +35 -3
  33. data/test/unit/executable_option_parser_test.rb +2 -3
  34. data/test/unit/executable_param_test.rb +1 -1
  35. data/test/unit/executable_test.rb +8 -15
  36. data/test/unit/fake_other_executable.rb +1 -2
  37. data/test/unit/file_param_test.rb +1 -1
  38. data/test/unit/file_target_test.rb +1 -1
  39. data/test/unit/files_param_test.rb +1 -1
  40. data/test/unit/generator_generator_test.rb +1 -1
  41. data/test/unit/generator_test.rb +1 -1
  42. data/test/unit/library_generator_test.rb +1 -1
  43. data/test/unit/library_test.rb +1 -1
  44. data/test/unit/osx_system_test.rb +1 -1
  45. data/test/unit/path_param_test.rb +1 -1
  46. data/test/unit/paths_param_test.rb +1 -1
  47. data/test/unit/platform_test.rb +1 -1
  48. data/test/unit/process_runner_test.rb +1 -1
  49. data/test/unit/rdoc_parser_test.rb +1 -1
  50. data/test/unit/remote_file_loader_test.rb +1 -1
  51. data/test/unit/remote_file_target_test.rb +1 -1
  52. data/test/unit/ruby_feature_test.rb +1 -1
  53. data/test/unit/ruby_generator_test.rb +1 -1
  54. data/test/unit/specification_test.rb +8 -1
  55. data/test/unit/sprout_test.rb +2 -2
  56. data/test/unit/string_param_test.rb +1 -1
  57. data/test/unit/string_test.rb +1 -1
  58. data/test/unit/strings_param_test.rb +1 -1
  59. data/test/unit/test_helper.rb +33 -1
  60. data/test/unit/tool_generator_test.rb +1 -1
  61. data/test/unit/unix_system_test.rb +1 -1
  62. data/test/unit/user_test.rb +1 -1
  63. data/test/unit/vista_system_test.rb +1 -1
  64. data/test/unit/win_nix_system_test.rb +1 -1
  65. data/test/unit/win_system_test.rb +1 -1
  66. data/test-stderr.log +1 -0
  67. data/test-stdout.log +237 -0
  68. metadata +15 -190
  69. data/doc/Dir.html +0 -288
  70. data/doc/Rake/Task.html +0 -184
  71. data/doc/Sprout/ArchiveUnpacker.html +0 -1246
  72. data/doc/Sprout/Base/ClassMethods.html +0 -434
  73. data/doc/Sprout/Base.html +0 -126
  74. data/doc/Sprout/Concern.html +0 -353
  75. data/doc/Sprout/Daemon/ClassMethods.html +0 -244
  76. data/doc/Sprout/Daemon/InstanceMethods.html +0 -601
  77. data/doc/Sprout/Daemon.html +0 -166
  78. data/doc/Sprout/Errors/ArchiveUnpackerError.html +0 -125
  79. data/doc/Sprout/Errors/DestinationExistsError.html +0 -133
  80. data/doc/Sprout/Errors/DuplicateMemberError.html +0 -132
  81. data/doc/Sprout/Errors/ExecutableError.html +0 -125
  82. data/doc/Sprout/Errors/ExecutableRegistrationError.html +0 -132
  83. data/doc/Sprout/Errors/ExecutionError.html +0 -121
  84. data/doc/Sprout/Errors/GeneratorError.html +0 -125
  85. data/doc/Sprout/Errors/InvalidArgumentError.html +0 -132
  86. data/doc/Sprout/Errors/LoadError.html +0 -121
  87. data/doc/Sprout/Errors/MissingArgumentError.html +0 -132
  88. data/doc/Sprout/Errors/MissingExecutableError.html +0 -132
  89. data/doc/Sprout/Errors/MissingGeneratorError.html +0 -132
  90. data/doc/Sprout/Errors/MissingTemplateError.html +0 -132
  91. data/doc/Sprout/Errors/ProcessRunnerError.html +0 -121
  92. data/doc/Sprout/Errors/RemoteFileLoaderError.html +0 -110
  93. data/doc/Sprout/Errors/SproutError.html +0 -114
  94. data/doc/Sprout/Errors/UnknownArchiveType.html +0 -122
  95. data/doc/Sprout/Errors/UsageError.html +0 -121
  96. data/doc/Sprout/Errors/ValidationError.html +0 -121
  97. data/doc/Sprout/Errors/VersionRequirementNotMetError.html +0 -121
  98. data/doc/Sprout/Errors.html +0 -101
  99. data/doc/Sprout/Executable/Boolean.html +0 -483
  100. data/doc/Sprout/Executable/ClassMethods.html +0 -417
  101. data/doc/Sprout/Executable/CollectionParam.html +0 -483
  102. data/doc/Sprout/Executable/FileParam.html +0 -484
  103. data/doc/Sprout/Executable/Files.html +0 -292
  104. data/doc/Sprout/Executable/InstanceMethods.html +0 -2006
  105. data/doc/Sprout/Executable/Number.html +0 -141
  106. data/doc/Sprout/Executable/Param.html +0 -2818
  107. data/doc/Sprout/Executable/ParameterFactory.html +0 -232
  108. data/doc/Sprout/Executable/Path.html +0 -223
  109. data/doc/Sprout/Executable/Paths.html +0 -253
  110. data/doc/Sprout/Executable/StringParam.html +0 -213
  111. data/doc/Sprout/Executable/Strings.html +0 -167
  112. data/doc/Sprout/Executable/Url.html +0 -160
  113. data/doc/Sprout/Executable/Urls.html +0 -170
  114. data/doc/Sprout/Executable.html +0 -173
  115. data/doc/Sprout/FileTarget.html +0 -1109
  116. data/doc/Sprout/Generator/Base.html +0 -1626
  117. data/doc/Sprout/Generator/Command.html +0 -690
  118. data/doc/Sprout/Generator/DirectoryManifest.html +0 -476
  119. data/doc/Sprout/Generator/FileManifest.html +0 -572
  120. data/doc/Sprout/Generator/Manifest.html +0 -377
  121. data/doc/Sprout/Generator/TemplateManifest.html +0 -196
  122. data/doc/Sprout/Generator.html +0 -689
  123. data/doc/Sprout/GeneratorGenerator.html +0 -1018
  124. data/doc/Sprout/Library.html +0 -1141
  125. data/doc/Sprout/LibraryGenerator.html +0 -309
  126. data/doc/Sprout/Log.html +0 -496
  127. data/doc/Sprout/MXMLC.html +0 -6373
  128. data/doc/Sprout/Platform.html +0 -714
  129. data/doc/Sprout/ProcessRunner.html +0 -1352
  130. data/doc/Sprout/ProgressBar.html +0 -376
  131. data/doc/Sprout/ProgressBarImpl.html +0 -2119
  132. data/doc/Sprout/ProgressBarManager.html +0 -434
  133. data/doc/Sprout/ProgressBarOutputStream.html +0 -416
  134. data/doc/Sprout/RDocParser.html +0 -211
  135. data/doc/Sprout/RemoteFileLoader.html +0 -172
  136. data/doc/Sprout/RemoteFileTarget.html +0 -679
  137. data/doc/Sprout/ReversedProgressBar.html +0 -194
  138. data/doc/Sprout/RubyFeature/ClassMethods.html +0 -1065
  139. data/doc/Sprout/RubyFeature.html +0 -155
  140. data/doc/Sprout/RubyGenerator.html +0 -764
  141. data/doc/Sprout/Specification.html +0 -767
  142. data/doc/Sprout/System/BaseSystem.html +0 -1455
  143. data/doc/Sprout/System/JavaSystem.html +0 -122
  144. data/doc/Sprout/System/OSXSystem.html +0 -335
  145. data/doc/Sprout/System/ThreadMock.html +0 -193
  146. data/doc/Sprout/System/UnixSystem.html +0 -584
  147. data/doc/Sprout/System/VistaSystem.html +0 -251
  148. data/doc/Sprout/System/WinNixSystem.html +0 -325
  149. data/doc/Sprout/System/WinSystem.html +0 -571
  150. data/doc/Sprout/System.html +0 -191
  151. data/doc/Sprout/ToolGenerator.html +0 -931
  152. data/doc/Sprout/VERSION.html +0 -128
  153. data/doc/Sprout.html +0 -144
  154. data/doc/SproutTestCase.html +0 -1412
  155. data/doc/String.html +0 -286
  156. data/doc/_index.html +0 -1035
  157. data/doc/class_list.html +0 -36
  158. data/doc/css/common.css +0 -1
  159. data/doc/css/full_list.css +0 -53
  160. data/doc/css/style.css +0 -310
  161. data/doc/file.README.html +0 -96
  162. data/doc/file.archive_unpacker.html +0 -288
  163. data/doc/file.base.html +0 -208
  164. data/doc/file.base_system.html +0 -278
  165. data/doc/file.boolean.html +0 -135
  166. data/doc/file.collection_param.html +0 -139
  167. data/doc/file.command.html +0 -126
  168. data/doc/file.concern.html +0 -136
  169. data/doc/file.daemon.html +0 -309
  170. data/doc/file.dir.html +0 -76
  171. data/doc/file.directory_manifest.html +0 -122
  172. data/doc/file.errors.html +0 -147
  173. data/doc/file.executable.html +0 -638
  174. data/doc/file.file_manifest.html +0 -109
  175. data/doc/file.file_param.html +0 -120
  176. data/doc/file.file_target.html +0 -140
  177. data/doc/file.files.html +0 -85
  178. data/doc/file.generator.html +0 -296
  179. data/doc/file.generator_class.html +0 -72
  180. data/doc/file.generator_generator.html +0 -137
  181. data/doc/file.generator_test.html +0 -92
  182. data/doc/file.generator_test_helper.html +0 -67
  183. data/doc/file.java_system.html +0 -62
  184. data/doc/file.library.html +0 -291
  185. data/doc/file.library_generator.html +0 -74
  186. data/doc/file.log.html +0 -100
  187. data/doc/file.manifest.html +0 -67
  188. data/doc/file.mxmlc.html +0 -740
  189. data/doc/file.number.html +0 -67
  190. data/doc/file.osx_system.html +0 -79
  191. data/doc/file.param.html +0 -491
  192. data/doc/file.parameter_factory.html +0 -119
  193. data/doc/file.path.html +0 -81
  194. data/doc/file.paths.html +0 -80
  195. data/doc/file.platform.html +0 -124
  196. data/doc/file.process_runner.html +0 -224
  197. data/doc/file.progress_bar.html +0 -390
  198. data/doc/file.rdoc_parser.html +0 -145
  199. data/doc/file.remote_file_loader.html +0 -117
  200. data/doc/file.remote_file_target.html +0 -176
  201. data/doc/file.ruby_base.html +0 -64
  202. data/doc/file.ruby_feature.html +0 -244
  203. data/doc/file.ruby_generator.html +0 -118
  204. data/doc/file.ruby_input.html +0 -62
  205. data/doc/file.ruby_test_case.html +0 -78
  206. data/doc/file.ruby_test_helper.html +0 -61
  207. data/doc/file.specification.html +0 -248
  208. data/doc/file.sprout.html +0 -64
  209. data/doc/file.sprout_test_case.html +0 -280
  210. data/doc/file.string.html +0 -72
  211. data/doc/file.string_param.html +0 -76
  212. data/doc/file.strings.html +0 -71
  213. data/doc/file.system.html +0 -86
  214. data/doc/file.template_manifest.html +0 -67
  215. data/doc/file.tool.html +0 -92
  216. data/doc/file.tool_generator.html +0 -90
  217. data/doc/file.unix_system.html +0 -128
  218. data/doc/file.url.html +0 -71
  219. data/doc/file.urls.html +0 -70
  220. data/doc/file.version.html +0 -71
  221. data/doc/file.vista_system.html +0 -69
  222. data/doc/file.win_nix_system.html +0 -88
  223. data/doc/file.win_system.html +0 -129
  224. data/doc/file_list.html +0 -230
  225. data/doc/frames.html +0 -13
  226. data/doc/index.html +0 -96
  227. data/doc/js/app.js +0 -202
  228. data/doc/js/full_list.js +0 -149
  229. data/doc/js/jquery.js +0 -154
  230. data/doc/method_list.html +0 -3355
  231. data/doc/top-level-namespace.html +0 -192
  232. data/lib/sprout/base.rb +0 -121
  233. data/lib/sprout/log.rb +0 -46
  234. data/test/unit/sprout_test_helper.rb +0 -33
data/doc/file.daemon.html DELETED
@@ -1,309 +0,0 @@
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: daemon</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: daemon</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'># The Sprout::Daemon module exposes the Domain Specific Language
49
- </span><span class='comment'># provided by the Sprout::Executable module, but with
50
- </span><span class='comment'># enhancements (and modifications) to support long-lived processes
51
- </span><span class='comment'># (like FDB and FCSH).
52
- </span><span class='comment'>#
53
- </span><span class='comment'># NOTE: Any class that includes Sprout::Daemon should first include
54
- </span><span class='comment'># Sprout::Executable. This is an admittedly smelly constraint, but it works
55
- </span><span class='comment'># for now.
56
- </span><span class='comment'>#
57
- </span><span class='comment'># class Foo
58
- </span><span class='comment'># include Sprout::Executable
59
- </span><span class='comment'># include Sprout::Daemon
60
- </span><span class='comment'>#
61
- </span><span class='comment'># ##
62
- </span><span class='comment'># # Keep in mind that we're still working
63
- </span><span class='comment'># # with Executable, so add_param is available
64
- </span><span class='comment'># # for the initialization of the process.
65
- </span><span class='comment'># add_param :input, File
66
- </span><span class='comment'>#
67
- </span><span class='comment'># ##
68
- </span><span class='comment'># # Expose the do_something action after
69
- </span><span class='comment'># # the process is started.
70
- </span><span class='comment'># add_action :do_something
71
- </span><span class='comment'>#
72
- </span><span class='comment'># ##
73
- </span><span class='comment'># # Expose the do_something_else action after
74
- </span><span class='comment'># # the process is started.
75
- </span><span class='comment'># add_action :do_something_else
76
- </span><span class='comment'># end
77
- </span><span class='comment'>#
78
- </span><span class='comment'># You can also create a globally-accessible rake task to expose
79
- </span><span class='comment'># your new Daemon instance to Rake by creating a method like the following:
80
- </span><span class='comment'>#
81
- </span><span class='comment'># def foo *args, &amp;block
82
- </span><span class='comment'># foo_tool = Foo.new
83
- </span><span class='comment'># foo_tool.to_rake *args, &amp;block
84
- </span><span class='comment'># end
85
- </span><span class='comment'>#
86
- </span><span class='comment'># Note: The aforementioned rake helper is usually written at the bottom of
87
- </span><span class='comment'># the class file that is referenced.
88
- </span><span class='comment'>#
89
- </span><span class='comment'># The aforementioned Rake task could be used like:
90
- </span><span class='comment'>#
91
- </span><span class='comment'># foo :bar do |t|
92
- </span><span class='comment'># t.do_something
93
- </span><span class='comment'># t.do_something_else
94
- </span><span class='comment'># end
95
- </span><span class='comment'>#
96
- </span><span class='comment'># @see: Sprout::Daemon::ClassMethods
97
- </span><span class='comment'># @see: Sprout::Daemon::InstanceMethods
98
- </span><span class='comment'>#
99
- </span><span class='kw'>module</span> <span class='const'>Daemon</span>
100
-
101
- <span class='id extend'>extend</span> <span class='const'>Concern</span>
102
-
103
- <span class='comment'>##
104
- </span> <span class='comment'># These are the methods that will be available
105
- </span> <span class='comment'># on any class that includes Sprout::Daemon.
106
- </span> <span class='kw'>module</span> <span class='const'>ClassMethods</span>
107
-
108
- <span class='comment'>##
109
- </span> <span class='comment'># Add an action that can be called while
110
- </span> <span class='comment'># the long-lived process is active.
111
- </span> <span class='comment'>#
112
- </span> <span class='comment'># This method should raise a Sprout::Errors::UsageError
113
- </span> <span class='comment'># if the provided action name is already defined for
114
- </span> <span class='comment'># the provided instance.
115
- </span> <span class='kw'>def</span> <span class='id add_action'>add_action</span> <span class='id name'>name</span><span class='comma'>,</span> <span class='id arguments'>arguments</span><span class='op'>=</span><span class='kw'>nil</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='kw'>nil</span>
116
- <span class='id options'>options</span> <span class='op'>||=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span>
117
- <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id name'>name</span>
118
- <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:arguments</span><span class='rbracket'>]</span> <span class='op'>=</span> <span class='id arguments'>arguments</span>
119
- <span class='id create_action_method'>create_action_method</span> <span class='id options'>options</span>
120
- <span class='kw'>end</span>
121
-
122
- <span class='comment'>##
123
- </span> <span class='comment'># Create an (often shorter) alias to another
124
- </span> <span class='comment'># action name.
125
- </span> <span class='kw'>def</span> <span class='id add_action_alias'>add_action_alias</span> <span class='id alias_name'>alias_name</span><span class='comma'>,</span> <span class='id source_name'>source_name</span>
126
- <span class='id define_method'>define_method</span><span class='lparen'>(</span><span class='id alias_name'>alias_name</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='op'>*</span><span class='id params'>params</span><span class='op'>|</span>
127
- <span class='kw'>self</span><span class='period'>.</span><span class='id send'>send</span><span class='lparen'>(</span><span class='id source_name'>source_name</span><span class='comma'>,</span> <span class='id params'>params</span><span class='rparen'>)</span>
128
- <span class='kw'>end</span>
129
- <span class='kw'>end</span>
130
-
131
- <span class='id private'>private</span>
132
-
133
- <span class='comment'>##
134
- </span> <span class='comment'># Actually create the method for a provided
135
- </span> <span class='comment'># action.
136
- </span> <span class='comment'>#
137
- </span> <span class='comment'># This method should explode if the method name
138
- </span> <span class='comment'># already exists.
139
- </span> <span class='kw'>def</span> <span class='id create_action_method'>create_action_method</span> <span class='id options'>options</span>
140
- <span class='id name'>name</span> <span class='op'>=</span> <span class='id options'>options</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span>
141
- <span class='id accessor_can_be_defined_at'>accessor_can_be_defined_at</span> <span class='id name'>name</span>
142
-
143
- <span class='id define_method'>define_method</span><span class='lparen'>(</span><span class='id name'>name</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='op'>*</span><span class='id params'>params</span><span class='op'>|</span>
144
- <span class='id action'>action</span> <span class='op'>=</span> <span class='id name'>name</span><span class='period'>.</span><span class='id to_s'>to_s</span>
145
- <span class='id action'>action</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>y</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>if</span> <span class='id name'>name</span> <span class='op'>==</span> <span class='symbol'>:confirm</span> <span class='comment'># Convert affirmation
146
- </span> <span class='id action'>action</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id params'>params</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><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id params'>params</span><span class='period'>.</span><span class='id nil?'>nil?</span>
147
- <span class='id action_stack'>action_stack</span> <span class='op'>&lt;&lt;</span> <span class='id action'>action</span>
148
- <span class='kw'>end</span>
149
- <span class='kw'>end</span>
150
-
151
- <span class='comment'>##
152
- </span> <span class='comment'># TODO: Raise an exception if the name is
153
- </span> <span class='comment'># already taken?
154
- </span> <span class='kw'>def</span> <span class='id accessor_can_be_defined_at'>accessor_can_be_defined_at</span> <span class='id name'>name</span>
155
- <span class='kw'>end</span>
156
-
157
- <span class='kw'>end</span>
158
-
159
- <span class='comment'>##
160
- </span> <span class='comment'># Instance methods that will be available on any
161
- </span> <span class='comment'># class that includes Sprout::Daemon.
162
- </span> <span class='kw'>module</span> <span class='const'>InstanceMethods</span>
163
-
164
- <span class='comment'>##
165
- </span> <span class='comment'># The prompt expression for this daemon process.
166
- </span> <span class='comment'>#
167
- </span> <span class='comment'># When executing a series of commands, the
168
- </span> <span class='comment'># wrapper will wait until it matches this expression
169
- </span> <span class='comment'># on stdout before continuing the series.
170
- </span> <span class='comment'>#
171
- </span> <span class='comment'># For FDB, this value is set like:
172
- </span> <span class='comment'>#
173
- </span> <span class='comment'># set :prompt, /^\(fdb\) /
174
- </span> <span class='comment'>#
175
- </span> <span class='comment'># Most processes can trigger a variety of different
176
- </span> <span class='comment'># prompts, these can be expressed here using the | (or) operator.
177
- </span> <span class='comment'>#
178
- </span> <span class='comment'># FDB actually uses the following:
179
- </span> <span class='comment'>#
180
- </span> <span class='comment'># set :prompt, /^\(fdb\) |\(y or n\) /
181
- </span> <span class='comment'>#
182
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:prompt</span>
183
-
184
- <span class='comment'>##
185
- </span> <span class='comment'># This is the array of actions that have
186
- </span> <span class='comment'># been provided at the class level to this instance.
187
- </span> <span class='id attr_reader'>attr_reader</span> <span class='symbol'>:action_stack</span>
188
-
189
- <span class='kw'>def</span> <span class='id initialize'>initialize</span>
190
- <span class='kw'>super</span>
191
- <span class='ivar'>@action_stack</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
192
- <span class='kw'>end</span>
193
-
194
- <span class='comment'>##
195
- </span> <span class='comment'># Execute the Daemon executable, followed
196
- </span> <span class='comment'># by the collection of stored actions in
197
- </span> <span class='comment'># the order they were called.
198
- </span> <span class='comment'>#
199
- </span> <span class='comment'># If none of the stored actions result in
200
- </span> <span class='comment'># terminating the process, the underlying
201
- </span> <span class='comment'># daemon will be connected to the terminal
202
- </span> <span class='comment'># for user (manual) input.
203
- </span> <span class='kw'>def</span> <span class='id execute'>execute</span>
204
- <span class='id runner'>runner</span> <span class='op'>=</span> <span class='kw'>super</span>
205
- <span class='id execute_actions'>execute_actions</span> <span class='id runner'>runner</span>
206
- <span class='id handle_user_session'>handle_user_session</span> <span class='id runner'>runner</span>
207
- <span class='const'>Process</span><span class='period'>.</span><span class='id wait'>wait</span> <span class='id runner'>runner</span><span class='period'>.</span><span class='id pid'>pid</span>
208
- <span class='kw'>end</span>
209
-
210
- <span class='id protected'>protected</span>
211
-
212
- <span class='comment'>##
213
- </span> <span class='comment'># This is the override of the underlying
214
- </span> <span class='comment'># Sprout::Executable template method so that we
215
- </span> <span class='comment'># create a 'task' instead of a 'file' task.
216
- </span> <span class='kw'>def</span> <span class='id create_outer_task'>create_outer_task</span> <span class='op'>*</span><span class='id args'>args</span>
217
- <span class='id task'>task</span> <span class='op'>*</span><span class='id args'>args</span> <span class='kw'>do</span>
218
- <span class='id execute'>execute</span>
219
- <span class='kw'>end</span>
220
- <span class='kw'>end</span>
221
-
222
- <span class='comment'>##
223
- </span> <span class='comment'># This is the override of the underlying
224
- </span> <span class='comment'># Sprout::Executable template method so that we
225
- </span> <span class='comment'># are NOT added to the CLEAN collection.
226
- </span> <span class='comment'># (Work performed in the Executable)
227
- </span> <span class='kw'>def</span> <span class='id update_rake_task_name_from_args'>update_rake_task_name_from_args</span> <span class='op'>*</span><span class='id args'>args</span>
228
- <span class='kw'>self</span><span class='period'>.</span><span class='id rake_task_name'>rake_task_name</span> <span class='op'>=</span> <span class='id parse_rake_task_arg'>parse_rake_task_arg</span> <span class='id args'>args</span><span class='period'>.</span><span class='id last'>last</span>
229
- <span class='kw'>end</span>
230
-
231
- <span class='comment'>##
232
- </span> <span class='comment'># This is the override of the underlying
233
- </span> <span class='comment'># Sprout::Executable template method so that we
234
- </span> <span class='comment'># create the process in a thread
235
- </span> <span class='comment'># in order to read and write to it.
236
- </span> <span class='kw'>def</span> <span class='id system_execute'>system_execute</span> <span class='id binary'>binary</span><span class='comma'>,</span> <span class='id params'>params</span>
237
- <span class='const'>Sprout</span><span class='period'>.</span><span class='id current_system'>current_system</span><span class='period'>.</span><span class='id execute_thread'>execute_thread</span> <span class='id binary'>binary</span><span class='comma'>,</span> <span class='id params'>params</span>
238
- <span class='kw'>end</span>
239
-
240
- <span class='id private'>private</span>
241
-
242
- <span class='comment'>##
243
- </span> <span class='comment'># Execute the collection of provided actions.
244
- </span> <span class='kw'>def</span> <span class='id execute_actions'>execute_actions</span> <span class='id runner'>runner</span>
245
- <span class='id action_stack'>action_stack</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id action'>action</span><span class='op'>|</span>
246
- <span class='kw'>if</span> <span class='id wait_for_prompt'>wait_for_prompt</span> <span class='id runner'>runner</span>
247
- <span class='const'>Sprout</span><span class='op'>::</span><span class='const'>Log</span><span class='period'>.</span><span class='id puts'>puts</span> <span class='id action'>action</span>
248
- <span class='id execute_action'>execute_action</span> <span class='id runner'>runner</span><span class='comma'>,</span> <span class='id action'>action</span>
249
- <span class='kw'>end</span>
250
- <span class='kw'>end</span>
251
- <span class='kw'>end</span>
252
-
253
- <span class='comment'>##
254
- </span> <span class='comment'># Execute a single action.
255
- </span> <span class='kw'>def</span> <span class='id execute_action'>execute_action</span> <span class='id runner'>runner</span><span class='comma'>,</span> <span class='id action'>action</span>
256
- <span class='id runner'>runner</span><span class='period'>.</span><span class='id puts'>puts</span> <span class='id action'>action</span><span class='period'>.</span><span class='id strip'>strip</span>
257
- <span class='kw'>end</span>
258
-
259
- <span class='comment'>##
260
- </span> <span class='comment'># Expose the running process to manual
261
- </span> <span class='comment'># input on the terminal, and write stdout
262
- </span> <span class='comment'># back to the user.
263
- </span> <span class='kw'>def</span> <span class='id handle_user_session'>handle_user_session</span> <span class='id runner'>runner</span>
264
- <span class='kw'>while</span> <span class='op'>!</span><span class='id runner'>runner</span><span class='period'>.</span><span class='id r'>r</span><span class='period'>.</span><span class='id eof?'>eof?</span>
265
- <span class='kw'>if</span> <span class='id wait_for_prompt'>wait_for_prompt</span> <span class='id runner'>runner</span>
266
- <span class='id input'>input</span> <span class='op'>=</span> <span class='gvar'>$stdin</span><span class='period'>.</span><span class='id gets'>gets</span><span class='period'>.</span><span class='id chomp!'>chomp!</span>
267
- <span class='id execute_action'>execute_action</span> <span class='id runner'>runner</span><span class='comma'>,</span> <span class='id input'>input</span>
268
- <span class='kw'>end</span>
269
- <span class='kw'>end</span>
270
- <span class='kw'>end</span>
271
-
272
- <span class='comment'>##
273
- </span> <span class='comment'># Wait for the underlying process to present
274
- </span> <span class='comment'># an input prompt, so that another action
275
- </span> <span class='comment'># can be submitted, or user input can be
276
- </span> <span class='comment'># collected.
277
- </span> <span class='kw'>def</span> <span class='id wait_for_prompt'>wait_for_prompt</span> <span class='id runner'>runner</span><span class='comma'>,</span> <span class='id expected_prompt'>expected_prompt</span><span class='op'>=</span><span class='kw'>nil</span>
278
- <span class='comment'>##
279
- </span> <span class='comment'># TODO: This should also check for a variety of prompts...
280
- </span> <span class='id expected_prompt'>expected_prompt</span> <span class='op'>=</span> <span class='id expected_prompt'>expected_prompt</span> <span class='op'>||</span> <span class='id prompt'>prompt</span>
281
- <span class='id line'>line</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span>
282
-
283
- <span class='kw'>while</span> <span class='id runner'>runner</span><span class='period'>.</span><span class='id alive?'>alive?</span> <span class='kw'>do</span>
284
- <span class='const'>Sprout</span><span class='op'>::</span><span class='const'>Log</span><span class='period'>.</span><span class='id flush'>flush</span>
285
- <span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>if</span> <span class='id runner'>runner</span><span class='period'>.</span><span class='id r'>r</span><span class='period'>.</span><span class='id eof?'>eof?</span>
286
- <span class='id char'>char</span> <span class='op'>=</span> <span class='id runner'>runner</span><span class='period'>.</span><span class='id readpartial'>readpartial</span> <span class='int'>1</span>
287
- <span class='id line'>line</span> <span class='op'>&lt;&lt;</span> <span class='id char'>char</span>
288
- <span class='kw'>if</span> <span class='id char'>char</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span>
289
- <span class='id line'>line</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span>
290
- <span class='kw'>end</span>
291
- <span class='const'>Sprout</span><span class='op'>::</span><span class='const'>Log</span><span class='period'>.</span><span class='id printf'>printf</span> <span class='id char'>char</span>
292
- <span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>if</span> <span class='id line'>line</span><span class='period'>.</span><span class='id match'>match</span> <span class='id expected_prompt'>expected_prompt</span>
293
- <span class='kw'>end</span>
294
- <span class='kw'>end</span>
295
-
296
- <span class='kw'>end</span>
297
- <span class='kw'>end</span></pre>
298
-
299
- <p>end</p>
300
- </div></div>
301
-
302
- <div id="footer">
303
- Generated on Wed Dec 22 11:58:31 2010 by
304
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
305
- 0.6.3 (ruby-1.9.2).
306
- </div>
307
-
308
- </body>
309
- </html>
data/doc/file.dir.html DELETED
@@ -1,76 +0,0 @@
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: dir</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: dir</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>class Dir</p>
46
-
47
- <pre class="code"><span class='comment'>##
48
- </span><span class='comment'># Return true if the directory has no children.
49
- </span><span class='comment'>#
50
- </span><span class='comment'># Code found here: http://www.ruby-forum.com/topic/84762
51
- </span><span class='kw'>def</span> <span class='id empty?'>empty?</span>
52
- <span class='const'>Dir</span><span class='period'>.</span><span class='id glob'>glob</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='embexpr_beg'>#{</span> <span class='id path'>path</span> <span class='rbrace'>}</span><span class='tstring_content'>/*</span><span class='tstring_end'>&quot;</span></span><span class='comma'>,</span> <span class='const'>File</span><span class='op'>::</span><span class='const'>FNM_DOTMATCH</span><span class='rparen'>)</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id e'>e</span><span class='op'>|</span>
53
- <span class='kw'>return</span> <span class='kw'>false</span> <span class='kw'>unless</span> <span class='qwords_beg'>%w( </span><span class='tstring_content'>.</span><span class='words_sep'> </span><span class='tstring_content'>..</span><span class='words_sep'> )</span><span class='period'>.</span><span class='id include?'>include?</span><span class='lparen'>(</span><span class='const'>File</span><span class='op'>::</span><span class='id basename'>basename</span><span class='lparen'>(</span><span class='id e'>e</span><span class='rparen'>)</span><span class='rparen'>)</span>
54
- <span class='kw'>end</span>
55
- <span class='kw'>return</span> <span class='kw'>true</span>
56
- <span class='kw'>end</span>
57
-
58
- <span class='comment'>##
59
- </span><span class='comment'># Return true if the provided path has no children.
60
- </span><span class='comment'>#
61
- </span><span class='comment'># Code found here: http://www.ruby-forum.com/topic/84762
62
- </span><span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id empty?'>empty?</span> <span class='id path'>path</span>
63
- <span class='id new'>new</span><span class='lparen'>(</span><span class='id path'>path</span><span class='rparen'>)</span><span class='period'>.</span><span class='id empty?'>empty?</span>
64
- <span class='kw'>end</span></pre>
65
-
66
- <p>end</p>
67
- </div></div>
68
-
69
- <div id="footer">
70
- Generated on Wed Dec 22 11:58:31 2010 by
71
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
72
- 0.6.3 (ruby-1.9.2).
73
- </div>
74
-
75
- </body>
76
- </html>
@@ -1,122 +0,0 @@
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: directory_manifest</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: directory_manifest</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::Generator</p>
46
-
47
- <pre class="code"><span class='kw'>class</span> <span class='const'>DirectoryManifest</span> <span class='op'>&lt;</span> <span class='const'>Manifest</span>
48
- <span class='id attr_reader'>attr_reader</span> <span class='symbol'>:children</span>
49
- <span class='id attr_reader'>attr_reader</span> <span class='symbol'>:generators</span>
50
-
51
- <span class='kw'>def</span> <span class='id initialize'>initialize</span>
52
- <span class='kw'>super</span>
53
- <span class='ivar'>@children</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
54
- <span class='ivar'>@generators</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
55
- <span class='kw'>end</span>
56
-
57
- <span class='kw'>def</span> <span class='id create'>create</span>
58
- <span class='kw'>if</span> <span class='op'>!</span><span class='const'>File</span><span class='period'>.</span><span class='id directory?'>directory?</span><span class='lparen'>(</span><span class='id path'>path</span><span class='rparen'>)</span>
59
- <span class='const'>FileUtils</span><span class='period'>.</span><span class='id mkdir_p'>mkdir_p</span> <span class='id path'>path</span>
60
- <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Created directory: </span><span class='embexpr_beg'>#{</span><span class='id path'>path</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
61
- <span class='kw'>else</span>
62
- <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Skipped existing: </span><span class='embexpr_beg'>#{</span><span class='id path'>path</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span><span class='lparen'>(</span><span class='id path'>path</span> <span class='op'>==</span> <span class='const'>Dir</span><span class='period'>.</span><span class='id pwd'>pwd</span><span class='rparen'>)</span>
63
- <span class='kw'>end</span>
64
- <span class='id create_children'>create_children</span>
65
- <span class='id execute_generators'>execute_generators</span>
66
- <span class='kw'>end</span>
67
-
68
- <span class='kw'>def</span> <span class='id destroy'>destroy</span>
69
- <span class='id unexecute_generators'>unexecute_generators</span>
70
- <span class='id success'>success</span> <span class='op'>=</span> <span class='id destroy_children'>destroy_children</span>
71
-
72
- <span class='kw'>if</span> <span class='id success'>success</span> <span class='op'>&amp;&amp;</span> <span class='id can_remove?'>can_remove?</span>
73
- <span class='const'>FileUtils</span><span class='period'>.</span><span class='id rmdir'>rmdir</span> <span class='id path'>path</span>
74
- <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Removed directory: </span><span class='embexpr_beg'>#{</span><span class='id path'>path</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
75
- <span class='kw'>true</span>
76
- <span class='kw'>else</span>
77
- <span class='id say'>say</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>Skipped remove directory: </span><span class='embexpr_beg'>#{</span><span class='id path'>path</span><span class='rbrace'>}</span><span class='tstring_end'>&quot;</span></span>
78
- <span class='kw'>false</span>
79
- <span class='kw'>end</span>
80
- <span class='kw'>end</span>
81
-
82
- <span class='id private'>private</span>
83
-
84
- <span class='kw'>def</span> <span class='id can_remove?'>can_remove?</span>
85
- <span class='const'>File</span><span class='period'>.</span><span class='id directory?'>directory?</span><span class='lparen'>(</span><span class='id path'>path</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='const'>Dir</span><span class='period'>.</span><span class='id empty?'>empty?</span><span class='lparen'>(</span><span class='id path'>path</span><span class='rparen'>)</span>
86
- <span class='kw'>end</span>
87
-
88
- <span class='kw'>def</span> <span class='id create_children'>create_children</span>
89
- <span class='id created'>created</span> <span class='op'>=</span> <span class='id children'>children</span><span class='period'>.</span><span class='id select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id child'>child</span><span class='op'>|</span> <span class='id child'>child</span><span class='period'>.</span><span class='id create'>create</span> <span class='rbrace'>}</span>
90
- <span class='kw'>return</span> <span class='lparen'>(</span><span class='id created'>created</span><span class='period'>.</span><span class='id size'>size</span> <span class='op'>==</span> <span class='id children'>children</span><span class='period'>.</span><span class='id size'>size</span><span class='rparen'>)</span>
91
- <span class='kw'>end</span>
92
-
93
- <span class='kw'>def</span> <span class='id destroy_children'>destroy_children</span>
94
- <span class='id destroyed'>destroyed</span> <span class='op'>=</span> <span class='id children'>children</span><span class='period'>.</span><span class='id reverse'>reverse</span><span class='period'>.</span><span class='id select'>select</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id child'>child</span><span class='op'>|</span> <span class='id child'>child</span><span class='period'>.</span><span class='id destroy'>destroy</span> <span class='rbrace'>}</span>
95
- <span class='kw'>return</span> <span class='lparen'>(</span><span class='id destroyed'>destroyed</span><span class='period'>.</span><span class='id size'>size</span> <span class='op'>==</span> <span class='id children'>children</span><span class='period'>.</span><span class='id size'>size</span><span class='rparen'>)</span>
96
- <span class='kw'>end</span>
97
-
98
- <span class='kw'>def</span> <span class='id execute_generators'>execute_generators</span>
99
- <span class='id generators'>generators</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id generator'>generator</span><span class='op'>|</span>
100
- <span class='id generator'>generator</span><span class='period'>.</span><span class='id execute'>execute</span>
101
- <span class='kw'>end</span>
102
- <span class='kw'>end</span>
103
-
104
- <span class='kw'>def</span> <span class='id unexecute_generators'>unexecute_generators</span>
105
- <span class='id generators'>generators</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id generator'>generator</span><span class='op'>|</span>
106
- <span class='id generator'>generator</span><span class='period'>.</span><span class='id unexecute'>unexecute</span>
107
- <span class='kw'>end</span>
108
- <span class='kw'>end</span>
109
-
110
- <span class='kw'>end</span></pre>
111
-
112
- <p>end</p>
113
- </div></div>
114
-
115
- <div id="footer">
116
- Generated on Wed Dec 22 11:58:32 2010 by
117
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
118
- 0.6.3 (ruby-1.9.2).
119
- </div>
120
-
121
- </body>
122
- </html>