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.param.html DELETED
@@ -1,491 +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: param</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: param</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'># The abstract base class for all Executable parameters.
51
- </span> <span class='comment'>#
52
- </span> <span class='comment'># This class provides a variety of template methods and general
53
- </span> <span class='comment'># functionality to the different executable parameter types.
54
- </span> <span class='comment'>#
55
- </span> <span class='comment'># Many of these parameter attributes are exposed to Sprout::Executable
56
- </span> <span class='comment'># concrete classes as the options hash like:
57
- </span> <span class='comment'>#
58
- </span> <span class='comment'># class Foo
59
- </span> <span class='comment'># include Sprout::Executable
60
- </span> <span class='comment'>#
61
- </span> <span class='comment'># add_param :name, String, :hidden_name =&gt; true
62
- </span> <span class='comment'># end
63
- </span> <span class='comment'>#
64
- </span> <span class='comment'># @see Sprout::Executable::Boolean
65
- </span> <span class='comment'># @see Sprout::Executable::FileParam
66
- </span> <span class='comment'># @see Sprout::Executable::Files
67
- </span> <span class='comment'># @see Sprout::Executable::Number
68
- </span> <span class='comment'># @see Sprout::Executable::ParameterFactory
69
- </span> <span class='comment'># @see Sprout::Executable::Path
70
- </span> <span class='comment'># @see Sprout::Executable::Paths
71
- </span> <span class='comment'># @see Sprout::Executable::StringParam
72
- </span> <span class='comment'># @see Sprout::Executable::Strings
73
- </span> <span class='comment'># @see Sprout::Executable::Url
74
- </span> <span class='comment'># @see Sprout::Executable::Urls
75
- </span> <span class='comment'>#
76
- </span> <span class='kw'>class</span> <span class='const'>Param</span>
77
-
78
- <span class='comment'>##
79
- </span> <span class='comment'># Default value for the delimiter that will
80
- </span> <span class='comment'># separate parameter names from their values.
81
- </span> <span class='const'>DEFAULT_DELIMITER</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>=</span><span class='tstring_end'>'</span></span>
82
-
83
- <span class='comment'>##
84
- </span> <span class='comment'># Defaut TYPE assumed for parameters when
85
- </span> <span class='comment'># creating documentation for the OptionParser.
86
- </span> <span class='const'>DEFAULT_OPTION_PARSER_TYPE_NAME</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>STRING</span><span class='tstring_end'>'</span></span>
87
-
88
- <span class='comment'>##
89
- </span> <span class='comment'># Default value for the parameter prefix.
90
- </span> <span class='comment'># Should usually be pulled from the
91
- </span> <span class='comment'># +belongs_to+ Sprout::Executable.
92
- </span> <span class='const'>DEFAULT_PREFIX</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>--</span><span class='tstring_end'>'</span></span>
93
-
94
- <span class='comment'>##
95
- </span> <span class='comment'># Default prefix for truncated parameters.
96
- </span> <span class='comment'># Should usually be pulled from the
97
- </span> <span class='comment'># +belongs_to+ Sprout::Executable.
98
- </span> <span class='const'>DEFAULT_SHORT_PREFIX</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>-</span><span class='tstring_end'>'</span></span>
99
-
100
- <span class='comment'>##
101
- </span> <span class='comment'># The Sprout::Executable that this parameter
102
- </span> <span class='comment'># instance belongs to.
103
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:belongs_to</span>
104
-
105
- <span class='comment'>##
106
- </span> <span class='comment'># Executable::Params join their name/value pair with an
107
- </span> <span class='comment'># equals sign by default, this can be modified
108
- </span> <span class='comment'># To a space or whatever you wish.
109
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:delimiter</span>
110
-
111
- <span class='comment'>##
112
- </span> <span class='comment'># The String description that will be used for
113
- </span> <span class='comment'># RDoc documentation and user help.
114
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:description</span>
115
-
116
- <span class='comment'>##
117
- </span> <span class='comment'># Boolean value that hides the name parameter
118
- </span> <span class='comment'># from the shell execution.
119
- </span> <span class='comment'>#
120
- </span> <span class='comment'># add_param :name, String, :hidden_name =&gt; true
121
- </span> <span class='comment'>#
122
- </span> <span class='comment'># Without this option, the above parameter would
123
- </span> <span class='comment'># serialize to the process like:
124
- </span> <span class='comment'>#
125
- </span> <span class='comment'># foo --name=Value
126
- </span> <span class='comment'>#
127
- </span> <span class='comment'># But with this option, the above parameter would
128
- </span> <span class='comment'># serialize to the process like:
129
- </span> <span class='comment'>#
130
- </span> <span class='comment'># foo Value
131
- </span> <span class='comment'>#
132
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:hidden_name</span>
133
-
134
- <span class='comment'>##
135
- </span> <span class='comment'># Boolean value that hides the value parameter
136
- </span> <span class='comment'># from the shell execution.
137
- </span> <span class='comment'>#
138
- </span> <span class='comment'># add_param :visible, Boolean, :hidden_value =&gt; true
139
- </span> <span class='comment'>#
140
- </span> <span class='comment'># Without this option, the above parameter would
141
- </span> <span class='comment'># serialize to the process like:
142
- </span> <span class='comment'>#
143
- </span> <span class='comment'># foo --visible=true
144
- </span> <span class='comment'>#
145
- </span> <span class='comment'># But with this option, the above parameter would
146
- </span> <span class='comment'># serialize to the process like:
147
- </span> <span class='comment'>#
148
- </span> <span class='comment'># foo --visible
149
- </span> <span class='comment'>#
150
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:hidden_value</span>
151
-
152
- <span class='comment'>##
153
- </span> <span class='comment'># The String (or Symbol) name of the parameter.
154
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:name</span>
155
-
156
- <span class='comment'>##
157
- </span> <span class='comment'># The String prefix that should be in front of each
158
- </span> <span class='comment'># command line parameter.
159
- </span> <span class='comment'>#
160
- </span> <span class='comment'># If no value is set for this option, the
161
- </span> <span class='comment'># DEFAULT_PREFIX (--) will be used for regular parameters,
162
- </span> <span class='comment'># and the DEFAULT_SHORT_PREFIX (-) will be used for short
163
- </span> <span class='comment'># parameters.
164
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:prefix</span>
165
-
166
- <span class='comment'>##
167
- </span> <span class='comment'># A Symbol that refers to a custom attribute reader
168
- </span> <span class='comment'># that is available to instance methods on the
169
- </span> <span class='comment'># Sprout::Executable that uses it.
170
- </span> <span class='comment'>#
171
- </span> <span class='comment'># add_param :visible, Boolean, :reader =&gt; :get_visible
172
- </span> <span class='comment'>#
173
- </span> <span class='comment'># def get_visible
174
- </span> <span class='comment'># return @visible
175
- </span> <span class='comment'># end
176
- </span> <span class='comment'>#
177
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:reader</span>
178
-
179
- <span class='comment'>##
180
- </span> <span class='comment'># Boolean value that will cause a Sprout::Errors::UsageError
181
- </span> <span class='comment'># if the executable is invoked without this parameter first
182
- </span> <span class='comment'># being set.
183
- </span> <span class='comment'>#
184
- </span> <span class='comment'># add_param :visible, Boolean :required =&gt; true
185
- </span> <span class='comment'>#
186
- </span> <span class='comment'># Default false
187
- </span> <span class='comment'>#
188
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:required</span>
189
-
190
- <span class='comment'>##
191
- </span> <span class='comment'># An optional Proc that should be called when this parameter
192
- </span> <span class='comment'># is serialized to shell output. The Proc should return a
193
- </span> <span class='comment'># String value that makes sense to the underlying process.
194
- </span> <span class='comment'>#
195
- </span> <span class='comment'># add_param :visible, Boolean, :to_shell_proc =&gt; Proc.new {|p| &quot;---result&quot; }
196
- </span> <span class='comment'>#
197
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:to_shell_proc</span>
198
-
199
- <span class='comment'>##
200
- </span> <span class='comment'># The data type of the parameter, used to generate more appropriate
201
- </span> <span class='comment'># RDoc content for the concrete Sprout::Executable.
202
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:type</span>
203
-
204
- <span class='comment'>##
205
- </span> <span class='comment'># The value that was assigned to this parameter when the
206
- </span> <span class='comment'># concrete Sprout::Executable was instantiated and configured.
207
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:value</span>
208
-
209
- <span class='comment'>##
210
- </span> <span class='comment'># A Symbol that refers to a custom attribute writer
211
- </span> <span class='comment'># that is available to instance methods on the
212
- </span> <span class='comment'># Sprout::Executable that uses it.
213
- </span> <span class='comment'>#
214
- </span> <span class='comment'># add_param :visible, Boolean, :writer =&gt; :set_visible
215
- </span> <span class='comment'>#
216
- </span> <span class='comment'># def set_visible=(vis)
217
- </span> <span class='comment'># @visible = vis
218
- </span> <span class='comment'># end
219
- </span> <span class='comment'>#
220
- </span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:writer</span>
221
-
222
- <span class='comment'>##
223
- </span> <span class='comment'># Set the file_expression (blob) to append to each path
224
- </span> <span class='comment'># in order to build the prerequisites FileList.
225
- </span> <span class='comment'>#
226
- </span> <span class='comment'># Defaults to the parent Executable.default_file_expression
227
- </span> <span class='comment'>#
228
- </span> <span class='comment'># TODO: We should add support for file_expressionS
229
- </span> <span class='comment'># since these are really just blobs that are sent
230
- </span> <span class='comment'># to the FileList[expr] and that interface accepts
231
- </span> <span class='comment'># an array.
232
- </span> <span class='id attr_writer'>attr_writer</span> <span class='symbol'>:file_expression</span>
233
-
234
- <span class='comment'>##
235
- </span> <span class='comment'># Optional String value of the name of this parameter
236
- </span> <span class='comment'># that should be returned to the shell.
237
- </span> <span class='comment'>#
238
- </span> <span class='comment'># By default, this method will infer the name by
239
- </span> <span class='comment'># prepending the +prefix+ and replacing underscores
240
- </span> <span class='comment'># with dashes. For example:
241
- </span> <span class='comment'>#
242
- </span> <span class='comment'># add_param :some_name, String
243
- </span> <span class='comment'>#
244
- </span> <span class='comment'># Would return '--some-name=value' to the shell.
245
- </span> <span class='comment'>#
246
- </span> <span class='comment'># If this option is set, then the provided value
247
- </span> <span class='comment'># will be used rather than inferred.
248
- </span> <span class='comment'>#
249
- </span> <span class='comment'># add_param :some_name, String, :shell_name =&gt; '--OtherName'
250
- </span> <span class='comment'>#
251
- </span> <span class='comment'># Would return '--OtherName=value' when sent to the shell.
252
- </span> <span class='comment'>#
253
- </span> <span class='id attr_writer'>attr_writer</span> <span class='symbol'>:shell_name</span>
254
-
255
- <span class='comment'>##
256
- </span> <span class='comment'># Optional String value that should be used for this
257
- </span> <span class='comment'># parameter's short name. Generally only helpful
258
- </span> <span class='comment'># for Sprout::Executable 's that are going to be exposed
259
- </span> <span class='comment'># to Ruby OptionParser as Ruby applications.
260
- </span> <span class='comment'>#
261
- </span> <span class='comment'># By default, this value will be the first letter
262
- </span> <span class='comment'># of the parameter name, and when multiple parameters
263
- </span> <span class='comment'># share the same first letter, the first one encountered
264
- </span> <span class='comment'># will be used.
265
- </span> <span class='id attr_writer'>attr_writer</span> <span class='symbol'>:short_name</span>
266
- <span class='comment'>##
267
- </span> <span class='comment'># Default constructor for Params, if you create
268
- </span> <span class='comment'># a new concrete type, be sure to call +super()+ in your
269
- </span> <span class='comment'># own constructor.
270
- </span> <span class='kw'>def</span> <span class='id initialize'>initialize</span>
271
- <span class='ivar'>@description</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Default Description</span><span class='tstring_end'>'</span></span>
272
- <span class='ivar'>@hidden_value</span> <span class='op'>=</span> <span class='kw'>false</span>
273
- <span class='ivar'>@hidden_name</span> <span class='op'>=</span> <span class='kw'>false</span>
274
- <span class='ivar'>@delimiter</span> <span class='op'>=</span> <span class='const'>DEFAULT_DELIMITER</span>
275
- <span class='ivar'>@option_parser_type_name</span> <span class='op'>=</span> <span class='const'>DEFAULT_OPTION_PARSER_TYPE_NAME</span>
276
- <span class='kw'>end</span>
277
-
278
- <span class='comment'>##
279
- </span> <span class='comment'># By default, Executable::Params only appear in the shell
280
- </span> <span class='comment'># output when they are not nil
281
- </span> <span class='kw'>def</span> <span class='id visible?'>visible?</span>
282
- <span class='op'>!</span><span class='id value'>value</span><span class='period'>.</span><span class='id nil?'>nil?</span>
283
- <span class='kw'>end</span>
284
-
285
- <span class='comment'>##
286
- </span> <span class='comment'># Returns Boolean value if this parameter is required.
287
- </span> <span class='kw'>def</span> <span class='id required?'>required?</span>
288
- <span class='lparen'>(</span><span class='id required'>required</span> <span class='op'>==</span> <span class='kw'>true</span><span class='rparen'>)</span>
289
- <span class='kw'>end</span>
290
-
291
- <span class='comment'>##
292
- </span> <span class='comment'># Ensure this parameter is in a valid state, raise a Sprout::Errors::MissingArgumentError
293
- </span> <span class='comment'># if it is not.
294
- </span> <span class='kw'>def</span> <span class='id validate'>validate</span>
295
- <span class='kw'>if</span><span class='lparen'>(</span><span class='id required?'>required?</span> <span class='op'>&amp;&amp;</span> <span class='id value'>value</span><span class='period'>.</span><span class='id nil?'>nil?</span><span class='rparen'>)</span>
296
- <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'>MissingArgumentError</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='embexpr_beg'>#{</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> is required and must not be nil</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span>
297
- <span class='kw'>end</span>
298
- <span class='kw'>end</span>
299
-
300
- <span class='comment'>##
301
- </span> <span class='comment'># Set the default value of the parameter.
302
- </span> <span class='comment'># Using this option will ensure that required parameters
303
- </span> <span class='comment'># are not nil, and default values can be overridden on
304
- </span> <span class='comment'># instances.
305
- </span> <span class='comment'>#
306
- </span> <span class='comment'># add_param :name, String, :default =&gt; 'Bob'
307
- </span> <span class='comment'>#
308
- </span> <span class='kw'>def</span> <span class='id default='>default=</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span>
309
- <span class='kw'>self</span><span class='period'>.</span><span class='id value'>value</span> <span class='op'>=</span> <span class='id value'>value</span>
310
- <span class='ivar'>@default</span> <span class='op'>=</span> <span class='id value'>value</span>
311
- <span class='kw'>end</span>
312
-
313
- <span class='comment'>##
314
- </span> <span class='comment'># Return the default value or nil if none was provided.
315
- </span> <span class='kw'>def</span> <span class='id default'>default</span>
316
- <span class='ivar'>@default</span>
317
- <span class='kw'>end</span>
318
-
319
- <span class='comment'>##
320
- </span> <span class='comment'># Prepare the parameter for execution or delegation, depending
321
- </span> <span class='comment'># on what context we're in.
322
- </span> <span class='kw'>def</span> <span class='id prepare'>prepare</span>
323
- <span class='id prepare_prerequisites'>prepare_prerequisites</span>
324
- <span class='ivar'>@prepared</span> <span class='op'>=</span> <span class='kw'>true</span>
325
- <span class='kw'>end</span>
326
-
327
- <span class='comment'>##
328
- </span> <span class='comment'># Returns true if this parameter has already been prepared.
329
- </span> <span class='kw'>def</span> <span class='id prepared?'>prepared?</span>
330
- <span class='ivar'>@prepared</span>
331
- <span class='kw'>end</span>
332
-
333
- <span class='comment'>##
334
- </span> <span class='comment'># Should the param name be hidden from the shell?
335
- </span> <span class='comment'># Used for params like 'input' on mxmlc
336
- </span> <span class='kw'>def</span> <span class='id hidden_name?'>hidden_name?</span>
337
- <span class='ivar'>@hidden_name</span>
338
- <span class='kw'>end</span>
339
-
340
- <span class='comment'>##
341
- </span> <span class='comment'># Should the param value be hidden from the shell?
342
- </span> <span class='comment'># Usually used for Boolean toggles like '-debug'
343
- </span> <span class='kw'>def</span> <span class='id hidden_value?'>hidden_value?</span>
344
- <span class='ivar'>@hidden_value</span>
345
- <span class='kw'>end</span>
346
-
347
- <span class='comment'>##
348
- </span> <span class='comment'># Leading character for each parameter
349
- </span> <span class='comment'># Can sometimes be an empty string,
350
- </span> <span class='comment'># other times it's a double dash '--'
351
- </span> <span class='comment'># but usually it's just a single dash '-'
352
- </span> <span class='kw'>def</span> <span class='id prefix'>prefix</span>
353
- <span class='ivar'>@prefix</span> <span class='op'>||=</span> <span class='lparen'>(</span><span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id nil?'>nil?</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='const'>DEFAULT_PREFIX</span> <span class='op'>:</span> <span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id default_prefix'>default_prefix</span>
354
- <span class='kw'>end</span>
355
-
356
- <span class='kw'>def</span> <span class='id short_prefix'>short_prefix</span>
357
- <span class='ivar'>@short_prefix</span> <span class='op'>||=</span> <span class='lparen'>(</span><span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id nil?'>nil?</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='const'>DEFAULT_SHORT_PREFIX</span> <span class='op'>:</span> <span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id default_short_prefix'>default_short_prefix</span>
358
- <span class='kw'>end</span>
359
-
360
- <span class='comment'>##
361
- </span> <span class='comment'># How this parameter is provided to the
362
- </span> <span class='comment'># Ruby OptionParser when being exposed as a Ruby Executable.
363
- </span> <span class='kw'>def</span> <span class='id option_parser_declaration'>option_parser_declaration</span>
364
- <span class='id declaration'>declaration</span> <span class='op'>=</span> <span class='lbracket'>[</span> <span class='id prefix'>prefix</span><span class='comma'>,</span> <span class='id option_parser_name'>option_parser_name</span> <span class='rbracket'>]</span>
365
- <span class='comment'># TODO: Need to figure out how to support hidden name inputs...
366
- </span> <span class='comment'>#if(hidden_name?)
367
- </span> <span class='comment'>#declaration = [option_parser_type_output]
368
- </span> <span class='comment'>#
369
- </span> <span class='kw'>if</span><span class='lparen'>(</span><span class='op'>!</span><span class='id hidden_value?'>hidden_value?</span><span class='rparen'>)</span>
370
- <span class='id declaration'>declaration</span> <span class='op'>&lt;&lt;</span> <span class='id delimiter'>delimiter</span> <span class='op'>&lt;&lt;</span> <span class='id option_parser_type_output'>option_parser_type_output</span>
371
- <span class='kw'>end</span>
372
- <span class='id declaration'>declaration</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_end'>'</span></span><span class='rparen'>)</span>
373
- <span class='kw'>end</span>
374
-
375
- <span class='comment'>##
376
- </span> <span class='comment'># The Ruby OptionParser short name with prefix.
377
- </span> <span class='kw'>def</span> <span class='id option_parser_short_name'>option_parser_short_name</span>
378
- <span class='lbracket'>[</span> <span class='id short_prefix'>short_prefix</span><span class='comma'>,</span> <span class='id short_name'>short_name</span> <span class='rbracket'>]</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_end'>'</span></span><span class='rparen'>)</span>
379
- <span class='kw'>end</span>
380
-
381
- <span class='comment'>##
382
- </span> <span class='comment'># The short name for this parameter.
383
- </span> <span class='comment'># If it's not explicitly, the first
384
- </span> <span class='comment'># character of the parameter name will
385
- </span> <span class='comment'># be used. When multiple parameters have
386
- </span> <span class='comment'># the same first character, the first one
387
- </span> <span class='comment'># encountered will win.
388
- </span> <span class='kw'>def</span> <span class='id short_name'>short_name</span>
389
- <span class='ivar'>@short_name</span> <span class='op'>||=</span> <span class='id name'>name</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='period'>.</span><span class='id split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span><span class='period'>.</span><span class='id shift'>shift</span>
390
- <span class='kw'>end</span>
391
-
392
- <span class='comment'>##
393
- </span> <span class='comment'># The String representation of the value in
394
- </span> <span class='comment'># a format that is appropriate for the terminal.
395
- </span> <span class='comment'>#
396
- </span> <span class='comment'># For certain types of parameters, like File,
397
- </span> <span class='comment'># spaces may be escaped on some platforms.
398
- </span> <span class='comment'>#
399
- </span> <span class='kw'>def</span> <span class='id shell_value'>shell_value</span>
400
- <span class='id value'>value</span><span class='period'>.</span><span class='id to_s'>to_s</span>
401
- <span class='kw'>end</span>
402
-
403
- <span class='kw'>def</span> <span class='id file_expression'>file_expression</span>
404
- <span class='ivar'>@file_expression</span> <span class='op'>||=</span> <span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id default_file_expression'>default_file_expression</span>
405
- <span class='kw'>end</span>
406
-
407
- <span class='kw'>def</span> <span class='id shell_name'>shell_name</span>
408
- <span class='ivar'>@shell_name</span> <span class='op'>||=</span> <span class='id prefix'>prefix</span> <span class='op'>+</span> <span class='id name'>name</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='period'>.</span><span class='id split'>split</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='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>
409
- <span class='kw'>end</span>
410
-
411
- <span class='comment'>##
412
- </span> <span class='comment'># Prepare and serialize this parameter to a string
413
- </span> <span class='comment'># that is appropriate for shell execution on the
414
- </span> <span class='comment'># current platform.
415
- </span> <span class='comment'>#
416
- </span> <span class='comment'># Calling +to_shell+ will first trigger a call to
417
- </span> <span class='comment'># the +prepare+ template method unless +prepared?+ returns +true+.
418
- </span> <span class='kw'>def</span> <span class='id to_shell'>to_shell</span>
419
- <span class='id prepare'>prepare</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id prepared?'>prepared?</span>
420
- <span class='id validate'>validate</span>
421
- <span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span> <span class='kw'>if</span> <span class='op'>!</span><span class='id visible?'>visible?</span>
422
- <span class='kw'>return</span> <span class='ivar'>@to_shell_proc</span><span class='period'>.</span><span class='id call'>call</span><span class='lparen'>(</span><span class='kw'>self</span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='ivar'>@to_shell_proc</span><span class='period'>.</span><span class='id nil?'>nil?</span>
423
- <span class='kw'>return</span> <span class='id shell_value'>shell_value</span> <span class='kw'>if</span> <span class='id hidden_name?'>hidden_name?</span>
424
- <span class='kw'>return</span> <span class='id shell_name'>shell_name</span> <span class='kw'>if</span> <span class='id hidden_value?'>hidden_value?</span>
425
- <span class='kw'>return</span> <span class='lbracket'>[</span><span class='id shell_name'>shell_name</span><span class='comma'>,</span> <span class='id delimiter'>delimiter</span><span class='comma'>,</span> <span class='id shell_value'>shell_value</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id join'>join</span>
426
- <span class='kw'>end</span>
427
-
428
- <span class='comment'># Create a string that can be turned into a file
429
- </span> <span class='comment'># that rdoc can parse to describe the customized
430
- </span> <span class='comment'># or generated task using param name, type and
431
- </span> <span class='comment'># description
432
- </span> <span class='kw'>def</span> <span class='id to_rdoc'>to_rdoc</span>
433
- <span class='id result'>result</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span>
434
- <span class='id parts'>parts</span> <span class='op'>=</span> <span class='id description'>description</span><span class='period'>.</span><span class='id split'>split</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span> <span class='kw'>unless</span> <span class='id description'>description</span><span class='period'>.</span><span class='id nil?'>nil?</span>
435
- <span class='id result'>result</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 parts'>parts</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>\n# </span><span class='tstring_end'>&quot;</span></span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_content'>\n</span><span class='tstring_end'>&quot;</span></span> <span class='kw'>unless</span> <span class='id description'>description</span><span class='period'>.</span><span class='id nil?'>nil?</span>
436
- <span class='id result'>result</span> <span class='op'>&lt;&lt;</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>def </span><span class='embexpr_beg'>#{</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'>=(</span><span class='embexpr_beg'>#{</span><span class='id type'>type</span><span class='rbrace'>}</span><span class='tstring_content'>)\n @</span><span class='embexpr_beg'>#{</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> = </span><span class='embexpr_beg'>#{</span><span class='id type'>type</span><span class='rbrace'>}</span><span class='tstring_content'>\nend\n\n</span><span class='tstring_end'>&quot;</span></span>
437
- <span class='kw'>return</span> <span class='id result'>result</span>
438
- <span class='kw'>end</span>
439
-
440
- <span class='id protected'>protected</span>
441
-
442
- <span class='kw'>def</span> <span class='id option_parser_name'>option_parser_name</span>
443
- <span class='id name'>name</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='period'>.</span><span class='id gsub'>gsub</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='comma'>,</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>-</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
444
- <span class='kw'>end</span>
445
-
446
- <span class='kw'>def</span> <span class='id option_parser_type_name'>option_parser_type_name</span>
447
- <span class='ivar'>@option_parser_type_name</span>
448
- <span class='kw'>end</span>
449
-
450
- <span class='kw'>def</span> <span class='id option_parser_type_output'>option_parser_type_output</span>
451
- <span class='id type'>type</span> <span class='op'>=</span> <span class='id hidden_value?'>hidden_value?</span> <span class='op'>?</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span> <span class='op'>:</span> <span class='id option_parser_type_name'>option_parser_type_name</span>
452
- <span class='id required?'>required?</span> <span class='op'>?</span> <span class='id type'>type</span> <span class='op'>:</span> <span class='tstring'><span class='tstring_beg'>&quot;</span><span class='tstring_content'>[</span><span class='embexpr_beg'>#{</span><span class='id type'>type</span><span class='rbrace'>}</span><span class='tstring_content'>]</span><span class='tstring_end'>&quot;</span></span>
453
- <span class='kw'>end</span>
454
-
455
- <span class='kw'>def</span> <span class='id prepare_prerequisites'>prepare_prerequisites</span>
456
- <span class='kw'>end</span>
457
-
458
- <span class='comment'>##
459
- </span> <span class='comment'># Clean the provided path using the current Sprout::System.
460
- </span> <span class='kw'>def</span> <span class='id clean_path'>clean_path</span> <span class='id path'>path</span>
461
- <span class='const'>Sprout</span><span class='op'>::</span><span class='const'>System</span><span class='period'>.</span><span class='id create'>create</span><span class='period'>.</span><span class='id clean_path'>clean_path</span> <span class='id path'>path</span>
462
- <span class='kw'>end</span>
463
-
464
- <span class='comment'>##
465
- </span> <span class='comment'># Return true if the Sprout::Executable
466
- </span> <span class='comment'># that this parameter +belongs_to+ has an +output+
467
- </span> <span class='comment'># method (or parameter), and if the provided +file+
468
- </span> <span class='comment'># matches the value of that parameter.
469
- </span> <span class='comment'>#
470
- </span> <span class='comment'># This method (convention) is used to avoid creating circular
471
- </span> <span class='comment'># prerequisites in Rake. For most types of File parameters
472
- </span> <span class='comment'># we want to make them into prerequisites, but not if the
473
- </span> <span class='comment'># File is the one being created by the outer Sprout::Executable.
474
- </span> <span class='kw'>def</span> <span class='id file_is_output?'>file_is_output?</span> <span class='id file'>file</span>
475
- <span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id respond_to?'>respond_to?</span><span class='lparen'>(</span><span class='symbol'>:output</span><span class='rparen'>)</span> <span class='op'>&amp;&amp;</span> <span class='id belongs_to'>belongs_to</span><span class='period'>.</span><span class='id output'>output</span><span class='period'>.</span><span class='id to_s'>to_s</span> <span class='op'>==</span> <span class='id file'>file</span>
476
- <span class='kw'>end</span>
477
-
478
- <span class='kw'>end</span>
479
- <span class='kw'>end</span></pre>
480
-
481
- <p>end</p>
482
- </div></div>
483
-
484
- <div id="footer">
485
- Generated on Wed Dec 22 11:58:31 2010 by
486
- <a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
487
- 0.6.3 (ruby-1.9.2).
488
- </div>
489
-
490
- </body>
491
- </html>