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.
- data/Gemfile +1 -1
- data/Gemfile.lock +0 -2
- data/README.textile +1 -1
- data/VERSION +1 -1
- data/lib/sprout/concern.rb +5 -7
- data/lib/sprout/daemon.rb +183 -143
- data/lib/sprout/executable/base.rb +564 -0
- data/lib/sprout/executable.rb +1 -550
- data/lib/sprout/generator/base.rb +2 -3
- data/lib/sprout/generator.rb +2 -1
- data/lib/sprout/generators/ruby/templates/ruby_base.rb +1 -2
- data/lib/sprout/library.rb +3 -3
- data/lib/sprout/output_buffer.rb +35 -0
- data/lib/sprout/process_runner.rb +68 -17
- data/lib/sprout/progress_bar.rb +5 -5
- data/lib/sprout/remote_file_target.rb +1 -1
- data/lib/sprout/system/base_system.rb +3 -3
- data/lib/sprout/system/unix_system.rb +1 -1
- data/lib/sprout/{test/sprout_test_case.rb → test_helper.rb} +214 -14
- data/lib/sprout/version.rb +1 -1
- data/lib/sprout.rb +133 -2
- data/rakefile.rb +2 -0
- data/test/fixtures/examples/echo_inputs.rb +1 -2
- data/test/fixtures/executable/fdb.rb +7 -9
- data/test/fixtures/executable/flex3sdk_gem/fdb +49 -18
- data/test/fixtures/executable/mxmlc.rb +1 -2
- data/test/fixtures/executable/subclass/executable_subclass.rb +0 -1
- data/test/fixtures/executable/subclass/executable_superclass.rb +1 -2
- data/test/fixtures/specification/flex4sdk.rb +35 -24
- data/test/unit/archive_unpacker_test.rb +1 -1
- data/test/unit/boolean_param_test.rb +1 -1
- data/test/unit/daemon_test.rb +35 -3
- data/test/unit/executable_option_parser_test.rb +2 -3
- data/test/unit/executable_param_test.rb +1 -1
- data/test/unit/executable_test.rb +8 -15
- data/test/unit/fake_other_executable.rb +1 -2
- data/test/unit/file_param_test.rb +1 -1
- data/test/unit/file_target_test.rb +1 -1
- data/test/unit/files_param_test.rb +1 -1
- data/test/unit/generator_generator_test.rb +1 -1
- data/test/unit/generator_test.rb +1 -1
- data/test/unit/library_generator_test.rb +1 -1
- data/test/unit/library_test.rb +1 -1
- data/test/unit/osx_system_test.rb +1 -1
- data/test/unit/path_param_test.rb +1 -1
- data/test/unit/paths_param_test.rb +1 -1
- data/test/unit/platform_test.rb +1 -1
- data/test/unit/process_runner_test.rb +1 -1
- data/test/unit/rdoc_parser_test.rb +1 -1
- data/test/unit/remote_file_loader_test.rb +1 -1
- data/test/unit/remote_file_target_test.rb +1 -1
- data/test/unit/ruby_feature_test.rb +1 -1
- data/test/unit/ruby_generator_test.rb +1 -1
- data/test/unit/specification_test.rb +8 -1
- data/test/unit/sprout_test.rb +2 -2
- data/test/unit/string_param_test.rb +1 -1
- data/test/unit/string_test.rb +1 -1
- data/test/unit/strings_param_test.rb +1 -1
- data/test/unit/test_helper.rb +33 -1
- data/test/unit/tool_generator_test.rb +1 -1
- data/test/unit/unix_system_test.rb +1 -1
- data/test/unit/user_test.rb +1 -1
- data/test/unit/vista_system_test.rb +1 -1
- data/test/unit/win_nix_system_test.rb +1 -1
- data/test/unit/win_system_test.rb +1 -1
- data/test-stderr.log +1 -0
- data/test-stdout.log +237 -0
- metadata +15 -190
- data/doc/Dir.html +0 -288
- data/doc/Rake/Task.html +0 -184
- data/doc/Sprout/ArchiveUnpacker.html +0 -1246
- data/doc/Sprout/Base/ClassMethods.html +0 -434
- data/doc/Sprout/Base.html +0 -126
- data/doc/Sprout/Concern.html +0 -353
- data/doc/Sprout/Daemon/ClassMethods.html +0 -244
- data/doc/Sprout/Daemon/InstanceMethods.html +0 -601
- data/doc/Sprout/Daemon.html +0 -166
- data/doc/Sprout/Errors/ArchiveUnpackerError.html +0 -125
- data/doc/Sprout/Errors/DestinationExistsError.html +0 -133
- data/doc/Sprout/Errors/DuplicateMemberError.html +0 -132
- data/doc/Sprout/Errors/ExecutableError.html +0 -125
- data/doc/Sprout/Errors/ExecutableRegistrationError.html +0 -132
- data/doc/Sprout/Errors/ExecutionError.html +0 -121
- data/doc/Sprout/Errors/GeneratorError.html +0 -125
- data/doc/Sprout/Errors/InvalidArgumentError.html +0 -132
- data/doc/Sprout/Errors/LoadError.html +0 -121
- data/doc/Sprout/Errors/MissingArgumentError.html +0 -132
- data/doc/Sprout/Errors/MissingExecutableError.html +0 -132
- data/doc/Sprout/Errors/MissingGeneratorError.html +0 -132
- data/doc/Sprout/Errors/MissingTemplateError.html +0 -132
- data/doc/Sprout/Errors/ProcessRunnerError.html +0 -121
- data/doc/Sprout/Errors/RemoteFileLoaderError.html +0 -110
- data/doc/Sprout/Errors/SproutError.html +0 -114
- data/doc/Sprout/Errors/UnknownArchiveType.html +0 -122
- data/doc/Sprout/Errors/UsageError.html +0 -121
- data/doc/Sprout/Errors/ValidationError.html +0 -121
- data/doc/Sprout/Errors/VersionRequirementNotMetError.html +0 -121
- data/doc/Sprout/Errors.html +0 -101
- data/doc/Sprout/Executable/Boolean.html +0 -483
- data/doc/Sprout/Executable/ClassMethods.html +0 -417
- data/doc/Sprout/Executable/CollectionParam.html +0 -483
- data/doc/Sprout/Executable/FileParam.html +0 -484
- data/doc/Sprout/Executable/Files.html +0 -292
- data/doc/Sprout/Executable/InstanceMethods.html +0 -2006
- data/doc/Sprout/Executable/Number.html +0 -141
- data/doc/Sprout/Executable/Param.html +0 -2818
- data/doc/Sprout/Executable/ParameterFactory.html +0 -232
- data/doc/Sprout/Executable/Path.html +0 -223
- data/doc/Sprout/Executable/Paths.html +0 -253
- data/doc/Sprout/Executable/StringParam.html +0 -213
- data/doc/Sprout/Executable/Strings.html +0 -167
- data/doc/Sprout/Executable/Url.html +0 -160
- data/doc/Sprout/Executable/Urls.html +0 -170
- data/doc/Sprout/Executable.html +0 -173
- data/doc/Sprout/FileTarget.html +0 -1109
- data/doc/Sprout/Generator/Base.html +0 -1626
- data/doc/Sprout/Generator/Command.html +0 -690
- data/doc/Sprout/Generator/DirectoryManifest.html +0 -476
- data/doc/Sprout/Generator/FileManifest.html +0 -572
- data/doc/Sprout/Generator/Manifest.html +0 -377
- data/doc/Sprout/Generator/TemplateManifest.html +0 -196
- data/doc/Sprout/Generator.html +0 -689
- data/doc/Sprout/GeneratorGenerator.html +0 -1018
- data/doc/Sprout/Library.html +0 -1141
- data/doc/Sprout/LibraryGenerator.html +0 -309
- data/doc/Sprout/Log.html +0 -496
- data/doc/Sprout/MXMLC.html +0 -6373
- data/doc/Sprout/Platform.html +0 -714
- data/doc/Sprout/ProcessRunner.html +0 -1352
- data/doc/Sprout/ProgressBar.html +0 -376
- data/doc/Sprout/ProgressBarImpl.html +0 -2119
- data/doc/Sprout/ProgressBarManager.html +0 -434
- data/doc/Sprout/ProgressBarOutputStream.html +0 -416
- data/doc/Sprout/RDocParser.html +0 -211
- data/doc/Sprout/RemoteFileLoader.html +0 -172
- data/doc/Sprout/RemoteFileTarget.html +0 -679
- data/doc/Sprout/ReversedProgressBar.html +0 -194
- data/doc/Sprout/RubyFeature/ClassMethods.html +0 -1065
- data/doc/Sprout/RubyFeature.html +0 -155
- data/doc/Sprout/RubyGenerator.html +0 -764
- data/doc/Sprout/Specification.html +0 -767
- data/doc/Sprout/System/BaseSystem.html +0 -1455
- data/doc/Sprout/System/JavaSystem.html +0 -122
- data/doc/Sprout/System/OSXSystem.html +0 -335
- data/doc/Sprout/System/ThreadMock.html +0 -193
- data/doc/Sprout/System/UnixSystem.html +0 -584
- data/doc/Sprout/System/VistaSystem.html +0 -251
- data/doc/Sprout/System/WinNixSystem.html +0 -325
- data/doc/Sprout/System/WinSystem.html +0 -571
- data/doc/Sprout/System.html +0 -191
- data/doc/Sprout/ToolGenerator.html +0 -931
- data/doc/Sprout/VERSION.html +0 -128
- data/doc/Sprout.html +0 -144
- data/doc/SproutTestCase.html +0 -1412
- data/doc/String.html +0 -286
- data/doc/_index.html +0 -1035
- data/doc/class_list.html +0 -36
- data/doc/css/common.css +0 -1
- data/doc/css/full_list.css +0 -53
- data/doc/css/style.css +0 -310
- data/doc/file.README.html +0 -96
- data/doc/file.archive_unpacker.html +0 -288
- data/doc/file.base.html +0 -208
- data/doc/file.base_system.html +0 -278
- data/doc/file.boolean.html +0 -135
- data/doc/file.collection_param.html +0 -139
- data/doc/file.command.html +0 -126
- data/doc/file.concern.html +0 -136
- data/doc/file.daemon.html +0 -309
- data/doc/file.dir.html +0 -76
- data/doc/file.directory_manifest.html +0 -122
- data/doc/file.errors.html +0 -147
- data/doc/file.executable.html +0 -638
- data/doc/file.file_manifest.html +0 -109
- data/doc/file.file_param.html +0 -120
- data/doc/file.file_target.html +0 -140
- data/doc/file.files.html +0 -85
- data/doc/file.generator.html +0 -296
- data/doc/file.generator_class.html +0 -72
- data/doc/file.generator_generator.html +0 -137
- data/doc/file.generator_test.html +0 -92
- data/doc/file.generator_test_helper.html +0 -67
- data/doc/file.java_system.html +0 -62
- data/doc/file.library.html +0 -291
- data/doc/file.library_generator.html +0 -74
- data/doc/file.log.html +0 -100
- data/doc/file.manifest.html +0 -67
- data/doc/file.mxmlc.html +0 -740
- data/doc/file.number.html +0 -67
- data/doc/file.osx_system.html +0 -79
- data/doc/file.param.html +0 -491
- data/doc/file.parameter_factory.html +0 -119
- data/doc/file.path.html +0 -81
- data/doc/file.paths.html +0 -80
- data/doc/file.platform.html +0 -124
- data/doc/file.process_runner.html +0 -224
- data/doc/file.progress_bar.html +0 -390
- data/doc/file.rdoc_parser.html +0 -145
- data/doc/file.remote_file_loader.html +0 -117
- data/doc/file.remote_file_target.html +0 -176
- data/doc/file.ruby_base.html +0 -64
- data/doc/file.ruby_feature.html +0 -244
- data/doc/file.ruby_generator.html +0 -118
- data/doc/file.ruby_input.html +0 -62
- data/doc/file.ruby_test_case.html +0 -78
- data/doc/file.ruby_test_helper.html +0 -61
- data/doc/file.specification.html +0 -248
- data/doc/file.sprout.html +0 -64
- data/doc/file.sprout_test_case.html +0 -280
- data/doc/file.string.html +0 -72
- data/doc/file.string_param.html +0 -76
- data/doc/file.strings.html +0 -71
- data/doc/file.system.html +0 -86
- data/doc/file.template_manifest.html +0 -67
- data/doc/file.tool.html +0 -92
- data/doc/file.tool_generator.html +0 -90
- data/doc/file.unix_system.html +0 -128
- data/doc/file.url.html +0 -71
- data/doc/file.urls.html +0 -70
- data/doc/file.version.html +0 -71
- data/doc/file.vista_system.html +0 -69
- data/doc/file.win_nix_system.html +0 -88
- data/doc/file.win_system.html +0 -129
- data/doc/file_list.html +0 -230
- data/doc/frames.html +0 -13
- data/doc/index.html +0 -96
- data/doc/js/app.js +0 -202
- data/doc/js/full_list.js +0 -149
- data/doc/js/jquery.js +0 -154
- data/doc/method_list.html +0 -3355
- data/doc/top-level-namespace.html +0 -192
- data/lib/sprout/base.rb +0 -121
- data/lib/sprout/log.rb +0 -46
- data/test/unit/sprout_test_helper.rb +0 -33
data/doc/file.base_system.html
DELETED
@@ -1,278 +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: base_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: base_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='comment'># The abstract base class for all supported system/platform types.
|
48
|
-
</span><span class='comment'># In general, users are created by calling the +create+ factory method
|
49
|
-
</span><span class='comment'># on the +System+ module.
|
50
|
-
</span><span class='comment'>#
|
51
|
-
</span><span class='comment'># System.create
|
52
|
-
</span><span class='comment'>#
|
53
|
-
</span><span class='comment'># Assuming you call the create method, you should wind up with
|
54
|
-
</span><span class='comment'># a concrete system that matches your system, and these concrete
|
55
|
-
</span><span class='comment'># users will generally be derived from this base class.
|
56
|
-
</span><span class='comment'>#
|
57
|
-
</span><span class='kw'>class</span> <span class='const'>BaseSystem</span>
|
58
|
-
|
59
|
-
<span class='comment'>##
|
60
|
-
</span> <span class='comment'># Get the home path for a system on a particular operating system.
|
61
|
-
</span> <span class='comment'>#
|
62
|
-
</span> <span class='comment'># This path will be different, depending on which system owns
|
63
|
-
</span> <span class='comment'># the curren process, and which operating system they are on.
|
64
|
-
</span> <span class='comment'>#
|
65
|
-
</span> <span class='kw'>def</span> <span class='id home'>home</span>
|
66
|
-
<span class='ivar'>@home</span> <span class='op'>||=</span> <span class='id find_home'>find_home</span>
|
67
|
-
<span class='kw'>end</span>
|
68
|
-
|
69
|
-
<span class='comment'>##
|
70
|
-
</span> <span class='comment'># Set the home path for a system on a particular operating system.
|
71
|
-
</span> <span class='comment'>#
|
72
|
-
</span> <span class='comment'># If you request the home path before setting it, we will
|
73
|
-
</span> <span class='comment'># attempt to determine the home path of the current system for
|
74
|
-
</span> <span class='comment'># the current operating system.
|
75
|
-
</span> <span class='comment'>#
|
76
|
-
</span> <span class='comment'># This is just a simple way to override the default behavior.
|
77
|
-
</span> <span class='comment'>#
|
78
|
-
</span> <span class='kw'>def</span> <span class='id home='>home=</span><span class='lparen'>(</span><span class='id home'>home</span><span class='rparen'>)</span>
|
79
|
-
<span class='ivar'>@home</span> <span class='op'>=</span> <span class='id home'>home</span>
|
80
|
-
<span class='kw'>end</span>
|
81
|
-
|
82
|
-
<span class='comment'>##
|
83
|
-
</span> <span class='comment'># Some operating systems (like OS X and Windows) have a
|
84
|
-
</span> <span class='comment'># specific location where applications are expected to store
|
85
|
-
</span> <span class='comment'># files for a particular system. This location is generally
|
86
|
-
</span> <span class='comment'># a subdirectory of +home+.
|
87
|
-
</span> <span class='comment'>#
|
88
|
-
</span> <span class='comment'># The value of this location will usually be overridden in
|
89
|
-
</span> <span class='comment'># concrete System classes.
|
90
|
-
</span> <span class='comment'>#
|
91
|
-
</span> <span class='kw'>def</span> <span class='id library'>library</span>
|
92
|
-
<span class='kw'>return</span> <span class='id home'>home</span>
|
93
|
-
<span class='kw'>end</span>
|
94
|
-
|
95
|
-
<span class='comment'>##
|
96
|
-
</span> <span class='comment'># Instantiate and return a new Sprout::ProcessRunner so
|
97
|
-
</span> <span class='comment'># that we can execute it.
|
98
|
-
</span> <span class='comment'>#
|
99
|
-
</span> <span class='kw'>def</span> <span class='id get_process_runner'>get_process_runner</span>
|
100
|
-
<span class='const'>Sprout</span><span class='op'>::</span><span class='const'>ProcessRunner</span><span class='period'>.</span><span class='id new'>new</span>
|
101
|
-
<span class='kw'>end</span>
|
102
|
-
|
103
|
-
<span class='kw'>def</span> <span class='id can_execute?'>can_execute?</span> <span class='id platform'>platform</span>
|
104
|
-
<span class='id platform'>platform</span> <span class='op'>==</span> <span class='symbol'>:universal</span>
|
105
|
-
<span class='kw'>end</span>
|
106
|
-
|
107
|
-
<span class='comment'>##
|
108
|
-
</span> <span class='comment'># Creates a new process, executes the command
|
109
|
-
</span> <span class='comment'># and returns whatever the process wrote to stdout, or stderr.
|
110
|
-
</span> <span class='comment'>#
|
111
|
-
</span> <span class='comment'># Raises a +Sprout::Errors::ExecutionError+ if the process writes to stderr
|
112
|
-
</span> <span class='comment'>#
|
113
|
-
</span> <span class='kw'>def</span> <span class='id execute'>execute</span><span class='lparen'>(</span><span class='id tool'>tool</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
114
|
-
<span class='const'>Sprout</span><span class='op'>::</span><span class='const'>Log</span><span class='period'>.</span><span class='id puts'>puts</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id tool'>tool</span><span class='rbrace'>}</span><span class='tstring_content'> </span><span class='embexpr_beg'>#{</span><span class='id options'>options</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
115
|
-
<span class='id runner'>runner</span> <span class='op'>=</span> <span class='id get_and_execute_process_runner'>get_and_execute_process_runner</span><span class='lparen'>(</span><span class='id tool'>tool</span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
|
116
|
-
<span class='id error'>error</span> <span class='op'>=</span> <span class='id runner'>runner</span><span class='period'>.</span><span class='id read_err'>read_err</span>
|
117
|
-
<span class='id result'>result</span> <span class='op'>=</span> <span class='id runner'>runner</span><span class='period'>.</span><span class='id read'>read</span>
|
118
|
-
|
119
|
-
<span class='kw'>if</span><span class='lparen'>(</span><span class='id result'>result</span><span class='period'>.</span><span class='id size'>size</span> <span class='op'>></span> <span class='int'>0</span><span class='rparen'>)</span>
|
120
|
-
<span class='const'>Sprout</span><span class='op'>::</span><span class='const'>Log</span><span class='period'>.</span><span class='id puts'>puts</span> <span class='id result'>result</span>
|
121
|
-
<span class='kw'>end</span>
|
122
|
-
|
123
|
-
<span class='kw'>if</span><span class='lparen'>(</span><span class='id error'>error</span><span class='period'>.</span><span class='id size'>size</span> <span class='op'>></span> <span class='int'>0</span><span class='rparen'>)</span>
|
124
|
-
<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'>ExecutionError</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='tstring_content'>[ERROR] </span><span class='embexpr_beg'>#{</span><span class='id error'>error</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span><span class='rparen'>)</span>
|
125
|
-
<span class='kw'>end</span>
|
126
|
-
|
127
|
-
<span class='id result'>result</span> <span class='op'>||</span> <span class='id error'>error</span>
|
128
|
-
<span class='kw'>end</span>
|
129
|
-
|
130
|
-
<span class='comment'>##
|
131
|
-
</span> <span class='comment'># Creates and returns the process without
|
132
|
-
</span> <span class='comment'># attempting to read or write to the stream.
|
133
|
-
</span> <span class='comment'># This is useful for interacting with
|
134
|
-
</span> <span class='comment'># long-lived CLI processes like FCSH or FDB.
|
135
|
-
</span> <span class='comment'>#
|
136
|
-
</span> <span class='kw'>def</span> <span class='id execute_silent'>execute_silent</span><span class='lparen'>(</span><span class='id tool'>tool</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
137
|
-
<span class='id get_and_execute_process_runner'>get_and_execute_process_runner</span><span class='lparen'>(</span><span class='id tool'>tool</span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
|
138
|
-
<span class='kw'>end</span>
|
139
|
-
|
140
|
-
<span class='comment'>##
|
141
|
-
</span> <span class='comment'># Execute a new process in a separate thread.
|
142
|
-
</span> <span class='comment'>#
|
143
|
-
</span> <span class='kw'>def</span> <span class='id execute_thread'>execute_thread</span><span class='lparen'>(</span><span class='id tool'>tool</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_end'>'</span></span><span class='rparen'>)</span>
|
144
|
-
<span class='id runner'>runner</span> <span class='op'>=</span> <span class='kw'>nil</span>
|
145
|
-
<span class='const'>Thread</span><span class='period'>.</span><span class='id new'>new</span> <span class='kw'>do</span>
|
146
|
-
<span class='id runner'>runner</span> <span class='op'>=</span> <span class='id execute_silent'>execute_silent</span><span class='lparen'>(</span><span class='id tool'>tool</span><span class='comma'>,</span> <span class='id options'>options</span><span class='rparen'>)</span>
|
147
|
-
<span class='kw'>end</span>
|
148
|
-
<span class='comment'># Wait for the runner to be created
|
149
|
-
</span> <span class='comment'># before returning a nil reference
|
150
|
-
</span> <span class='comment'># that never gets populated...
|
151
|
-
</span> <span class='kw'>while</span> <span class='id runner'>runner</span><span class='period'>.</span><span class='id nil?'>nil?</span> <span class='kw'>do</span>
|
152
|
-
<span class='id sleep'>sleep</span><span class='lparen'>(</span><span class='float'>0.1</span><span class='rparen'>)</span>
|
153
|
-
<span class='kw'>end</span>
|
154
|
-
<span class='id runner'>runner</span>
|
155
|
-
<span class='kw'>end</span>
|
156
|
-
|
157
|
-
<span class='comment'>##
|
158
|
-
</span> <span class='comment'># Clean the provided +path+ String for the current
|
159
|
-
</span> <span class='comment'># operating system.
|
160
|
-
</span> <span class='comment'>#
|
161
|
-
</span> <span class='comment'># Each operating system behaves differently when we
|
162
|
-
</span> <span class='comment'># attempt to execute a file with spaces in the +path+
|
163
|
-
</span> <span class='comment'># to the file.
|
164
|
-
</span> <span class='comment'>#
|
165
|
-
</span> <span class='comment'># Subclasses will generally override this method and
|
166
|
-
</span> <span class='comment'># clean the path appropriately for their operating
|
167
|
-
</span> <span class='comment'># system.
|
168
|
-
</span> <span class='comment'>#
|
169
|
-
</span> <span class='kw'>def</span> <span class='id clean_path'>clean_path</span><span class='lparen'>(</span><span class='id path'>path</span><span class='rparen'>)</span>
|
170
|
-
<span class='kw'>end</span>
|
171
|
-
|
172
|
-
<span class='comment'>##
|
173
|
-
</span> <span class='comment'># Different operating systems will store Application data
|
174
|
-
</span> <span class='comment'># different default locations.
|
175
|
-
</span> <span class='comment'>#
|
176
|
-
</span> <span class='comment'># Subclasses will generally override this method and
|
177
|
-
</span> <span class='comment'># return the appropriate location for their operating system.
|
178
|
-
</span> <span class='comment'>#
|
179
|
-
</span> <span class='comment'># +name+ String value of the Application name for which we'd
|
180
|
-
</span> <span class='comment'># like to store data.
|
181
|
-
</span> <span class='comment'>#
|
182
|
-
</span> <span class='kw'>def</span> <span class='id application_home'>application_home</span><span class='lparen'>(</span><span class='id name'>name</span><span class='rparen'>)</span>
|
183
|
-
<span class='kw'>return</span> <span class='const'>File</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='id library'>library</span><span class='comma'>,</span> <span class='id format_application_name'>format_application_name</span><span class='lparen'>(</span><span class='id name'>name</span><span class='period'>.</span><span class='id to_s'>to_s</span><span class='rparen'>)</span><span class='rparen'>)</span><span class='semicolon'>;</span>
|
184
|
-
<span class='kw'>end</span>
|
185
|
-
|
186
|
-
<span class='comment'>##
|
187
|
-
</span> <span class='comment'># Template method that should be overridden by
|
188
|
-
</span> <span class='comment'># subclasses.
|
189
|
-
</span> <span class='comment'>#
|
190
|
-
</span> <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>
|
191
|
-
<span class='id name'>name</span>
|
192
|
-
<span class='kw'>end</span>
|
193
|
-
|
194
|
-
<span class='id protected'>protected</span>
|
195
|
-
|
196
|
-
<span class='kw'>def</span> <span class='id env_homedrive'>env_homedrive</span>
|
197
|
-
<span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>HOMEDRIVE</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
198
|
-
<span class='kw'>end</span>
|
199
|
-
|
200
|
-
<span class='kw'>def</span> <span class='id env_homepath'>env_homepath</span>
|
201
|
-
<span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>HOMEPATH</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
202
|
-
<span class='kw'>end</span>
|
203
|
-
|
204
|
-
<span class='kw'>def</span> <span class='id env_homedrive_and_homepath'>env_homedrive_and_homepath</span>
|
205
|
-
<span class='id drive'>drive</span> <span class='op'>=</span> <span class='id env_homedrive'>env_homedrive</span>
|
206
|
-
<span class='id path'>path</span> <span class='op'>=</span> <span class='id env_homepath'>env_homepath</span>
|
207
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id drive'>drive</span><span class='rbrace'>}</span><span class='tstring_content'>:</span><span class='embexpr_beg'>#{</span><span class='id path'>path</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span> <span class='kw'>if</span> <span class='id drive'>drive</span> <span class='op'>&&</span> <span class='id path'>path</span>
|
208
|
-
<span class='kw'>end</span>
|
209
|
-
|
210
|
-
<span class='kw'>def</span> <span class='id env_userprofile'>env_userprofile</span>
|
211
|
-
<span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>USERPROFILE</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
212
|
-
<span class='kw'>end</span>
|
213
|
-
|
214
|
-
<span class='kw'>def</span> <span class='id env_home'>env_home</span>
|
215
|
-
<span class='const'>ENV</span><span class='lbracket'>[</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>HOME</span><span class='tstring_end'>'</span></span><span class='rbracket'>]</span>
|
216
|
-
<span class='kw'>end</span>
|
217
|
-
|
218
|
-
<span class='kw'>def</span> <span class='id tilde_home'>tilde_home</span>
|
219
|
-
<span class='const'>File</span><span class='period'>.</span><span class='id expand_path'>expand_path</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>
|
220
|
-
<span class='kw'>end</span>
|
221
|
-
|
222
|
-
<span class='kw'>def</span> <span class='id alt_separator?'>alt_separator?</span>
|
223
|
-
<span class='const'>File</span><span class='op'>::</span><span class='const'>ALT_SEPARATOR</span>
|
224
|
-
<span class='kw'>end</span>
|
225
|
-
|
226
|
-
<span class='kw'>def</span> <span class='id worst_case_home'>worst_case_home</span>
|
227
|
-
<span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>C:\\</span><span class='tstring_end'>"</span></span> <span class='kw'>if</span> <span class='id alt_separator?'>alt_separator?</span>
|
228
|
-
<span class='kw'>return</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>/</span><span class='tstring_end'>"</span></span>
|
229
|
-
<span class='kw'>end</span>
|
230
|
-
|
231
|
-
<span class='kw'>def</span> <span class='id find_home'>find_home</span>
|
232
|
-
<span class='lbracket'>[</span><span class='symbol'>:env_userprofile</span><span class='comma'>,</span> <span class='symbol'>:env_home</span><span class='comma'>,</span> <span class='symbol'>:env_homedrive_and_homepath</span><span class='rbracket'>]</span><span class='period'>.</span><span class='id each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id key'>key</span><span class='op'>|</span>
|
233
|
-
<span class='id value'>value</span> <span class='op'>=</span> <span class='kw'>self</span><span class='period'>.</span><span class='id send'>send</span><span class='lparen'>(</span><span class='id key'>key</span><span class='rparen'>)</span>
|
234
|
-
<span class='kw'>return</span> <span class='id value'>value</span> <span class='kw'>unless</span> <span class='id value'>value</span><span class='period'>.</span><span class='id nil?'>nil?</span>
|
235
|
-
<span class='kw'>end</span>
|
236
|
-
|
237
|
-
<span class='kw'>begin</span>
|
238
|
-
<span class='kw'>return</span> <span class='id tilde_home'>tilde_home</span>
|
239
|
-
<span class='kw'>rescue</span> <span class='const'>StandardError</span>
|
240
|
-
<span class='id worst_case_home'>worst_case_home</span>
|
241
|
-
<span class='kw'>end</span>
|
242
|
-
<span class='kw'>end</span>
|
243
|
-
|
244
|
-
<span class='id protected'>protected</span>
|
245
|
-
|
246
|
-
<span class='comment'>##
|
247
|
-
</span> <span class='comment'># Get a process runner and execute the provided +executable+,
|
248
|
-
</span> <span class='comment'># with the provided +options+.
|
249
|
-
</span> <span class='comment'>#
|
250
|
-
</span> <span class='comment'># +executable+ String path to the external executable file.
|
251
|
-
</span> <span class='comment'>#
|
252
|
-
</span> <span class='comment'># +options+ String commandline options to send to the +executable+.
|
253
|
-
</span> <span class='comment'>#
|
254
|
-
</span> <span class='kw'>def</span> <span class='id get_and_execute_process_runner'>get_and_execute_process_runner</span> <span class='id tool'>tool</span><span class='comma'>,</span> <span class='id options'>options</span><span class='op'>=</span><span class='kw'>nil</span>
|
255
|
-
<span class='id runner'>runner</span> <span class='op'>=</span> <span class='id get_process_runner'>get_process_runner</span>
|
256
|
-
<span class='id runner'>runner</span><span class='period'>.</span><span class='id execute_open4'>execute_open4</span> <span class='id clean_path'>clean_path</span><span class='lparen'>(</span><span class='id tool'>tool</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id options'>options</span>
|
257
|
-
<span class='id runner'>runner</span>
|
258
|
-
<span class='kw'>end</span>
|
259
|
-
|
260
|
-
<span class='kw'>end</span>
|
261
|
-
|
262
|
-
<span class='kw'>class</span> <span class='const'>ThreadMock</span> <span class='comment'># :nodoc:
|
263
|
-
</span> <span class='kw'>def</span> <span class='id alive?'>alive?</span>
|
264
|
-
<span class='kw'>return</span> <span class='kw'>false</span>
|
265
|
-
<span class='kw'>end</span>
|
266
|
-
<span class='kw'>end</span></pre>
|
267
|
-
|
268
|
-
<p>end</p>
|
269
|
-
</div></div>
|
270
|
-
|
271
|
-
<div id="footer">
|
272
|
-
Generated on Wed Dec 22 11:58:32 2010 by
|
273
|
-
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
274
|
-
0.6.3 (ruby-1.9.2).
|
275
|
-
</div>
|
276
|
-
|
277
|
-
</body>
|
278
|
-
</html>
|
data/doc/file.boolean.html
DELETED
@@ -1,135 +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: boolean</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: boolean</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 Boolean values.
|
51
|
-
</span> <span class='comment'>#
|
52
|
-
</span> <span class='comment'># By default Boolean parameters have their value set to false and
|
53
|
-
</span> <span class='comment'># :hidden_value set to true. This means that when they are serialized
|
54
|
-
</span> <span class='comment'># to the shell, they will usually be represented like:
|
55
|
-
</span> <span class='comment'>#
|
56
|
-
</span> <span class='comment'># --name
|
57
|
-
</span> <span class='comment'>#
|
58
|
-
</span> <span class='comment'># Rather than:
|
59
|
-
</span> <span class='comment'>#
|
60
|
-
</span> <span class='comment'># --name=true
|
61
|
-
</span> <span class='comment'>#
|
62
|
-
</span> <span class='comment'># The following example demonstrates a simple use of the Boolean
|
63
|
-
</span> <span class='comment'># parameter:
|
64
|
-
</span> <span class='comment'>#
|
65
|
-
</span> <span class='comment'># class Foo
|
66
|
-
</span> <span class='comment'># include Sprout::Executable
|
67
|
-
</span> <span class='comment'>#
|
68
|
-
</span> <span class='comment'># add_param :visible, Boolean
|
69
|
-
</span> <span class='comment'># end
|
70
|
-
</span> <span class='comment'>#
|
71
|
-
</span> <span class='comment'># @see Sprout::Executable::Param
|
72
|
-
</span> <span class='comment'>#
|
73
|
-
</span> <span class='kw'>class</span> <span class='const'>Boolean</span> <span class='op'><</span> <span class='const'>Param</span>
|
74
|
-
|
75
|
-
<span class='comment'>##
|
76
|
-
</span> <span class='comment'># By default, the Boolean parameter will only
|
77
|
-
</span> <span class='comment'># be displayed when it's value is +true+.
|
78
|
-
</span> <span class='comment'>#
|
79
|
-
</span> <span class='comment'># Set :show_on_false to true in order to reverse
|
80
|
-
</span> <span class='comment'># this rule.
|
81
|
-
</span> <span class='comment'>#
|
82
|
-
</span> <span class='comment'># add_param :visible, Boolean, :show_on_false => true
|
83
|
-
</span> <span class='comment'>#
|
84
|
-
</span> <span class='comment'># Will make the following:
|
85
|
-
</span> <span class='comment'>#
|
86
|
-
</span> <span class='comment'># foo :name do |t|
|
87
|
-
</span> <span class='comment'># t.visible = false
|
88
|
-
</span> <span class='comment'># end
|
89
|
-
</span> <span class='comment'>#
|
90
|
-
</span> <span class='comment'># Serialize to the shell with:
|
91
|
-
</span> <span class='comment'>#
|
92
|
-
</span> <span class='comment'># foo -visible=false
|
93
|
-
</span> <span class='comment'>#
|
94
|
-
</span> <span class='id attr_accessor'>attr_accessor</span> <span class='symbol'>:show_on_false</span>
|
95
|
-
|
96
|
-
<span class='kw'>def</span> <span class='id initialize'>initialize</span>
|
97
|
-
<span class='kw'>super</span>
|
98
|
-
<span class='ivar'>@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>
|
99
|
-
<span class='ivar'>@option_parser_type_name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>BOOL</span><span class='tstring_end'>'</span></span>
|
100
|
-
<span class='ivar'>@show_on_false</span> <span class='op'>=</span> <span class='kw'>false</span>
|
101
|
-
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='kw'>false</span>
|
102
|
-
<span class='ivar'>@hidden_value</span> <span class='op'>=</span> <span class='kw'>true</span>
|
103
|
-
<span class='kw'>end</span>
|
104
|
-
|
105
|
-
<span class='comment'>##
|
106
|
-
</span> <span class='comment'># Convert string representations of truthiness
|
107
|
-
</span> <span class='comment'># to something more Booley.
|
108
|
-
</span> <span class='kw'>def</span> <span class='id value='>value=</span><span class='lparen'>(</span><span class='id value'>value</span><span class='rparen'>)</span>
|
109
|
-
<span class='id value'>value</span> <span class='op'>=</span> <span class='lparen'>(</span><span class='id value'>value</span> <span class='op'>==</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>true</span><span class='tstring_end'>"</span></span> <span class='op'>||</span> <span class='id value'>value</span> <span class='op'>===</span> <span class='kw'>true</span><span class='rparen'>)</span> <span class='op'>?</span> <span class='kw'>true</span> <span class='op'>:</span> <span class='kw'>false</span>
|
110
|
-
<span class='kw'>super</span> <span class='id value'>value</span>
|
111
|
-
<span class='kw'>end</span>
|
112
|
-
|
113
|
-
<span class='kw'>def</span> <span class='id visible?'>visible?</span>
|
114
|
-
<span class='ivar'>@visible</span> <span class='op'>||=</span> <span class='id value'>value</span>
|
115
|
-
<span class='kw'>if</span><span class='lparen'>(</span><span class='id show_on_false'>show_on_false</span><span class='rparen'>)</span>
|
116
|
-
<span class='kw'>return</span> <span class='kw'>true</span> <span class='kw'>unless</span> <span class='id value'>value</span>
|
117
|
-
<span class='kw'>else</span>
|
118
|
-
<span class='kw'>return</span> <span class='ivar'>@visible</span>
|
119
|
-
<span class='kw'>end</span>
|
120
|
-
<span class='kw'>end</span>
|
121
|
-
|
122
|
-
<span class='kw'>end</span>
|
123
|
-
<span class='kw'>end</span></pre>
|
124
|
-
|
125
|
-
<p>end</p>
|
126
|
-
</div></div>
|
127
|
-
|
128
|
-
<div id="footer">
|
129
|
-
Generated on Wed Dec 22 11:58:31 2010 by
|
130
|
-
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
131
|
-
0.6.3 (ruby-1.9.2).
|
132
|
-
</div>
|
133
|
-
|
134
|
-
</body>
|
135
|
-
</html>
|
@@ -1,139 +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: collection_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: collection_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'># Included by any parameters that represent
|
51
|
-
</span> <span class='comment'># a collection of values, rather than a single
|
52
|
-
</span> <span class='comment'># value.
|
53
|
-
</span> <span class='comment'>#
|
54
|
-
</span> <span class='comment'># Should only be included by classes that
|
55
|
-
</span> <span class='comment'># extend Sprout::Executable::Param.
|
56
|
-
</span> <span class='comment'>#
|
57
|
-
</span> <span class='comment'># @see Sprout::Executable::Files
|
58
|
-
</span> <span class='comment'># @see Sprout::Executable::Paths
|
59
|
-
</span> <span class='comment'># @see Sprout::Executable::Strings
|
60
|
-
</span> <span class='comment'># @see Sprout::Executable::Urls
|
61
|
-
</span> <span class='comment'>#
|
62
|
-
</span> <span class='kw'>module</span> <span class='const'>CollectionParam</span>
|
63
|
-
|
64
|
-
<span class='kw'>def</span> <span class='id initialize'>initialize</span>
|
65
|
-
<span class='kw'>super</span>
|
66
|
-
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='lbracket'>[</span><span class='rbracket'>]</span>
|
67
|
-
<span class='ivar'>@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>
|
68
|
-
<span class='ivar'>@option_parser_type_name</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'>a,b,c</span><span class='tstring_end'>'</span></span>
|
69
|
-
<span class='kw'>end</span>
|
70
|
-
|
71
|
-
<span class='comment'>##
|
72
|
-
</span> <span class='comment'># Assign the value and raise if a collection wasn't provided.
|
73
|
-
</span> <span class='comment'>#
|
74
|
-
</span> <span class='comment'># This customization was added so that Rake tasks could help
|
75
|
-
</span> <span class='comment'># users avoid accidentally clobbering a collection with equals assignments.
|
76
|
-
</span> <span class='comment'>#
|
77
|
-
</span> <span class='comment'># The following example is incorrect and will raise an exception:
|
78
|
-
</span> <span class='comment'>#
|
79
|
-
</span> <span class='comment'># foo :name do |t|
|
80
|
-
</span> <span class='comment'># t.collection = 'A'
|
81
|
-
</span> <span class='comment'># end
|
82
|
-
</span> <span class='comment'>#
|
83
|
-
</span> <span class='comment'># The following example is correct and should not raise an exception:
|
84
|
-
</span> <span class='comment'>#
|
85
|
-
</span> <span class='comment'># foo :name do |t|
|
86
|
-
</span> <span class='comment'># t.collection << 'A'
|
87
|
-
</span> <span class='comment'># end
|
88
|
-
</span> <span class='comment'>#
|
89
|
-
</span> <span class='comment'># The following example is also correct and should not raise an exception:
|
90
|
-
</span> <span class='comment'>#
|
91
|
-
</span> <span class='comment'># foo :name do |t|
|
92
|
-
</span> <span class='comment'># t.collection = ['A']
|
93
|
-
</span> <span class='comment'># end
|
94
|
-
</span> <span class='comment'>#
|
95
|
-
</span> <span class='kw'>def</span> <span class='id value='>value=</span><span class='lparen'>(</span><span class='id val'>val</span><span class='rparen'>)</span>
|
96
|
-
<span class='kw'>if</span><span class='lparen'>(</span><span class='id val'>val</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>String</span><span class='rparen'>)</span> <span class='op'>||</span> <span class='op'>!</span><span class='id val'>val</span><span class='period'>.</span><span class='id is_a?'>is_a?</span><span class='lparen'>(</span><span class='const'>Enumerable</span><span class='rparen'>)</span><span class='rparen'>)</span>
|
97
|
-
<span class='id message'>message</span> <span class='op'>=</span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_content'>The </span><span class='embexpr_beg'>#{</span><span class='id name'>name</span><span class='rbrace'>}</span><span class='tstring_content'> property is an Enumerable. It looks like you may have used the assignment operator (=) with (</span><span class='embexpr_beg'>#{</span><span class='id value'>value</span><span class='period'>.</span><span class='id inspect'>inspect</span><span class='rbrace'>}</span><span class='tstring_content'>) where the append operator (<<) was expected.</span><span class='tstring_end'>"</span></span>
|
98
|
-
<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'>ExecutableError</span><span class='period'>.</span><span class='id new'>new</span><span class='lparen'>(</span><span class='id message'>message</span><span class='rparen'>)</span>
|
99
|
-
<span class='kw'>end</span>
|
100
|
-
<span class='ivar'>@value</span> <span class='op'>=</span> <span class='id val'>val</span>
|
101
|
-
<span class='kw'>end</span>
|
102
|
-
|
103
|
-
<span class='comment'>##
|
104
|
-
</span> <span class='comment'># Hide the collection param if no items
|
105
|
-
</span> <span class='comment'># have been added to it.
|
106
|
-
</span> <span class='kw'>def</span> <span class='id visible?'>visible?</span>
|
107
|
-
<span class='lparen'>(</span><span class='op'>!</span><span class='id value'>value</span><span class='period'>.</span><span class='id nil?'>nil?</span> <span class='op'>&&</span> <span class='id value'>value</span><span class='period'>.</span><span class='id size'>size</span> <span class='op'>></span> <span class='int'>0</span><span class='rparen'>)</span>
|
108
|
-
<span class='kw'>end</span>
|
109
|
-
|
110
|
-
<span class='comment'>##
|
111
|
-
</span> <span class='comment'># Returns a shell formatted string of the collection
|
112
|
-
</span> <span class='kw'>def</span> <span class='id to_shell'>to_shell</span>
|
113
|
-
<span class='id prepare'>prepare</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id prepared?'>prepared?</span>
|
114
|
-
<span class='id validate'>validate</span>
|
115
|
-
<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>
|
116
|
-
<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>
|
117
|
-
<span class='kw'>return</span> <span class='id value'>value</span><span class='period'>.</span><span class='id join'>join</span><span class='lparen'>(</span><span class='tstring'><span class='tstring_beg'>'</span><span class='tstring_content'> </span><span class='tstring_end'>'</span></span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id hidden_name?'>hidden_name?</span>
|
118
|
-
<span class='kw'>return</span> <span class='id to_shell_value'>to_shell_value</span><span class='period'>.</span><span class='id collect'>collect</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id val'>val</span><span class='op'>|</span>
|
119
|
-
<span class='tstring'><span class='tstring_beg'>"</span><span class='embexpr_beg'>#{</span><span class='id shell_name'>shell_name</span><span class='rbrace'>}</span><span class='embexpr_beg'>#{</span><span class='id delimiter'>delimiter</span><span class='rbrace'>}</span><span class='embexpr_beg'>#{</span><span class='id val'>val</span><span class='rbrace'>}</span><span class='tstring_end'>"</span></span>
|
120
|
-
<span class='rbrace'>}</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>
|
121
|
-
<span class='kw'>end</span>
|
122
|
-
|
123
|
-
<span class='kw'>def</span> <span class='id to_shell_value'>to_shell_value</span>
|
124
|
-
<span class='id value'>value</span>
|
125
|
-
<span class='kw'>end</span>
|
126
|
-
<span class='kw'>end</span>
|
127
|
-
<span class='kw'>end</span></pre>
|
128
|
-
|
129
|
-
<p>end</p>
|
130
|
-
</div></div>
|
131
|
-
|
132
|
-
<div id="footer">
|
133
|
-
Generated on Wed Dec 22 11:58:31 2010 by
|
134
|
-
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
135
|
-
0.6.3 (ruby-1.9.2).
|
136
|
-
</div>
|
137
|
-
|
138
|
-
</body>
|
139
|
-
</html>
|