sprout 1.0.32.pre → 1.0.35.pre
Sign up to get free protection for your applications and to get access to all the features.
Potentially problematic release.
This version of sprout might be problematic. Click here for more details.
- data/Gemfile +2 -1
- data/Gemfile.lock +4 -2
- data/README.textile +12 -13
- data/VERSION +1 -0
- data/doc/Dir.html +288 -0
- data/doc/Rake/Task.html +184 -0
- data/doc/Sprout.html +144 -0
- data/doc/Sprout/ArchiveUnpacker.html +1246 -0
- data/doc/Sprout/Base.html +126 -0
- data/doc/Sprout/Base/ClassMethods.html +434 -0
- data/doc/Sprout/Concern.html +353 -0
- data/doc/Sprout/Daemon.html +166 -0
- data/doc/Sprout/Daemon/ClassMethods.html +244 -0
- data/doc/Sprout/Daemon/InstanceMethods.html +601 -0
- data/doc/Sprout/Errors.html +101 -0
- data/doc/Sprout/Errors/ArchiveUnpackerError.html +125 -0
- data/doc/Sprout/Errors/DestinationExistsError.html +133 -0
- data/doc/Sprout/Errors/DuplicateMemberError.html +132 -0
- data/doc/Sprout/Errors/ExecutableError.html +125 -0
- data/doc/Sprout/Errors/ExecutableRegistrationError.html +132 -0
- data/doc/Sprout/Errors/ExecutionError.html +121 -0
- data/doc/Sprout/Errors/GeneratorError.html +125 -0
- data/doc/Sprout/Errors/InvalidArgumentError.html +132 -0
- data/doc/Sprout/Errors/LoadError.html +121 -0
- data/doc/Sprout/Errors/MissingArgumentError.html +132 -0
- data/doc/Sprout/Errors/MissingExecutableError.html +132 -0
- data/doc/Sprout/Errors/MissingGeneratorError.html +132 -0
- data/doc/Sprout/Errors/MissingTemplateError.html +132 -0
- data/doc/Sprout/Errors/ProcessRunnerError.html +121 -0
- data/doc/Sprout/Errors/RemoteFileLoaderError.html +110 -0
- data/doc/Sprout/Errors/SproutError.html +114 -0
- data/doc/Sprout/Errors/UnknownArchiveType.html +122 -0
- data/doc/Sprout/Errors/UsageError.html +121 -0
- data/doc/Sprout/Errors/ValidationError.html +121 -0
- data/doc/Sprout/Errors/VersionRequirementNotMetError.html +121 -0
- data/doc/Sprout/Executable.html +173 -0
- data/doc/Sprout/Executable/Boolean.html +483 -0
- data/doc/Sprout/Executable/ClassMethods.html +417 -0
- data/doc/Sprout/Executable/CollectionParam.html +483 -0
- data/doc/Sprout/Executable/FileParam.html +484 -0
- data/doc/Sprout/Executable/Files.html +292 -0
- data/doc/Sprout/Executable/InstanceMethods.html +2006 -0
- data/doc/Sprout/Executable/Number.html +141 -0
- data/doc/Sprout/Executable/Param.html +2818 -0
- data/doc/Sprout/Executable/ParameterFactory.html +232 -0
- data/doc/Sprout/Executable/Path.html +223 -0
- data/doc/Sprout/Executable/Paths.html +253 -0
- data/doc/Sprout/Executable/StringParam.html +213 -0
- data/doc/Sprout/Executable/Strings.html +167 -0
- data/doc/Sprout/Executable/Url.html +160 -0
- data/doc/Sprout/Executable/Urls.html +170 -0
- data/doc/Sprout/FileTarget.html +1109 -0
- data/doc/Sprout/Generator.html +689 -0
- data/doc/Sprout/Generator/Base.html +1626 -0
- data/doc/Sprout/Generator/Command.html +690 -0
- data/doc/Sprout/Generator/DirectoryManifest.html +476 -0
- data/doc/Sprout/Generator/FileManifest.html +572 -0
- data/doc/Sprout/Generator/Manifest.html +377 -0
- data/doc/Sprout/Generator/TemplateManifest.html +196 -0
- data/doc/Sprout/GeneratorGenerator.html +1018 -0
- data/doc/Sprout/Library.html +1141 -0
- data/doc/Sprout/LibraryGenerator.html +309 -0
- data/doc/Sprout/Log.html +496 -0
- data/doc/Sprout/MXMLC.html +6373 -0
- data/doc/Sprout/Platform.html +714 -0
- data/doc/Sprout/ProcessRunner.html +1352 -0
- data/doc/Sprout/ProgressBar.html +376 -0
- data/doc/Sprout/ProgressBarImpl.html +2119 -0
- data/doc/Sprout/ProgressBarManager.html +434 -0
- data/doc/Sprout/ProgressBarOutputStream.html +416 -0
- data/doc/Sprout/RDocParser.html +211 -0
- data/doc/Sprout/RemoteFileLoader.html +172 -0
- data/doc/Sprout/RemoteFileTarget.html +679 -0
- data/doc/Sprout/ReversedProgressBar.html +194 -0
- data/doc/Sprout/RubyFeature.html +155 -0
- data/doc/Sprout/RubyFeature/ClassMethods.html +1065 -0
- data/doc/Sprout/RubyGenerator.html +764 -0
- data/doc/Sprout/Specification.html +767 -0
- data/doc/Sprout/System.html +191 -0
- data/doc/Sprout/System/BaseSystem.html +1455 -0
- data/doc/Sprout/System/JavaSystem.html +122 -0
- data/doc/Sprout/System/OSXSystem.html +335 -0
- data/doc/Sprout/System/ThreadMock.html +193 -0
- data/doc/Sprout/System/UnixSystem.html +584 -0
- data/doc/Sprout/System/VistaSystem.html +251 -0
- data/doc/Sprout/System/WinNixSystem.html +325 -0
- data/doc/Sprout/System/WinSystem.html +571 -0
- data/doc/Sprout/ToolGenerator.html +931 -0
- data/doc/Sprout/VERSION.html +128 -0
- data/doc/SproutTestCase.html +1412 -0
- data/doc/String.html +286 -0
- data/doc/_index.html +1035 -0
- data/doc/class_list.html +36 -0
- data/doc/css/common.css +1 -0
- data/doc/css/full_list.css +53 -0
- data/doc/css/style.css +310 -0
- data/doc/file.README.html +96 -0
- data/doc/file.archive_unpacker.html +288 -0
- data/doc/file.base.html +208 -0
- data/doc/file.base_system.html +278 -0
- data/doc/file.boolean.html +135 -0
- data/doc/file.collection_param.html +139 -0
- data/doc/file.command.html +126 -0
- data/doc/file.concern.html +136 -0
- data/doc/file.daemon.html +309 -0
- data/doc/file.dir.html +76 -0
- data/doc/file.directory_manifest.html +122 -0
- data/doc/file.errors.html +147 -0
- data/doc/file.executable.html +638 -0
- data/doc/file.file_manifest.html +109 -0
- data/doc/file.file_param.html +120 -0
- data/doc/file.file_target.html +140 -0
- data/doc/file.files.html +85 -0
- data/doc/file.generator.html +296 -0
- data/doc/file.generator_class.html +72 -0
- data/doc/file.generator_generator.html +137 -0
- data/doc/file.generator_test.html +92 -0
- data/doc/file.generator_test_helper.html +67 -0
- data/doc/file.java_system.html +62 -0
- data/doc/file.library.html +291 -0
- data/doc/file.library_generator.html +74 -0
- data/doc/file.log.html +100 -0
- data/doc/file.manifest.html +67 -0
- data/doc/file.mxmlc.html +740 -0
- data/doc/file.number.html +67 -0
- data/doc/file.osx_system.html +79 -0
- data/doc/file.param.html +491 -0
- data/doc/file.parameter_factory.html +119 -0
- data/doc/file.path.html +81 -0
- data/doc/file.paths.html +80 -0
- data/doc/file.platform.html +124 -0
- data/doc/file.process_runner.html +224 -0
- data/doc/file.progress_bar.html +390 -0
- data/doc/file.rdoc_parser.html +145 -0
- data/doc/file.remote_file_loader.html +117 -0
- data/doc/file.remote_file_target.html +176 -0
- data/doc/file.ruby_base.html +64 -0
- data/doc/file.ruby_feature.html +244 -0
- data/doc/file.ruby_generator.html +118 -0
- data/doc/file.ruby_input.html +62 -0
- data/doc/file.ruby_test_case.html +78 -0
- data/doc/file.ruby_test_helper.html +61 -0
- data/doc/file.specification.html +248 -0
- data/doc/file.sprout.html +64 -0
- data/doc/file.sprout_test_case.html +280 -0
- data/doc/file.string.html +72 -0
- data/doc/file.string_param.html +76 -0
- data/doc/file.strings.html +71 -0
- data/doc/file.system.html +86 -0
- data/doc/file.template_manifest.html +67 -0
- data/doc/file.tool.html +92 -0
- data/doc/file.tool_generator.html +90 -0
- data/doc/file.unix_system.html +128 -0
- data/doc/file.url.html +71 -0
- data/doc/file.urls.html +70 -0
- data/doc/file.version.html +71 -0
- data/doc/file.vista_system.html +69 -0
- data/doc/file.win_nix_system.html +88 -0
- data/doc/file.win_system.html +129 -0
- data/doc/file_list.html +230 -0
- data/doc/frames.html +13 -0
- data/doc/index.html +96 -0
- data/doc/js/app.js +202 -0
- data/doc/js/full_list.js +149 -0
- data/doc/js/jquery.js +154 -0
- data/doc/method_list.html +3355 -0
- data/doc/top-level-namespace.html +192 -0
- data/lib/sprout/archive_unpacker.rb +203 -137
- data/lib/sprout/base.rb +38 -11
- data/lib/sprout/concern.rb +51 -0
- data/lib/sprout/daemon.rb +256 -0
- data/lib/sprout/executable.rb +40 -11
- data/lib/sprout/executable/boolean.rb +47 -1
- data/lib/sprout/executable/collection_param.rb +33 -1
- data/lib/sprout/executable/file_param.rb +16 -3
- data/lib/sprout/executable/files.rb +5 -0
- data/lib/sprout/executable/number.rb +5 -1
- data/lib/sprout/executable/param.rb +232 -16
- data/lib/sprout/executable/parameter_factory.rb +39 -1
- data/lib/sprout/executable/path.rb +7 -1
- data/lib/sprout/executable/paths.rb +6 -1
- data/lib/sprout/executable/string_param.rb +8 -1
- data/lib/sprout/executable/strings.rb +7 -1
- data/lib/sprout/executable/url.rb +8 -1
- data/lib/sprout/executable/urls.rb +7 -1
- data/lib/sprout/file_target.rb +11 -11
- data/lib/sprout/generator.rb +244 -0
- data/lib/sprout/generator/base.rb +0 -94
- data/lib/sprout/generators/generator/generator_generator.rb +35 -1
- data/lib/sprout/generators/generator/templates/generator_class.rb +3 -3
- data/lib/sprout/library.rb +75 -0
- data/lib/sprout/log.rb +11 -12
- data/lib/sprout/process_runner.rb +29 -9
- data/lib/sprout/remote_file_target.rb +20 -9
- data/lib/sprout/system/base_system.rb +11 -3
- data/lib/sprout/test/sprout_test_case.rb +1 -0
- data/lib/sprout/version.rb +7 -11
- data/rakefile.rb +7 -12
- data/script/add_param_handler.rb +43 -0
- data/sprout.gemspec +2 -3
- data/test/fixtures/executable/fdb.rb +764 -0
- data/test/fixtures/executable/flex3sdk_gem/fdb +60 -0
- data/test/fixtures/executable/mxmlc.rb +9 -11
- data/test/unit/daemon_test.rb +61 -0
- data/test/unit/process_runner_test.rb +21 -0
- data/test/unit/remote_file_target_test.rb +45 -11
- data/test/unit/sprout_test_helper.rb +1 -1
- metadata +210 -29
@@ -0,0 +1,67 @@
|
|
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: number</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> »
|
27
|
+
<span class="title">File: number</span>
|
28
|
+
|
29
|
+
|
30
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
31
|
+
</div>
|
32
|
+
|
33
|
+
<div id="search">
|
34
|
+
<a id="class_list_link" href="#">Class List</a>
|
35
|
+
<a id="method_list_link" href="#">Method List</a>
|
36
|
+
<a id ="file_list_link" href="#">File List</a>
|
37
|
+
</div>
|
38
|
+
|
39
|
+
<div class="clear"></div>
|
40
|
+
</div>
|
41
|
+
|
42
|
+
<iframe id="search_frame"></iframe>
|
43
|
+
|
44
|
+
<div id="content"><div id='filecontents'>
|
45
|
+
<p>module Sprout</p>
|
46
|
+
|
47
|
+
<pre class="code"><span class='kw'>module</span> <span class='const'>Executable</span>
|
48
|
+
|
49
|
+
<span class='comment'>##
|
50
|
+
</span> <span class='comment'># Concrete Sprout::Executable::Param object for numeric values.
|
51
|
+
</span> <span class='comment'>#
|
52
|
+
</span> <span class='comment'># @see Sprout::Executable::Param
|
53
|
+
</span> <span class='comment'>#
|
54
|
+
</span> <span class='kw'>class</span> <span class='const'>Number</span> <span class='op'><</span> <span class='const'>Param</span><span class='semicolon'>;</span> <span class='kw'>end</span>
|
55
|
+
<span class='kw'>end</span></pre>
|
56
|
+
|
57
|
+
<p>end</p>
|
58
|
+
</div></div>
|
59
|
+
|
60
|
+
<div id="footer">
|
61
|
+
Generated on Wed Dec 22 11:58:31 2010 by
|
62
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
63
|
+
0.6.3 (ruby-1.9.2).
|
64
|
+
</div>
|
65
|
+
|
66
|
+
</body>
|
67
|
+
</html>
|
@@ -0,0 +1,79 @@
|
|
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: osx_system</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> »
|
27
|
+
<span class="title">File: osx_system</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::System</p>
|
46
|
+
|
47
|
+
<pre class="code"><span class='kw'>class</span> <span class='const'>OSXSystem</span> <span class='op'><</span> <span class='const'>UnixSystem</span>
|
48
|
+
<span class='const'>LIBRARY</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>Library</span><span class='tstring_end'>'</span></span>
|
49
|
+
|
50
|
+
<span class='kw'>def</span> <span class='id library'>library</span>
|
51
|
+
<span class='id lib'>lib</span> <span class='op'>=</span> <span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='id home'>home</span><span class='comma'>,</span> <span class='const'>LIBRARY</span><span class='rparen'>)</span>
|
52
|
+
<span class='kw'>if</span><span class='lparen'>(</span><span class='const'>File</span><span class='period'>.</span><span class='id exists?'>exists?</span><span class='lparen'>(</span><span class='id lib'>lib</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
53
|
+
<span class='kw'>return</span> <span class='id lib'>lib</span>
|
54
|
+
<span class='kw'>else</span>
|
55
|
+
<span class='kw'>return</span> <span class='kw'>super</span>
|
56
|
+
<span class='kw'>end</span>
|
57
|
+
<span class='kw'>end</span>
|
58
|
+
|
59
|
+
<span class='kw'>def</span> <span class='id format_application_name'>format_application_name</span><span class='lparen'>(</span><span class='id name'>name</span><span class='rparen'>)</span>
|
60
|
+
<span class='kw'>return</span> <span class='id name'>name</span><span class='period'>.</span><span class='id capitalize'>capitalize</span>
|
61
|
+
<span class='kw'>end</span>
|
62
|
+
|
63
|
+
<span class='kw'>def</span> <span class='id can_execute?'>can_execute?</span> <span class='id platform'>platform</span>
|
64
|
+
<span class='lbracket'>[</span><span class='symbol'>:mac</span><span class='comma'>,</span> <span class='symbol'>:osx</span><span class='comma'>,</span> <span class='symbol'>:macosx</span><span class='comma'>,</span> <span class='symbol'>:darwin</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id include?'>include?</span><span class='lparen'>(</span><span class='id platform'>platform</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='kw'>super</span>
|
65
|
+
<span class='kw'>end</span>
|
66
|
+
|
67
|
+
<span class='kw'>end</span></pre>
|
68
|
+
|
69
|
+
<p>end</p>
|
70
|
+
</div></div>
|
71
|
+
|
72
|
+
<div id="footer">
|
73
|
+
Generated on Wed Dec 22 11:58:32 2010 by
|
74
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
75
|
+
0.6.3 (ruby-1.9.2).
|
76
|
+
</div>
|
77
|
+
|
78
|
+
</body>
|
79
|
+
</html>
|
data/doc/file.param.html
ADDED
@@ -0,0 +1,491 @@
|
|
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> »
|
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 => 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 => 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 => 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 => :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 => 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 => Proc.new {|p| "---result" }
|
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 => :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 => '--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'>&&</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'>"</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'>"</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 => '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'><<</span> <span class='id delimiter'>delimiter</span> <span class='op'><<</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'>"</span><span class='tstring_content'>\n</span><span class='tstring_end'>"</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'><<</span> <span class='tstring'><span class='tstring_beg'>"</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'>"</span><span class='tstring_content'>\n# </span><span class='tstring_end'>"</span></span><span class='rparen'>)</span><span class='rbrace'>}</span><span class='tstring_content'>\n</span><span class='tstring_end'>"</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'><<</span> <span class='tstring'><span class='tstring_beg'>"</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'>"</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'>"</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'>"</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'>&&</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>
|