bovem 2.4.1 → 3.0.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- checksums.yaml +4 -4
- data/.gitignore +2 -1
- data/Gemfile +1 -1
- data/README.md +98 -2
- data/bovem.gemspec +3 -3
- data/doc/Bovem.html +25 -6
- data/doc/Bovem/Application.html +3057 -0
- data/doc/Bovem/Command.html +7031 -0
- data/doc/Bovem/CommandMethods.html +125 -0
- data/doc/Bovem/CommandMethods/Children.html +1285 -0
- data/doc/Bovem/CommandMethods/Help.html +209 -0
- data/doc/Bovem/Configuration.html +3 -3
- data/doc/Bovem/Console.html +8 -8
- data/doc/Bovem/ConsoleMethods.html +3 -3
- data/doc/Bovem/ConsoleMethods/Interactions.html +3 -3
- data/doc/Bovem/ConsoleMethods/Interactions/ClassMethods.html +3 -3
- data/doc/Bovem/ConsoleMethods/Logging.html +4 -4
- data/doc/Bovem/ConsoleMethods/Logging/ClassMethods.html +3 -3
- data/doc/Bovem/ConsoleMethods/Output.html +3 -3
- data/doc/Bovem/ConsoleMethods/StyleHandling.html +4 -4
- data/doc/Bovem/ConsoleMethods/StyleHandling/ClassMethods.html +8 -8
- data/doc/Bovem/Errors.html +4 -4
- data/doc/Bovem/Errors/Error.html +631 -0
- data/doc/Bovem/Errors/InvalidConfiguration.html +3 -3
- data/doc/Bovem/Errors/InvalidLogger.html +3 -3
- data/doc/Bovem/Localizer.html +376 -0
- data/doc/Bovem/Logger.html +64 -160
- data/doc/Bovem/Option.html +7009 -0
- data/doc/Bovem/Parser.html +276 -0
- data/doc/Bovem/ParserMethods.html +125 -0
- data/doc/Bovem/ParserMethods/General.html +134 -0
- data/doc/Bovem/ParserMethods/General/ClassMethods.html +574 -0
- data/doc/Bovem/Shell.html +8 -8
- data/doc/Bovem/ShellMethods.html +3 -3
- data/doc/Bovem/ShellMethods/Directories.html +3 -3
- data/doc/Bovem/ShellMethods/Execute.html +3 -3
- data/doc/Bovem/ShellMethods/General.html +3 -3
- data/doc/Bovem/ShellMethods/Read.html +3 -3
- data/doc/Bovem/ShellMethods/Write.html +3 -3
- data/doc/Bovem/Version.html +6 -6
- data/doc/_index.html +119 -11
- data/doc/class_list.html +1 -1
- data/doc/file.README.html +98 -5
- data/doc/frames.html +1 -1
- data/doc/index.html +98 -5
- data/doc/method_list.html +476 -26
- data/doc/top-level-namespace.html +3 -3
- data/lib/bovem.rb +8 -1
- data/lib/bovem/application.rb +158 -0
- data/lib/bovem/command.rb +529 -0
- data/lib/bovem/console.rb +8 -8
- data/lib/bovem/errors.rb +27 -0
- data/lib/bovem/localizer.rb +27 -0
- data/lib/bovem/logger.rb +2 -8
- data/lib/bovem/option.rb +250 -0
- data/lib/bovem/parser.rb +317 -0
- data/lib/bovem/shell.rb +2 -2
- data/lib/bovem/version.rb +3 -3
- data/locales/en.yml +33 -0
- data/locales/it.yml +33 -0
- data/spec/bovem/application_spec.rb +170 -0
- data/spec/bovem/command_spec.rb +526 -0
- data/spec/bovem/configuration_spec.rb +4 -4
- data/spec/bovem/console_spec.rb +22 -22
- data/spec/bovem/errors_spec.rb +18 -0
- data/spec/bovem/logger_spec.rb +22 -12
- data/spec/bovem/option_spec.rb +307 -0
- data/spec/bovem/parser_spec.rb +126 -0
- data/spec/bovem/shell_spec.rb +4 -4
- metadata +32 -5
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 9da3864e3059ee61e788984c99735abde158e810
|
4
|
+
data.tar.gz: f55f4b13065d1142e80841d2a1ef1089db62cfd7
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 1fe46dc48a76bfa71df3505d39b0c2a8938743c172d7b3c26e743061dcd378ddf4da6d26699e89adf90686c85316062b4d258949221fc426387b7deaebafe9e2
|
7
|
+
data.tar.gz: c2ca4b6936d4fccb59914ba3247079cf8585d39406d1133a5e3aa51b3cbc0ca916712567f01f98b444fd7598b4eb957d8d94b58a09e2f61fd7eeeadbb675fef2
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
[](https://codeclimate.com/github/ShogunPanda/bovem)
|
7
7
|
[](https://coveralls.io/r/ShogunPanda/bovem)
|
8
8
|
|
9
|
-
A collection of utilities for developers.
|
9
|
+
A command line manager and a collection of utilities for developers.
|
10
10
|
|
11
11
|
http://sw.cow.tc/bovem
|
12
12
|
|
@@ -14,10 +14,106 @@ http://rdoc.info/gems/bovem
|
|
14
14
|
|
15
15
|
## Description
|
16
16
|
|
17
|
-
Bovem is a small set of utilities for Ruby developers.
|
17
|
+
Bovem is a command line manager and small set of utilities for Ruby developers.
|
18
18
|
|
19
19
|
See the documentation for more informations.
|
20
20
|
|
21
|
+
## Basic usage.
|
22
|
+
|
23
|
+
As ever, talking by example is always better.
|
24
|
+
This application:
|
25
|
+
|
26
|
+
```ruby
|
27
|
+
require "bovem"
|
28
|
+
|
29
|
+
Bovem::Application.create(name: "Bovem Usage Test", version: "1.0.0", description: "An example modelled like a TODO application", banner: "Do you like Bovem?") do
|
30
|
+
option(:storage, ["f", "file"], {type: String, help: "The file where store TODOs to.", meta: "FILE"})
|
31
|
+
|
32
|
+
command :list do
|
33
|
+
description "List all TODOs."
|
34
|
+
action do |command|
|
35
|
+
# You should implement this.
|
36
|
+
end
|
37
|
+
end
|
38
|
+
|
39
|
+
command :manage, {description: "Manage existing TODO."} do
|
40
|
+
option(:verbose, [], {help: "Be verbose."})
|
41
|
+
|
42
|
+
action do |command|
|
43
|
+
puts "Please use \"add\" or \"remove\" subcommands."
|
44
|
+
end
|
45
|
+
|
46
|
+
command :add, {description: "Add a TODO."} do
|
47
|
+
action do |command|
|
48
|
+
# You should implement this.
|
49
|
+
end
|
50
|
+
end
|
51
|
+
|
52
|
+
command :remove, {description: "Removes a TODO."} do
|
53
|
+
action do |command|
|
54
|
+
# You should implement this.
|
55
|
+
end
|
56
|
+
end
|
57
|
+
end
|
58
|
+
end
|
59
|
+
```
|
60
|
+
|
61
|
+
Will create a complete (at least at the interface model) TODO application which support commands `list` and `manage`.
|
62
|
+
|
63
|
+
The `manage` command supports subcommands `add` and `remove`. You can invoke it via syntax `manage add` or `manage:add`. **If there is no conflict, just `m:r` is sufficient!**
|
64
|
+
|
65
|
+
To provide (sub)commands, both hash-style or block-style method style are supported (except for the `action` option), as you can see in the example.
|
66
|
+
|
67
|
+
You can use the `--help` switch or the `help command` syntax to navigate through commands details.
|
68
|
+
|
69
|
+
After setting up the skeleton, you will just need to write the action bodies and you're done. **Happy coding!**
|
70
|
+
|
71
|
+
### Wrapping up the example
|
72
|
+
Here's the help screen of the application above for the global application and for the `manage` command.
|
73
|
+
|
74
|
+
#### General help
|
75
|
+
|
76
|
+
```
|
77
|
+
$ ./test -h
|
78
|
+
[NAME]
|
79
|
+
Bovem Usage Test 1.0.0 - An example modelled like a TODO application
|
80
|
+
|
81
|
+
[SYNOPSIS]
|
82
|
+
test [options] [command [subcommand ...]][command-options] [arguments]
|
83
|
+
|
84
|
+
[DESCRIPTION]
|
85
|
+
Do you like Bovem?
|
86
|
+
|
87
|
+
[GLOBAL OPTIONS]
|
88
|
+
-f FILE, --file FILE - The file where store TODOs to.
|
89
|
+
-h, --help - Shows this message.
|
90
|
+
|
91
|
+
[COMMANDS]
|
92
|
+
help - Shows a help about a command.
|
93
|
+
list - List all TODOs.
|
94
|
+
manage - Manage existing TODO.
|
95
|
+
```
|
96
|
+
|
97
|
+
#### The `manage` command help
|
98
|
+
|
99
|
+
```
|
100
|
+
$ ./test help manage
|
101
|
+
[SYNOPSIS]
|
102
|
+
test [options] manage [subcommand ...]] [command-options] [arguments]
|
103
|
+
|
104
|
+
[OPTIONS]
|
105
|
+
-v, --verbose - Be verbose.
|
106
|
+
|
107
|
+
[SUBCOMMANDS]
|
108
|
+
add - Add a TODO.
|
109
|
+
remove - Removes a TODO.
|
110
|
+
```
|
111
|
+
|
112
|
+
|
113
|
+
## Advanced usage
|
114
|
+
|
115
|
+
See documentation for more information.
|
116
|
+
|
21
117
|
## Contributing to bovem
|
22
118
|
|
23
119
|
* Check out the latest master to make sure the feature hasn't been implemented or the bug hasn't been fixed yet.
|
data/bovem.gemspec
CHANGED
@@ -12,8 +12,8 @@ Gem::Specification.new do |gem|
|
|
12
12
|
gem.authors = ["Shogun"]
|
13
13
|
gem.email = ["shogun_panda@me.com"]
|
14
14
|
gem.homepage = "http://sw.cow.tc/bovem"
|
15
|
-
gem.summary = %q{A collection of utilities for developers.}
|
16
|
-
gem.description = %q{A collection of utilities for developers.}
|
15
|
+
gem.summary = %q{A command line manager and a collection of utilities for developers.}
|
16
|
+
gem.description = %q{A command line manager and a collection of utilities for developers.}
|
17
17
|
|
18
18
|
gem.rubyforge_project = "bovem"
|
19
19
|
gem.files = `git ls-files`.split("\n")
|
@@ -23,6 +23,6 @@ Gem::Specification.new do |gem|
|
|
23
23
|
|
24
24
|
gem.required_ruby_version = ">= 1.9.3"
|
25
25
|
|
26
|
-
gem.add_dependency("lazier", "~> 3.3.
|
26
|
+
gem.add_dependency("lazier", "~> 3.3.5")
|
27
27
|
gem.add_dependency("open4", "~> 1.3.0")
|
28
28
|
end
|
data/doc/Bovem.html
CHANGED
@@ -6,7 +6,7 @@
|
|
6
6
|
<title>
|
7
7
|
Module: Bovem
|
8
8
|
|
9
|
-
— Documentation by YARD 0.8.
|
9
|
+
— Documentation by YARD 0.8.7
|
10
10
|
|
11
11
|
</title>
|
12
12
|
|
@@ -80,7 +80,7 @@
|
|
80
80
|
|
81
81
|
<dt class="r1 last">Defined in:</dt>
|
82
82
|
<dd class="r1 last">lib/bovem/shell.rb<span class="defines">,<br />
|
83
|
-
lib/bovem/errors.rb,<br /> lib/bovem/logger.rb,<br /> lib/bovem/console.rb,<br /> lib/bovem/version.rb,<br /> lib/bovem/configuration.rb</span>
|
83
|
+
lib/bovem/parser.rb,<br /> lib/bovem/option.rb,<br /> lib/bovem/errors.rb,<br /> lib/bovem/logger.rb,<br /> lib/bovem/command.rb,<br /> lib/bovem/console.rb,<br /> lib/bovem/version.rb,<br /> lib/bovem/localizer.rb,<br /> lib/bovem/application.rb,<br /> lib/bovem/configuration.rb</span>
|
84
84
|
</dd>
|
85
85
|
|
86
86
|
</dl>
|
@@ -101,11 +101,11 @@ Licensed under the MIT license, which can be found at http://www.opensource.org/
|
|
101
101
|
<p class="children">
|
102
102
|
|
103
103
|
|
104
|
-
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Bovem/ConsoleMethods.html" title="Bovem::ConsoleMethods (module)">ConsoleMethods</a></span>, <span class='object_link'><a href="Bovem/Errors.html" title="Bovem::Errors (module)">Errors</a></span>, <span class='object_link'><a href="Bovem/ShellMethods.html" title="Bovem::ShellMethods (module)">ShellMethods</a></span>, <span class='object_link'><a href="Bovem/Version.html" title="Bovem::Version (module)">Version</a></span>
|
104
|
+
<strong class="modules">Modules:</strong> <span class='object_link'><a href="Bovem/CommandMethods.html" title="Bovem::CommandMethods (module)">CommandMethods</a></span>, <span class='object_link'><a href="Bovem/ConsoleMethods.html" title="Bovem::ConsoleMethods (module)">ConsoleMethods</a></span>, <span class='object_link'><a href="Bovem/Errors.html" title="Bovem::Errors (module)">Errors</a></span>, <span class='object_link'><a href="Bovem/ParserMethods.html" title="Bovem::ParserMethods (module)">ParserMethods</a></span>, <span class='object_link'><a href="Bovem/ShellMethods.html" title="Bovem::ShellMethods (module)">ShellMethods</a></span>, <span class='object_link'><a href="Bovem/Version.html" title="Bovem::Version (module)">Version</a></span>
|
105
105
|
|
106
106
|
|
107
107
|
|
108
|
-
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Bovem/Configuration.html" title="Bovem::Configuration (class)">Configuration</a></span>, <span class='object_link'><a href="Bovem/Console.html" title="Bovem::Console (class)">Console</a></span>, <span class='object_link'><a href="Bovem/Logger.html" title="Bovem::Logger (class)">Logger</a></span>, <span class='object_link'><a href="Bovem/Shell.html" title="Bovem::Shell (class)">Shell</a></span>
|
108
|
+
<strong class="classes">Classes:</strong> <span class='object_link'><a href="Bovem/Application.html" title="Bovem::Application (class)">Application</a></span>, <span class='object_link'><a href="Bovem/Command.html" title="Bovem::Command (class)">Command</a></span>, <span class='object_link'><a href="Bovem/Configuration.html" title="Bovem::Configuration (class)">Configuration</a></span>, <span class='object_link'><a href="Bovem/Console.html" title="Bovem::Console (class)">Console</a></span>, <span class='object_link'><a href="Bovem/Localizer.html" title="Bovem::Localizer (class)">Localizer</a></span>, <span class='object_link'><a href="Bovem/Logger.html" title="Bovem::Logger (class)">Logger</a></span>, <span class='object_link'><a href="Bovem/Option.html" title="Bovem::Option (class)">Option</a></span>, <span class='object_link'><a href="Bovem/Parser.html" title="Bovem::Parser (class)">Parser</a></span>, <span class='object_link'><a href="Bovem/Shell.html" title="Bovem::Shell (class)">Shell</a></span>
|
109
109
|
|
110
110
|
|
111
111
|
</p>
|
@@ -114,6 +114,25 @@ Licensed under the MIT license, which can be found at http://www.opensource.org/
|
|
114
114
|
|
115
115
|
<dl class="constants">
|
116
116
|
|
117
|
+
<dt id="OPTION_TYPES-constant" class="">OPTION_TYPES =
|
118
|
+
<div class="docstring">
|
119
|
+
<div class="discussion">
|
120
|
+
<p>List of valid option types.</p>
|
121
|
+
|
122
|
+
<p>Values are the default values for that type.</p>
|
123
|
+
|
124
|
+
<p>For any unknown type, the default value is <code>false</code>, it means that any unknown type is managed as a Boolean value with no argument.</p>
|
125
|
+
|
126
|
+
|
127
|
+
</div>
|
128
|
+
</div>
|
129
|
+
<div class="tags">
|
130
|
+
|
131
|
+
|
132
|
+
</div>
|
133
|
+
</dt>
|
134
|
+
<dd><pre class="code"><span class='lbrace'>{</span><span class='const'>String</span> <span class='op'>=></span> <span class='tstring'><span class='tstring_beg'>"</span><span class='tstring_end'>"</span></span><span class='comma'>,</span> <span class='const'>Integer</span> <span class='op'>=></span> <span class='int'>0</span><span class='comma'>,</span> <span class='const'>Float</span> <span class='op'>=></span> <span class='float'>0.0</span><span class='comma'>,</span> <span class='const'>Array</span> <span class='op'>=></span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rbrace'>}</span></pre></dd>
|
135
|
+
|
117
136
|
<dt id="TERM_COLORS-constant" class="">TERM_COLORS =
|
118
137
|
<div class="docstring">
|
119
138
|
<div class="discussion">
|
@@ -158,9 +177,9 @@ Licensed under the MIT license, which can be found at http://www.opensource.org/
|
|
158
177
|
</div>
|
159
178
|
|
160
179
|
<div id="footer">
|
161
|
-
Generated on Sat Aug 3
|
180
|
+
Generated on Sat Aug 3 13:50:14 2013 by
|
162
181
|
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
163
|
-
0.8.
|
182
|
+
0.8.7 (ruby-2.0.0).
|
164
183
|
</div>
|
165
184
|
|
166
185
|
</body>
|
@@ -0,0 +1,3057 @@
|
|
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 http-equiv="Content-Type" content="text/html; charset=utf-8" />
|
6
|
+
<title>
|
7
|
+
Class: Bovem::Application
|
8
|
+
|
9
|
+
— Documentation by YARD 0.8.7
|
10
|
+
|
11
|
+
</title>
|
12
|
+
|
13
|
+
<link rel="stylesheet" href="../css/style.css" type="text/css" charset="utf-8" />
|
14
|
+
|
15
|
+
<link rel="stylesheet" href="../css/common.css" type="text/css" charset="utf-8" />
|
16
|
+
|
17
|
+
<script type="text/javascript" charset="utf-8">
|
18
|
+
hasFrames = window.top.frames.main ? true : false;
|
19
|
+
relpath = '../';
|
20
|
+
framesUrl = "../frames.html#!" + escape(window.location.href);
|
21
|
+
</script>
|
22
|
+
|
23
|
+
|
24
|
+
<script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
|
25
|
+
|
26
|
+
<script type="text/javascript" charset="utf-8" src="../js/app.js"></script>
|
27
|
+
|
28
|
+
|
29
|
+
</head>
|
30
|
+
<body>
|
31
|
+
<div id="header">
|
32
|
+
<div id="menu">
|
33
|
+
|
34
|
+
<a href="../_index.html">Index (A)</a> »
|
35
|
+
<span class='title'><span class='object_link'><a href="../Bovem.html" title="Bovem (module)">Bovem</a></span></span>
|
36
|
+
»
|
37
|
+
<span class="title">Application</span>
|
38
|
+
|
39
|
+
|
40
|
+
<div class="noframes"><span class="title">(</span><a href="." target="_top">no frames</a><span class="title">)</span></div>
|
41
|
+
</div>
|
42
|
+
|
43
|
+
<div id="search">
|
44
|
+
|
45
|
+
<a class="full_list_link" id="class_list_link"
|
46
|
+
href="../class_list.html">
|
47
|
+
Class List
|
48
|
+
</a>
|
49
|
+
|
50
|
+
<a class="full_list_link" id="method_list_link"
|
51
|
+
href="../method_list.html">
|
52
|
+
Method List
|
53
|
+
</a>
|
54
|
+
|
55
|
+
<a class="full_list_link" id="file_list_link"
|
56
|
+
href="../file_list.html">
|
57
|
+
File List
|
58
|
+
</a>
|
59
|
+
|
60
|
+
</div>
|
61
|
+
<div class="clear"></div>
|
62
|
+
</div>
|
63
|
+
|
64
|
+
<iframe id="search_frame"></iframe>
|
65
|
+
|
66
|
+
<div id="content"><h1>Class: Bovem::Application
|
67
|
+
|
68
|
+
|
69
|
+
|
70
|
+
</h1>
|
71
|
+
|
72
|
+
<dl class="box">
|
73
|
+
|
74
|
+
<dt class="r1">Inherits:</dt>
|
75
|
+
<dd class="r1">
|
76
|
+
<span class="inheritName"><span class='object_link'><a href="Command.html" title="Bovem::Command (class)">Command</a></span></span>
|
77
|
+
|
78
|
+
<ul class="fullTree">
|
79
|
+
<li>Object</li>
|
80
|
+
|
81
|
+
<li class="next"><span class='object_link'><a href="Command.html" title="Bovem::Command (class)">Command</a></span></li>
|
82
|
+
|
83
|
+
<li class="next">Bovem::Application</li>
|
84
|
+
|
85
|
+
</ul>
|
86
|
+
<a href="#" class="inheritanceTree">show all</a>
|
87
|
+
|
88
|
+
</dd>
|
89
|
+
|
90
|
+
|
91
|
+
|
92
|
+
|
93
|
+
|
94
|
+
|
95
|
+
|
96
|
+
|
97
|
+
|
98
|
+
<dt class="r2 last">Defined in:</dt>
|
99
|
+
<dd class="r2 last">lib/bovem/application.rb</dd>
|
100
|
+
|
101
|
+
</dl>
|
102
|
+
<div class="clear"></div>
|
103
|
+
|
104
|
+
<h2>Overview</h2><div class="docstring">
|
105
|
+
<div class="discussion">
|
106
|
+
<p>This is the main class for a Bovem application.</p>
|
107
|
+
|
108
|
+
<p>Basically is the same of a command, but it adds support for application version.</p>
|
109
|
+
|
110
|
+
|
111
|
+
</div>
|
112
|
+
</div>
|
113
|
+
<div class="tags">
|
114
|
+
|
115
|
+
|
116
|
+
</div>
|
117
|
+
|
118
|
+
|
119
|
+
|
120
|
+
<h2>Instance Attribute Summary <small>(<a href="#" class="summary_toggle">collapse</a>)</small></h2>
|
121
|
+
<ul class="summary">
|
122
|
+
|
123
|
+
<li class="public ">
|
124
|
+
<span class="summary_signature">
|
125
|
+
|
126
|
+
<a href="#console-instance_method" title="#console (instance method)">- (Bovem::Console) <strong>console</strong> </a>
|
127
|
+
|
128
|
+
|
129
|
+
|
130
|
+
</span>
|
131
|
+
|
132
|
+
|
133
|
+
|
134
|
+
|
135
|
+
|
136
|
+
|
137
|
+
|
138
|
+
|
139
|
+
|
140
|
+
|
141
|
+
|
142
|
+
|
143
|
+
<span class="summary_desc"><div class='inline'><p>A console helper.</p>
|
144
|
+
</div></span>
|
145
|
+
|
146
|
+
</li>
|
147
|
+
|
148
|
+
|
149
|
+
<li class="public ">
|
150
|
+
<span class="summary_signature">
|
151
|
+
|
152
|
+
<a href="#output_commands-instance_method" title="#output_commands (instance method)">- (Boolean) <strong>output_commands</strong> </a>
|
153
|
+
|
154
|
+
|
155
|
+
|
156
|
+
</span>
|
157
|
+
|
158
|
+
|
159
|
+
|
160
|
+
|
161
|
+
|
162
|
+
|
163
|
+
|
164
|
+
|
165
|
+
|
166
|
+
|
167
|
+
|
168
|
+
|
169
|
+
<span class="summary_desc"><div class='inline'><p>If to show the output of the commands run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
170
|
+
</div></span>
|
171
|
+
|
172
|
+
</li>
|
173
|
+
|
174
|
+
|
175
|
+
<li class="public ">
|
176
|
+
<span class="summary_signature">
|
177
|
+
|
178
|
+
<a href="#shell-instance_method" title="#shell (instance method)">- (Bovem::Shell) <strong>shell</strong> </a>
|
179
|
+
|
180
|
+
|
181
|
+
|
182
|
+
</span>
|
183
|
+
|
184
|
+
|
185
|
+
|
186
|
+
|
187
|
+
|
188
|
+
|
189
|
+
|
190
|
+
|
191
|
+
|
192
|
+
|
193
|
+
|
194
|
+
|
195
|
+
<span class="summary_desc"><div class='inline'><p>A shell helper.</p>
|
196
|
+
</div></span>
|
197
|
+
|
198
|
+
</li>
|
199
|
+
|
200
|
+
|
201
|
+
<li class="public ">
|
202
|
+
<span class="summary_signature">
|
203
|
+
|
204
|
+
<a href="#show_commands-instance_method" title="#show_commands (instance method)">- (Boolean) <strong>show_commands</strong> </a>
|
205
|
+
|
206
|
+
|
207
|
+
|
208
|
+
</span>
|
209
|
+
|
210
|
+
|
211
|
+
|
212
|
+
|
213
|
+
|
214
|
+
|
215
|
+
|
216
|
+
|
217
|
+
|
218
|
+
|
219
|
+
|
220
|
+
|
221
|
+
<span class="summary_desc"><div class='inline'><p>If to show command lines run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
222
|
+
</div></span>
|
223
|
+
|
224
|
+
</li>
|
225
|
+
|
226
|
+
|
227
|
+
<li class="public ">
|
228
|
+
<span class="summary_signature">
|
229
|
+
|
230
|
+
<a href="#skip_commands-instance_method" title="#skip_commands (instance method)">- (Boolean) <strong>skip_commands</strong> </a>
|
231
|
+
|
232
|
+
|
233
|
+
|
234
|
+
</span>
|
235
|
+
|
236
|
+
|
237
|
+
|
238
|
+
|
239
|
+
|
240
|
+
|
241
|
+
|
242
|
+
|
243
|
+
|
244
|
+
|
245
|
+
|
246
|
+
|
247
|
+
<span class="summary_desc"><div class='inline'><p>If to skip commands run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
248
|
+
</div></span>
|
249
|
+
|
250
|
+
</li>
|
251
|
+
|
252
|
+
|
253
|
+
<li class="public ">
|
254
|
+
<span class="summary_signature">
|
255
|
+
|
256
|
+
<a href="#version-instance_method" title="#version (instance method)">- (String|nil) <strong>version</strong>(value = nil) </a>
|
257
|
+
|
258
|
+
|
259
|
+
|
260
|
+
</span>
|
261
|
+
|
262
|
+
|
263
|
+
|
264
|
+
|
265
|
+
|
266
|
+
|
267
|
+
|
268
|
+
|
269
|
+
|
270
|
+
|
271
|
+
|
272
|
+
|
273
|
+
<span class="summary_desc"><div class='inline'><p>Reads and optionally sets the version of this application.</p>
|
274
|
+
</div></span>
|
275
|
+
|
276
|
+
</li>
|
277
|
+
|
278
|
+
|
279
|
+
</ul>
|
280
|
+
|
281
|
+
|
282
|
+
|
283
|
+
|
284
|
+
|
285
|
+
<h3 class="inherited">Attributes inherited from <span class='object_link'><a href="Command.html" title="Bovem::Command (class)">Command</a></span></h3>
|
286
|
+
<p class="inherited"><span class='object_link'><a href="Command.html#action-instance_method" title="Bovem::Command#action (method)">#action</a></span>, <span class='object_link'><a href="Command.html#after-instance_method" title="Bovem::Command#after (method)">#after</a></span>, <span class='object_link'><a href="Command.html#application-instance_method" title="Bovem::Command#application (method)">#application</a></span>, <span class='object_link'><a href="Command.html#arguments-instance_method" title="Bovem::Command#arguments (method)">#arguments</a></span>, <span class='object_link'><a href="Command.html#banner-instance_method" title="Bovem::Command#banner (method)">#banner</a></span>, <span class='object_link'><a href="Command.html#before-instance_method" title="Bovem::Command#before (method)">#before</a></span>, <span class='object_link'><a href="Command.html#commands-instance_method" title="Bovem::Command#commands (method)">#commands</a></span>, <span class='object_link'><a href="Command.html#description-instance_method" title="Bovem::Command#description (method)">#description</a></span>, <span class='object_link'><a href="Command.html#name-instance_method" title="Bovem::Command#name (method)">#name</a></span>, <span class='object_link'><a href="Command.html#options-instance_method" title="Bovem::Command#options (method)">#options</a></span>, <span class='object_link'><a href="Command.html#parent-instance_method" title="Bovem::Command#parent (method)">#parent</a></span>, <span class='object_link'><a href="Command.html#synopsis-instance_method" title="Bovem::Command#synopsis (method)">#synopsis</a></span></p>
|
287
|
+
|
288
|
+
|
289
|
+
|
290
|
+
<h3 class="inherited">Attributes included from <span class='object_link'><a href="CommandMethods/Children.html" title="Bovem::CommandMethods::Children (module)">CommandMethods::Children</a></span></h3>
|
291
|
+
<p class="inherited"><span class='object_link'><a href="CommandMethods/Children.html#commands-instance_method" title="Bovem::CommandMethods::Children#commands (method)">#commands</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#options-instance_method" title="Bovem::CommandMethods::Children#options (method)">#options</a></span></p>
|
292
|
+
|
293
|
+
|
294
|
+
|
295
|
+
<h2>
|
296
|
+
Class Method Summary
|
297
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
298
|
+
</h2>
|
299
|
+
|
300
|
+
<ul class="summary">
|
301
|
+
|
302
|
+
<li class="public ">
|
303
|
+
<span class="summary_signature">
|
304
|
+
|
305
|
+
<a href="#create-class_method" title="create (class method)">+ (Application) <strong>create</strong>(options = {}, &block) </a>
|
306
|
+
|
307
|
+
|
308
|
+
|
309
|
+
</span>
|
310
|
+
|
311
|
+
|
312
|
+
|
313
|
+
|
314
|
+
|
315
|
+
|
316
|
+
|
317
|
+
|
318
|
+
|
319
|
+
<span class="summary_desc"><div class='inline'><p>Initializes a new Bovem application.</p>
|
320
|
+
</div></span>
|
321
|
+
|
322
|
+
</li>
|
323
|
+
|
324
|
+
|
325
|
+
</ul>
|
326
|
+
|
327
|
+
<h2>
|
328
|
+
Instance Method Summary
|
329
|
+
<small>(<a href="#" class="summary_toggle">collapse</a>)</small>
|
330
|
+
</h2>
|
331
|
+
|
332
|
+
<ul class="summary">
|
333
|
+
|
334
|
+
<li class="public ">
|
335
|
+
<span class="summary_signature">
|
336
|
+
|
337
|
+
<a href="#command_help-instance_method" title="#command_help (instance method)">- (Object) <strong>command_help</strong>(command) </a>
|
338
|
+
|
339
|
+
|
340
|
+
|
341
|
+
</span>
|
342
|
+
|
343
|
+
|
344
|
+
|
345
|
+
|
346
|
+
|
347
|
+
|
348
|
+
|
349
|
+
|
350
|
+
|
351
|
+
<span class="summary_desc"><div class='inline'><p>Shows a help about a command.</p>
|
352
|
+
</div></span>
|
353
|
+
|
354
|
+
</li>
|
355
|
+
|
356
|
+
|
357
|
+
<li class="public ">
|
358
|
+
<span class="summary_signature">
|
359
|
+
|
360
|
+
<a href="#executable_name-instance_method" title="#executable_name (instance method)">- (String) <strong>executable_name</strong> </a>
|
361
|
+
|
362
|
+
|
363
|
+
|
364
|
+
</span>
|
365
|
+
|
366
|
+
|
367
|
+
|
368
|
+
|
369
|
+
|
370
|
+
|
371
|
+
|
372
|
+
|
373
|
+
|
374
|
+
<span class="summary_desc"><div class='inline'><p>The name of the current executable.</p>
|
375
|
+
</div></span>
|
376
|
+
|
377
|
+
</li>
|
378
|
+
|
379
|
+
|
380
|
+
<li class="public ">
|
381
|
+
<span class="summary_signature">
|
382
|
+
|
383
|
+
<a href="#execute-instance_method" title="#execute (instance method)">- (Object) <strong>execute</strong>(args = nil) </a>
|
384
|
+
|
385
|
+
|
386
|
+
|
387
|
+
</span>
|
388
|
+
|
389
|
+
|
390
|
+
|
391
|
+
|
392
|
+
|
393
|
+
|
394
|
+
|
395
|
+
|
396
|
+
|
397
|
+
<span class="summary_desc"><div class='inline'><p>Executes this application.</p>
|
398
|
+
</div></span>
|
399
|
+
|
400
|
+
</li>
|
401
|
+
|
402
|
+
|
403
|
+
<li class="public ">
|
404
|
+
<span class="summary_signature">
|
405
|
+
|
406
|
+
<a href="#help_option-instance_method" title="#help_option (instance method)">- (Object) <strong>help_option</strong> </a>
|
407
|
+
|
408
|
+
|
409
|
+
|
410
|
+
</span>
|
411
|
+
|
412
|
+
|
413
|
+
|
414
|
+
|
415
|
+
|
416
|
+
|
417
|
+
|
418
|
+
|
419
|
+
|
420
|
+
<span class="summary_desc"><div class='inline'><p>Adds a help command and a help option to this application.</p>
|
421
|
+
</div></span>
|
422
|
+
|
423
|
+
</li>
|
424
|
+
|
425
|
+
|
426
|
+
<li class="public ">
|
427
|
+
<span class="summary_signature">
|
428
|
+
|
429
|
+
<a href="#initialize-instance_method" title="#initialize (instance method)">- (Application) <strong>initialize</strong>(options = {}, &block) </a>
|
430
|
+
|
431
|
+
|
432
|
+
|
433
|
+
</span>
|
434
|
+
|
435
|
+
|
436
|
+
<span class="note title constructor">constructor</span>
|
437
|
+
|
438
|
+
|
439
|
+
|
440
|
+
|
441
|
+
|
442
|
+
|
443
|
+
|
444
|
+
|
445
|
+
<span class="summary_desc"><div class='inline'><p>Creates a new application.</p>
|
446
|
+
</div></span>
|
447
|
+
|
448
|
+
</li>
|
449
|
+
|
450
|
+
|
451
|
+
<li class="public ">
|
452
|
+
<span class="summary_signature">
|
453
|
+
|
454
|
+
<a href="#run-instance_method" title="#run (instance method)">- (Hash) <strong>run</strong>(command, message = nil, show_exit = true, fatal = true) </a>
|
455
|
+
|
456
|
+
|
457
|
+
|
458
|
+
</span>
|
459
|
+
|
460
|
+
|
461
|
+
|
462
|
+
|
463
|
+
|
464
|
+
|
465
|
+
|
466
|
+
|
467
|
+
|
468
|
+
<span class="summary_desc"><div class='inline'><p>Runs a command into the shell.</p>
|
469
|
+
</div></span>
|
470
|
+
|
471
|
+
</li>
|
472
|
+
|
473
|
+
|
474
|
+
</ul>
|
475
|
+
|
476
|
+
|
477
|
+
|
478
|
+
|
479
|
+
|
480
|
+
|
481
|
+
|
482
|
+
|
483
|
+
|
484
|
+
|
485
|
+
|
486
|
+
<h3 class="inherited">Methods inherited from <span class='object_link'><a href="Command.html" title="Bovem::Command (class)">Command</a></span></h3>
|
487
|
+
<p class="inherited"><span class='object_link'><a href="Command.html#full_name-instance_method" title="Bovem::Command#full_name (method)">#full_name</a></span>, <span class='object_link'><a href="Command.html#has_banner%3F-instance_method" title="Bovem::Command#has_banner? (method)">#has_banner?</a></span>, <span class='object_link'><a href="Command.html#has_description%3F-instance_method" title="Bovem::Command#has_description? (method)">#has_description?</a></span>, <span class='object_link'><a href="Command.html#is_application%3F-instance_method" title="Bovem::Command#is_application? (method)">#is_application?</a></span>, <span class='object_link'><a href="Command.html#setup_with-instance_method" title="Bovem::Command#setup_with (method)">#setup_with</a></span></p>
|
488
|
+
|
489
|
+
|
490
|
+
|
491
|
+
|
492
|
+
|
493
|
+
|
494
|
+
|
495
|
+
|
496
|
+
|
497
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="CommandMethods/Children.html" title="Bovem::CommandMethods::Children (module)">CommandMethods::Children</a></span></h3>
|
498
|
+
<p class="inherited"><span class='object_link'><a href="CommandMethods/Children.html#argument-instance_method" title="Bovem::CommandMethods::Children#argument (method)">#argument</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#arguments-instance_method" title="Bovem::CommandMethods::Children#arguments (method)">#arguments</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#clear_commands-instance_method" title="Bovem::CommandMethods::Children#clear_commands (method)">#clear_commands</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#clear_options-instance_method" title="Bovem::CommandMethods::Children#clear_options (method)">#clear_options</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#command-instance_method" title="Bovem::CommandMethods::Children#command (method)">#command</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#get_options-instance_method" title="Bovem::CommandMethods::Children#get_options (method)">#get_options</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#has_commands%3F-instance_method" title="Bovem::CommandMethods::Children#has_commands? (method)">#has_commands?</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#has_options%3F-instance_method" title="Bovem::CommandMethods::Children#has_options? (method)">#has_options?</a></span>, <span class='object_link'><a href="CommandMethods/Children.html#option-instance_method" title="Bovem::CommandMethods::Children#option (method)">#option</a></span></p>
|
499
|
+
|
500
|
+
|
501
|
+
|
502
|
+
|
503
|
+
|
504
|
+
|
505
|
+
|
506
|
+
|
507
|
+
|
508
|
+
<h3 class="inherited">Methods included from <span class='object_link'><a href="CommandMethods/Help.html" title="Bovem::CommandMethods::Help (module)">CommandMethods::Help</a></span></h3>
|
509
|
+
<p class="inherited"><span class='object_link'><a href="CommandMethods/Help.html#show_help-instance_method" title="Bovem::CommandMethods::Help#show_help (method)">#show_help</a></span></p>
|
510
|
+
|
511
|
+
<div id="constructor_details" class="method_details_list">
|
512
|
+
<h2>Constructor Details</h2>
|
513
|
+
|
514
|
+
<div class="method_details first">
|
515
|
+
<h3 class="signature first" id="initialize-instance_method">
|
516
|
+
|
517
|
+
- (<tt><span class='object_link'><a href="" title="Bovem::Application (class)">Application</a></span></tt>) <strong>initialize</strong>(options = {}, &block)
|
518
|
+
|
519
|
+
|
520
|
+
|
521
|
+
|
522
|
+
|
523
|
+
</h3><div class="docstring">
|
524
|
+
<div class="discussion">
|
525
|
+
<p>Creates a new application.</p>
|
526
|
+
|
527
|
+
|
528
|
+
</div>
|
529
|
+
</div>
|
530
|
+
<div class="tags">
|
531
|
+
<p class="tag_title">Parameters:</p>
|
532
|
+
<ul class="param">
|
533
|
+
|
534
|
+
<li>
|
535
|
+
|
536
|
+
<span class='name'>options</span>
|
537
|
+
|
538
|
+
|
539
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
540
|
+
|
541
|
+
|
542
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
543
|
+
|
544
|
+
|
545
|
+
—
|
546
|
+
<div class='inline'><p>The settings to initialize the application with.</p>
|
547
|
+
</div>
|
548
|
+
|
549
|
+
</li>
|
550
|
+
|
551
|
+
</ul>
|
552
|
+
|
553
|
+
|
554
|
+
</div><table class="source_code">
|
555
|
+
<tr>
|
556
|
+
<td>
|
557
|
+
<pre class="lines">
|
558
|
+
|
559
|
+
|
560
|
+
55
|
561
|
+
56
|
562
|
+
57
|
563
|
+
58
|
564
|
+
59
|
565
|
+
60
|
566
|
+
61
|
567
|
+
62
|
568
|
+
63
|
569
|
+
64
|
570
|
+
65</pre>
|
571
|
+
</td>
|
572
|
+
<td>
|
573
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 55</span>
|
574
|
+
|
575
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
576
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
577
|
+
|
578
|
+
<span class='ivar'>@shell</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Shell</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
579
|
+
<span class='ivar'>@console</span> <span class='op'>=</span> <span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span>
|
580
|
+
<span class='ivar'>@skip_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
581
|
+
<span class='ivar'>@show_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
582
|
+
<span class='ivar'>@output_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
583
|
+
|
584
|
+
<span class='id identifier rubyid_help_option'>help_option</span>
|
585
|
+
<span class='kw'>end</span></pre>
|
586
|
+
</td>
|
587
|
+
</tr>
|
588
|
+
</table>
|
589
|
+
</div>
|
590
|
+
|
591
|
+
</div>
|
592
|
+
|
593
|
+
<div id="instance_attr_details" class="attr_details">
|
594
|
+
<h2>Instance Attribute Details</h2>
|
595
|
+
|
596
|
+
|
597
|
+
<span id="console=-instance_method"></span>
|
598
|
+
<div class="method_details first">
|
599
|
+
<h3 class="signature first" id="console-instance_method">
|
600
|
+
|
601
|
+
- (<tt><span class='object_link'><a href="Console.html" title="Bovem::Console (class)">Bovem::Console</a></span></tt>) <strong>console</strong>
|
602
|
+
|
603
|
+
|
604
|
+
|
605
|
+
|
606
|
+
|
607
|
+
</h3><div class="docstring">
|
608
|
+
<div class="discussion">
|
609
|
+
<p>Returns A console helper.</p>
|
610
|
+
|
611
|
+
|
612
|
+
</div>
|
613
|
+
</div>
|
614
|
+
<div class="tags">
|
615
|
+
|
616
|
+
<p class="tag_title">Returns:</p>
|
617
|
+
<ul class="return">
|
618
|
+
|
619
|
+
<li>
|
620
|
+
|
621
|
+
|
622
|
+
<span class='type'>(<tt><span class='object_link'><a href="Console.html" title="Bovem::Console (class)">Bovem::Console</a></span></tt>)</span>
|
623
|
+
|
624
|
+
|
625
|
+
|
626
|
+
—
|
627
|
+
<div class='inline'><p>A console helper.</p>
|
628
|
+
</div>
|
629
|
+
|
630
|
+
</li>
|
631
|
+
|
632
|
+
</ul>
|
633
|
+
|
634
|
+
</div><table class="source_code">
|
635
|
+
<tr>
|
636
|
+
<td>
|
637
|
+
<pre class="lines">
|
638
|
+
|
639
|
+
|
640
|
+
24
|
641
|
+
25
|
642
|
+
26
|
643
|
+
27
|
644
|
+
28
|
645
|
+
29
|
646
|
+
30
|
647
|
+
31
|
648
|
+
32
|
649
|
+
33
|
650
|
+
34
|
651
|
+
35
|
652
|
+
36
|
653
|
+
37
|
654
|
+
38
|
655
|
+
39
|
656
|
+
40
|
657
|
+
41
|
658
|
+
42
|
659
|
+
43
|
660
|
+
44
|
661
|
+
45
|
662
|
+
46
|
663
|
+
47
|
664
|
+
48
|
665
|
+
49
|
666
|
+
50
|
667
|
+
51
|
668
|
+
52
|
669
|
+
53
|
670
|
+
54
|
671
|
+
55
|
672
|
+
56
|
673
|
+
57
|
674
|
+
58
|
675
|
+
59
|
676
|
+
60
|
677
|
+
61
|
678
|
+
62
|
679
|
+
63
|
680
|
+
64
|
681
|
+
65
|
682
|
+
66
|
683
|
+
67
|
684
|
+
68
|
685
|
+
69
|
686
|
+
70
|
687
|
+
71
|
688
|
+
72
|
689
|
+
73
|
690
|
+
74
|
691
|
+
75
|
692
|
+
76
|
693
|
+
77
|
694
|
+
78
|
695
|
+
79
|
696
|
+
80
|
697
|
+
81
|
698
|
+
82
|
699
|
+
83
|
700
|
+
84
|
701
|
+
85
|
702
|
+
86
|
703
|
+
87
|
704
|
+
88
|
705
|
+
89
|
706
|
+
90
|
707
|
+
91
|
708
|
+
92
|
709
|
+
93
|
710
|
+
94
|
711
|
+
95
|
712
|
+
96
|
713
|
+
97
|
714
|
+
98
|
715
|
+
99
|
716
|
+
100
|
717
|
+
101
|
718
|
+
102
|
719
|
+
103
|
720
|
+
104
|
721
|
+
105
|
722
|
+
106
|
723
|
+
107
|
724
|
+
108
|
725
|
+
109
|
726
|
+
110
|
727
|
+
111
|
728
|
+
112
|
729
|
+
113
|
730
|
+
114
|
731
|
+
115
|
732
|
+
116
|
733
|
+
117
|
734
|
+
118
|
735
|
+
119
|
736
|
+
120
|
737
|
+
121
|
738
|
+
122
|
739
|
+
123
|
740
|
+
124
|
741
|
+
125
|
742
|
+
126
|
743
|
+
127
|
744
|
+
128
|
745
|
+
129
|
746
|
+
130
|
747
|
+
131
|
748
|
+
132
|
749
|
+
133
|
750
|
+
134
|
751
|
+
135
|
752
|
+
136
|
753
|
+
137
|
754
|
+
138
|
755
|
+
139
|
756
|
+
140
|
757
|
+
141
|
758
|
+
142
|
759
|
+
143
|
760
|
+
144
|
761
|
+
145
|
762
|
+
146
|
763
|
+
147
|
764
|
+
148
|
765
|
+
149
|
766
|
+
150
|
767
|
+
151
|
768
|
+
152
|
769
|
+
153
|
770
|
+
154
|
771
|
+
155
|
772
|
+
156
|
773
|
+
157</pre>
|
774
|
+
</td>
|
775
|
+
<td>
|
776
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 24</span>
|
777
|
+
|
778
|
+
<span class='kw'>class</span> <span class='const'>Application</span> <span class='op'><</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Command</span>
|
779
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:version</span>
|
780
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:shell</span>
|
781
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:console</span>
|
782
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:skip_commands</span>
|
783
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:show_commands</span>
|
784
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:output_commands</span>
|
785
|
+
|
786
|
+
<span class='comment'># Initializes a new Bovem application.
|
787
|
+
</span> <span class='comment'>#
|
788
|
+
</span> <span class='comment'># In options, you can override the command line arguments with `:__args__`, and you can skip execution by specifying `run: false`.
|
789
|
+
</span> <span class='comment'>#
|
790
|
+
</span> <span class='comment'># @see Command#setup_with
|
791
|
+
</span> <span class='comment'>#
|
792
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
793
|
+
</span> <span class='comment'># @return [Application] The created application.
|
794
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
795
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>Error</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Application</span><span class='comma'>,</span> <span class='symbol'>:missing_block</span><span class='comma'>,</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:missing_app_block</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_block_given?'>block_given?</span>
|
796
|
+
<span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
797
|
+
|
798
|
+
<span class='kw'>begin</span>
|
799
|
+
<span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
800
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
801
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
802
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
|
803
|
+
<span class='kw'>end</span>
|
804
|
+
<span class='kw'>end</span>
|
805
|
+
|
806
|
+
<span class='comment'># Creates a new application.
|
807
|
+
</span> <span class='comment'>#
|
808
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
809
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
810
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
811
|
+
|
812
|
+
<span class='ivar'>@shell</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Shell</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
813
|
+
<span class='ivar'>@console</span> <span class='op'>=</span> <span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span>
|
814
|
+
<span class='ivar'>@skip_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
815
|
+
<span class='ivar'>@show_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
816
|
+
<span class='ivar'>@output_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
817
|
+
|
818
|
+
<span class='id identifier rubyid_help_option'>help_option</span>
|
819
|
+
<span class='kw'>end</span>
|
820
|
+
|
821
|
+
<span class='comment'># Reads and optionally sets the version of this application.
|
822
|
+
</span> <span class='comment'>#
|
823
|
+
</span> <span class='comment'># @param value [String|nil] The new version of this application.
|
824
|
+
</span> <span class='comment'># @return [String|nil] The version of this application.
|
825
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
826
|
+
<span class='ivar'>@version</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
827
|
+
<span class='ivar'>@version</span>
|
828
|
+
<span class='kw'>end</span>
|
829
|
+
|
830
|
+
<span class='comment'># Executes this application.
|
831
|
+
</span> <span class='comment'>#
|
832
|
+
</span> <span class='comment'># @param args [Array] The command line to pass to this application. Defaults to `ARGV`.
|
833
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
834
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>||</span> <span class='const'>ARGV</span><span class='rparen'>)</span>
|
835
|
+
<span class='kw'>end</span>
|
836
|
+
|
837
|
+
<span class='comment'># Adds a help command and a help option to this application.
|
838
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_help_option'>help_option</span>
|
839
|
+
<span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='label'>description:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_command_description'>help_command_description</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
840
|
+
<span class='id identifier rubyid_action'>action</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_command'>command</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
841
|
+
<span class='kw'>end</span>
|
842
|
+
|
843
|
+
<span class='id identifier rubyid_option'>option</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_short_form'>help_option_short_form</span><span class='comma'>,</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_long_form'>help_option_long_form</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>help:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_message'>help_message</span><span class='rparen'>)</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_application'>application</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span> <span class='rbrace'>}</span>
|
844
|
+
<span class='kw'>end</span>
|
845
|
+
|
846
|
+
<span class='comment'># The name of the current executable.
|
847
|
+
</span> <span class='comment'>#
|
848
|
+
</span> <span class='comment'># @return [String] The name of the current executable.
|
849
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_executable_name'>executable_name</span>
|
850
|
+
<span class='gvar'>$0</span>
|
851
|
+
<span class='kw'>end</span>
|
852
|
+
|
853
|
+
<span class='comment'># Shows a help about a command.
|
854
|
+
</span> <span class='comment'>#
|
855
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
856
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
857
|
+
<span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>|</span>
|
858
|
+
<span class='comment'># Find the command across
|
859
|
+
</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_find_command'>find_command</span><span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
860
|
+
|
861
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='kw'>then</span>
|
862
|
+
<span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_commands'>commands</span><span class='lbracket'>[</span><span class='id identifier rubyid_next_command'>next_command</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
863
|
+
<span class='kw'>else</span>
|
864
|
+
<span class='kw'>break</span>
|
865
|
+
<span class='kw'>end</span>
|
866
|
+
<span class='kw'>end</span>
|
867
|
+
|
868
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span>
|
869
|
+
<span class='kw'>end</span>
|
870
|
+
|
871
|
+
<span class='comment'># Runs a command into the shell.
|
872
|
+
</span> <span class='comment'>#
|
873
|
+
</span> <span class='comment'># @param command [String] The string to run.
|
874
|
+
</span> <span class='comment'># @param message [String] A message to show before running.
|
875
|
+
</span> <span class='comment'># @param show_exit [Boolean] If show the exit status.
|
876
|
+
</span> <span class='comment'># @param fatal [Boolean] If quit in case of fatal errors.
|
877
|
+
</span> <span class='comment'># @return [Hash] An hash with `status` and `output` keys.
|
878
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span> <span class='op'>=</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span> <span class='op'>=</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
879
|
+
<span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>!</span><span class='ivar'>@skip_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span><span class='comma'>,</span> <span class='ivar'>@output_commands</span><span class='comma'>,</span> <span class='ivar'>@show_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span><span class='rparen'>)</span>
|
880
|
+
<span class='kw'>end</span>
|
881
|
+
|
882
|
+
<span class='id identifier rubyid_private'>private</span>
|
883
|
+
<span class='comment'># Setup options for application creation.
|
884
|
+
</span> <span class='comment'>#
|
885
|
+
</span> <span class='comment'># @param options [Hash] The options to setups.
|
886
|
+
</span> <span class='comment'># @return [Array] If to run the application, the arguments and the specified options.
|
887
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
888
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>name:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:default_application_name</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>parent:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>application:</span> <span class='kw'>nil</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='rparen'>)</span>
|
889
|
+
<span class='id identifier rubyid_run'>run</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:run</span><span class='rparen'>)</span>
|
890
|
+
<span class='lbracket'>[</span><span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_run'>run</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_run'>run</span> <span class='op'>:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:__args__</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span>
|
891
|
+
<span class='kw'>end</span>
|
892
|
+
|
893
|
+
<span class='comment'># Create the application.
|
894
|
+
</span> <span class='comment'>#
|
895
|
+
</span> <span class='comment'># @param run [Boolean ]If to run the application.
|
896
|
+
</span> <span class='comment'># @param args [Hash] The arguments to use for running.
|
897
|
+
</span> <span class='comment'># @param options [Hash] The options of the application.
|
898
|
+
</span> <span class='comment'># @return [Application] The new application.
|
899
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
900
|
+
<span class='id identifier rubyid_application'>application</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
901
|
+
<span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_application'>application</span> <span class='op'>&&</span> <span class='id identifier rubyid_run'>run</span>
|
902
|
+
<span class='id identifier rubyid_application'>application</span>
|
903
|
+
<span class='kw'>end</span>
|
904
|
+
|
905
|
+
<span class='comment'># Fetch a command list for showing help.
|
906
|
+
</span> <span class='comment'>#
|
907
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
908
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
909
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_arguments'>arguments</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_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='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:present?</span><span class='rparen'>)</span>
|
910
|
+
<span class='kw'>end</span>
|
911
|
+
<span class='kw'>end</span></pre>
|
912
|
+
</td>
|
913
|
+
</tr>
|
914
|
+
</table>
|
915
|
+
</div>
|
916
|
+
|
917
|
+
|
918
|
+
<span id="output_commands=-instance_method"></span>
|
919
|
+
<div class="method_details ">
|
920
|
+
<h3 class="signature " id="output_commands-instance_method">
|
921
|
+
|
922
|
+
- (<tt>Boolean</tt>) <strong>output_commands</strong>
|
923
|
+
|
924
|
+
|
925
|
+
|
926
|
+
|
927
|
+
|
928
|
+
</h3><div class="docstring">
|
929
|
+
<div class="discussion">
|
930
|
+
<p>Returns If to show the output of the commands run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
931
|
+
|
932
|
+
|
933
|
+
</div>
|
934
|
+
</div>
|
935
|
+
<div class="tags">
|
936
|
+
|
937
|
+
<p class="tag_title">Returns:</p>
|
938
|
+
<ul class="return">
|
939
|
+
|
940
|
+
<li>
|
941
|
+
|
942
|
+
|
943
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
944
|
+
|
945
|
+
|
946
|
+
|
947
|
+
—
|
948
|
+
<div class='inline'><p>If to show the output of the commands run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
949
|
+
</div>
|
950
|
+
|
951
|
+
</li>
|
952
|
+
|
953
|
+
</ul>
|
954
|
+
|
955
|
+
</div><table class="source_code">
|
956
|
+
<tr>
|
957
|
+
<td>
|
958
|
+
<pre class="lines">
|
959
|
+
|
960
|
+
|
961
|
+
24
|
962
|
+
25
|
963
|
+
26
|
964
|
+
27
|
965
|
+
28
|
966
|
+
29
|
967
|
+
30
|
968
|
+
31
|
969
|
+
32
|
970
|
+
33
|
971
|
+
34
|
972
|
+
35
|
973
|
+
36
|
974
|
+
37
|
975
|
+
38
|
976
|
+
39
|
977
|
+
40
|
978
|
+
41
|
979
|
+
42
|
980
|
+
43
|
981
|
+
44
|
982
|
+
45
|
983
|
+
46
|
984
|
+
47
|
985
|
+
48
|
986
|
+
49
|
987
|
+
50
|
988
|
+
51
|
989
|
+
52
|
990
|
+
53
|
991
|
+
54
|
992
|
+
55
|
993
|
+
56
|
994
|
+
57
|
995
|
+
58
|
996
|
+
59
|
997
|
+
60
|
998
|
+
61
|
999
|
+
62
|
1000
|
+
63
|
1001
|
+
64
|
1002
|
+
65
|
1003
|
+
66
|
1004
|
+
67
|
1005
|
+
68
|
1006
|
+
69
|
1007
|
+
70
|
1008
|
+
71
|
1009
|
+
72
|
1010
|
+
73
|
1011
|
+
74
|
1012
|
+
75
|
1013
|
+
76
|
1014
|
+
77
|
1015
|
+
78
|
1016
|
+
79
|
1017
|
+
80
|
1018
|
+
81
|
1019
|
+
82
|
1020
|
+
83
|
1021
|
+
84
|
1022
|
+
85
|
1023
|
+
86
|
1024
|
+
87
|
1025
|
+
88
|
1026
|
+
89
|
1027
|
+
90
|
1028
|
+
91
|
1029
|
+
92
|
1030
|
+
93
|
1031
|
+
94
|
1032
|
+
95
|
1033
|
+
96
|
1034
|
+
97
|
1035
|
+
98
|
1036
|
+
99
|
1037
|
+
100
|
1038
|
+
101
|
1039
|
+
102
|
1040
|
+
103
|
1041
|
+
104
|
1042
|
+
105
|
1043
|
+
106
|
1044
|
+
107
|
1045
|
+
108
|
1046
|
+
109
|
1047
|
+
110
|
1048
|
+
111
|
1049
|
+
112
|
1050
|
+
113
|
1051
|
+
114
|
1052
|
+
115
|
1053
|
+
116
|
1054
|
+
117
|
1055
|
+
118
|
1056
|
+
119
|
1057
|
+
120
|
1058
|
+
121
|
1059
|
+
122
|
1060
|
+
123
|
1061
|
+
124
|
1062
|
+
125
|
1063
|
+
126
|
1064
|
+
127
|
1065
|
+
128
|
1066
|
+
129
|
1067
|
+
130
|
1068
|
+
131
|
1069
|
+
132
|
1070
|
+
133
|
1071
|
+
134
|
1072
|
+
135
|
1073
|
+
136
|
1074
|
+
137
|
1075
|
+
138
|
1076
|
+
139
|
1077
|
+
140
|
1078
|
+
141
|
1079
|
+
142
|
1080
|
+
143
|
1081
|
+
144
|
1082
|
+
145
|
1083
|
+
146
|
1084
|
+
147
|
1085
|
+
148
|
1086
|
+
149
|
1087
|
+
150
|
1088
|
+
151
|
1089
|
+
152
|
1090
|
+
153
|
1091
|
+
154
|
1092
|
+
155
|
1093
|
+
156
|
1094
|
+
157</pre>
|
1095
|
+
</td>
|
1096
|
+
<td>
|
1097
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 24</span>
|
1098
|
+
|
1099
|
+
<span class='kw'>class</span> <span class='const'>Application</span> <span class='op'><</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Command</span>
|
1100
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:version</span>
|
1101
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:shell</span>
|
1102
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:console</span>
|
1103
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:skip_commands</span>
|
1104
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:show_commands</span>
|
1105
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:output_commands</span>
|
1106
|
+
|
1107
|
+
<span class='comment'># Initializes a new Bovem application.
|
1108
|
+
</span> <span class='comment'>#
|
1109
|
+
</span> <span class='comment'># In options, you can override the command line arguments with `:__args__`, and you can skip execution by specifying `run: false`.
|
1110
|
+
</span> <span class='comment'>#
|
1111
|
+
</span> <span class='comment'># @see Command#setup_with
|
1112
|
+
</span> <span class='comment'>#
|
1113
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
1114
|
+
</span> <span class='comment'># @return [Application] The created application.
|
1115
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1116
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>Error</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Application</span><span class='comma'>,</span> <span class='symbol'>:missing_block</span><span class='comma'>,</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:missing_app_block</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_block_given?'>block_given?</span>
|
1117
|
+
<span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1118
|
+
|
1119
|
+
<span class='kw'>begin</span>
|
1120
|
+
<span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1121
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
1122
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
1123
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
|
1124
|
+
<span class='kw'>end</span>
|
1125
|
+
<span class='kw'>end</span>
|
1126
|
+
|
1127
|
+
<span class='comment'># Creates a new application.
|
1128
|
+
</span> <span class='comment'>#
|
1129
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
1130
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1131
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1132
|
+
|
1133
|
+
<span class='ivar'>@shell</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Shell</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
1134
|
+
<span class='ivar'>@console</span> <span class='op'>=</span> <span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span>
|
1135
|
+
<span class='ivar'>@skip_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1136
|
+
<span class='ivar'>@show_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1137
|
+
<span class='ivar'>@output_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1138
|
+
|
1139
|
+
<span class='id identifier rubyid_help_option'>help_option</span>
|
1140
|
+
<span class='kw'>end</span>
|
1141
|
+
|
1142
|
+
<span class='comment'># Reads and optionally sets the version of this application.
|
1143
|
+
</span> <span class='comment'>#
|
1144
|
+
</span> <span class='comment'># @param value [String|nil] The new version of this application.
|
1145
|
+
</span> <span class='comment'># @return [String|nil] The version of this application.
|
1146
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
1147
|
+
<span class='ivar'>@version</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
1148
|
+
<span class='ivar'>@version</span>
|
1149
|
+
<span class='kw'>end</span>
|
1150
|
+
|
1151
|
+
<span class='comment'># Executes this application.
|
1152
|
+
</span> <span class='comment'>#
|
1153
|
+
</span> <span class='comment'># @param args [Array] The command line to pass to this application. Defaults to `ARGV`.
|
1154
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
1155
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>||</span> <span class='const'>ARGV</span><span class='rparen'>)</span>
|
1156
|
+
<span class='kw'>end</span>
|
1157
|
+
|
1158
|
+
<span class='comment'># Adds a help command and a help option to this application.
|
1159
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_help_option'>help_option</span>
|
1160
|
+
<span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='label'>description:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_command_description'>help_command_description</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
1161
|
+
<span class='id identifier rubyid_action'>action</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_command'>command</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
1162
|
+
<span class='kw'>end</span>
|
1163
|
+
|
1164
|
+
<span class='id identifier rubyid_option'>option</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_short_form'>help_option_short_form</span><span class='comma'>,</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_long_form'>help_option_long_form</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>help:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_message'>help_message</span><span class='rparen'>)</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_application'>application</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span> <span class='rbrace'>}</span>
|
1165
|
+
<span class='kw'>end</span>
|
1166
|
+
|
1167
|
+
<span class='comment'># The name of the current executable.
|
1168
|
+
</span> <span class='comment'>#
|
1169
|
+
</span> <span class='comment'># @return [String] The name of the current executable.
|
1170
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_executable_name'>executable_name</span>
|
1171
|
+
<span class='gvar'>$0</span>
|
1172
|
+
<span class='kw'>end</span>
|
1173
|
+
|
1174
|
+
<span class='comment'># Shows a help about a command.
|
1175
|
+
</span> <span class='comment'>#
|
1176
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
1177
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
1178
|
+
<span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>|</span>
|
1179
|
+
<span class='comment'># Find the command across
|
1180
|
+
</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_find_command'>find_command</span><span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1181
|
+
|
1182
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='kw'>then</span>
|
1183
|
+
<span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_commands'>commands</span><span class='lbracket'>[</span><span class='id identifier rubyid_next_command'>next_command</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
1184
|
+
<span class='kw'>else</span>
|
1185
|
+
<span class='kw'>break</span>
|
1186
|
+
<span class='kw'>end</span>
|
1187
|
+
<span class='kw'>end</span>
|
1188
|
+
|
1189
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span>
|
1190
|
+
<span class='kw'>end</span>
|
1191
|
+
|
1192
|
+
<span class='comment'># Runs a command into the shell.
|
1193
|
+
</span> <span class='comment'>#
|
1194
|
+
</span> <span class='comment'># @param command [String] The string to run.
|
1195
|
+
</span> <span class='comment'># @param message [String] A message to show before running.
|
1196
|
+
</span> <span class='comment'># @param show_exit [Boolean] If show the exit status.
|
1197
|
+
</span> <span class='comment'># @param fatal [Boolean] If quit in case of fatal errors.
|
1198
|
+
</span> <span class='comment'># @return [Hash] An hash with `status` and `output` keys.
|
1199
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span> <span class='op'>=</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span> <span class='op'>=</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
1200
|
+
<span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>!</span><span class='ivar'>@skip_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span><span class='comma'>,</span> <span class='ivar'>@output_commands</span><span class='comma'>,</span> <span class='ivar'>@show_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span><span class='rparen'>)</span>
|
1201
|
+
<span class='kw'>end</span>
|
1202
|
+
|
1203
|
+
<span class='id identifier rubyid_private'>private</span>
|
1204
|
+
<span class='comment'># Setup options for application creation.
|
1205
|
+
</span> <span class='comment'>#
|
1206
|
+
</span> <span class='comment'># @param options [Hash] The options to setups.
|
1207
|
+
</span> <span class='comment'># @return [Array] If to run the application, the arguments and the specified options.
|
1208
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1209
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>name:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:default_application_name</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>parent:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>application:</span> <span class='kw'>nil</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='rparen'>)</span>
|
1210
|
+
<span class='id identifier rubyid_run'>run</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:run</span><span class='rparen'>)</span>
|
1211
|
+
<span class='lbracket'>[</span><span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_run'>run</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_run'>run</span> <span class='op'>:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:__args__</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span>
|
1212
|
+
<span class='kw'>end</span>
|
1213
|
+
|
1214
|
+
<span class='comment'># Create the application.
|
1215
|
+
</span> <span class='comment'>#
|
1216
|
+
</span> <span class='comment'># @param run [Boolean ]If to run the application.
|
1217
|
+
</span> <span class='comment'># @param args [Hash] The arguments to use for running.
|
1218
|
+
</span> <span class='comment'># @param options [Hash] The options of the application.
|
1219
|
+
</span> <span class='comment'># @return [Application] The new application.
|
1220
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1221
|
+
<span class='id identifier rubyid_application'>application</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1222
|
+
<span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_application'>application</span> <span class='op'>&&</span> <span class='id identifier rubyid_run'>run</span>
|
1223
|
+
<span class='id identifier rubyid_application'>application</span>
|
1224
|
+
<span class='kw'>end</span>
|
1225
|
+
|
1226
|
+
<span class='comment'># Fetch a command list for showing help.
|
1227
|
+
</span> <span class='comment'>#
|
1228
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
1229
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
1230
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_arguments'>arguments</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_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='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:present?</span><span class='rparen'>)</span>
|
1231
|
+
<span class='kw'>end</span>
|
1232
|
+
<span class='kw'>end</span></pre>
|
1233
|
+
</td>
|
1234
|
+
</tr>
|
1235
|
+
</table>
|
1236
|
+
</div>
|
1237
|
+
|
1238
|
+
|
1239
|
+
<span id="shell=-instance_method"></span>
|
1240
|
+
<div class="method_details ">
|
1241
|
+
<h3 class="signature " id="shell-instance_method">
|
1242
|
+
|
1243
|
+
- (<tt><span class='object_link'><a href="Shell.html" title="Bovem::Shell (class)">Bovem::Shell</a></span></tt>) <strong>shell</strong>
|
1244
|
+
|
1245
|
+
|
1246
|
+
|
1247
|
+
|
1248
|
+
|
1249
|
+
</h3><div class="docstring">
|
1250
|
+
<div class="discussion">
|
1251
|
+
<p>Returns A shell helper.</p>
|
1252
|
+
|
1253
|
+
|
1254
|
+
</div>
|
1255
|
+
</div>
|
1256
|
+
<div class="tags">
|
1257
|
+
|
1258
|
+
<p class="tag_title">Returns:</p>
|
1259
|
+
<ul class="return">
|
1260
|
+
|
1261
|
+
<li>
|
1262
|
+
|
1263
|
+
|
1264
|
+
<span class='type'>(<tt><span class='object_link'><a href="Shell.html" title="Bovem::Shell (class)">Bovem::Shell</a></span></tt>)</span>
|
1265
|
+
|
1266
|
+
|
1267
|
+
|
1268
|
+
—
|
1269
|
+
<div class='inline'><p>A shell helper.</p>
|
1270
|
+
</div>
|
1271
|
+
|
1272
|
+
</li>
|
1273
|
+
|
1274
|
+
</ul>
|
1275
|
+
|
1276
|
+
</div><table class="source_code">
|
1277
|
+
<tr>
|
1278
|
+
<td>
|
1279
|
+
<pre class="lines">
|
1280
|
+
|
1281
|
+
|
1282
|
+
24
|
1283
|
+
25
|
1284
|
+
26
|
1285
|
+
27
|
1286
|
+
28
|
1287
|
+
29
|
1288
|
+
30
|
1289
|
+
31
|
1290
|
+
32
|
1291
|
+
33
|
1292
|
+
34
|
1293
|
+
35
|
1294
|
+
36
|
1295
|
+
37
|
1296
|
+
38
|
1297
|
+
39
|
1298
|
+
40
|
1299
|
+
41
|
1300
|
+
42
|
1301
|
+
43
|
1302
|
+
44
|
1303
|
+
45
|
1304
|
+
46
|
1305
|
+
47
|
1306
|
+
48
|
1307
|
+
49
|
1308
|
+
50
|
1309
|
+
51
|
1310
|
+
52
|
1311
|
+
53
|
1312
|
+
54
|
1313
|
+
55
|
1314
|
+
56
|
1315
|
+
57
|
1316
|
+
58
|
1317
|
+
59
|
1318
|
+
60
|
1319
|
+
61
|
1320
|
+
62
|
1321
|
+
63
|
1322
|
+
64
|
1323
|
+
65
|
1324
|
+
66
|
1325
|
+
67
|
1326
|
+
68
|
1327
|
+
69
|
1328
|
+
70
|
1329
|
+
71
|
1330
|
+
72
|
1331
|
+
73
|
1332
|
+
74
|
1333
|
+
75
|
1334
|
+
76
|
1335
|
+
77
|
1336
|
+
78
|
1337
|
+
79
|
1338
|
+
80
|
1339
|
+
81
|
1340
|
+
82
|
1341
|
+
83
|
1342
|
+
84
|
1343
|
+
85
|
1344
|
+
86
|
1345
|
+
87
|
1346
|
+
88
|
1347
|
+
89
|
1348
|
+
90
|
1349
|
+
91
|
1350
|
+
92
|
1351
|
+
93
|
1352
|
+
94
|
1353
|
+
95
|
1354
|
+
96
|
1355
|
+
97
|
1356
|
+
98
|
1357
|
+
99
|
1358
|
+
100
|
1359
|
+
101
|
1360
|
+
102
|
1361
|
+
103
|
1362
|
+
104
|
1363
|
+
105
|
1364
|
+
106
|
1365
|
+
107
|
1366
|
+
108
|
1367
|
+
109
|
1368
|
+
110
|
1369
|
+
111
|
1370
|
+
112
|
1371
|
+
113
|
1372
|
+
114
|
1373
|
+
115
|
1374
|
+
116
|
1375
|
+
117
|
1376
|
+
118
|
1377
|
+
119
|
1378
|
+
120
|
1379
|
+
121
|
1380
|
+
122
|
1381
|
+
123
|
1382
|
+
124
|
1383
|
+
125
|
1384
|
+
126
|
1385
|
+
127
|
1386
|
+
128
|
1387
|
+
129
|
1388
|
+
130
|
1389
|
+
131
|
1390
|
+
132
|
1391
|
+
133
|
1392
|
+
134
|
1393
|
+
135
|
1394
|
+
136
|
1395
|
+
137
|
1396
|
+
138
|
1397
|
+
139
|
1398
|
+
140
|
1399
|
+
141
|
1400
|
+
142
|
1401
|
+
143
|
1402
|
+
144
|
1403
|
+
145
|
1404
|
+
146
|
1405
|
+
147
|
1406
|
+
148
|
1407
|
+
149
|
1408
|
+
150
|
1409
|
+
151
|
1410
|
+
152
|
1411
|
+
153
|
1412
|
+
154
|
1413
|
+
155
|
1414
|
+
156
|
1415
|
+
157</pre>
|
1416
|
+
</td>
|
1417
|
+
<td>
|
1418
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 24</span>
|
1419
|
+
|
1420
|
+
<span class='kw'>class</span> <span class='const'>Application</span> <span class='op'><</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Command</span>
|
1421
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:version</span>
|
1422
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:shell</span>
|
1423
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:console</span>
|
1424
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:skip_commands</span>
|
1425
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:show_commands</span>
|
1426
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:output_commands</span>
|
1427
|
+
|
1428
|
+
<span class='comment'># Initializes a new Bovem application.
|
1429
|
+
</span> <span class='comment'>#
|
1430
|
+
</span> <span class='comment'># In options, you can override the command line arguments with `:__args__`, and you can skip execution by specifying `run: false`.
|
1431
|
+
</span> <span class='comment'>#
|
1432
|
+
</span> <span class='comment'># @see Command#setup_with
|
1433
|
+
</span> <span class='comment'>#
|
1434
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
1435
|
+
</span> <span class='comment'># @return [Application] The created application.
|
1436
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1437
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>Error</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Application</span><span class='comma'>,</span> <span class='symbol'>:missing_block</span><span class='comma'>,</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:missing_app_block</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_block_given?'>block_given?</span>
|
1438
|
+
<span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1439
|
+
|
1440
|
+
<span class='kw'>begin</span>
|
1441
|
+
<span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1442
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
1443
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
1444
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
|
1445
|
+
<span class='kw'>end</span>
|
1446
|
+
<span class='kw'>end</span>
|
1447
|
+
|
1448
|
+
<span class='comment'># Creates a new application.
|
1449
|
+
</span> <span class='comment'>#
|
1450
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
1451
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1452
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1453
|
+
|
1454
|
+
<span class='ivar'>@shell</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Shell</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
1455
|
+
<span class='ivar'>@console</span> <span class='op'>=</span> <span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span>
|
1456
|
+
<span class='ivar'>@skip_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1457
|
+
<span class='ivar'>@show_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1458
|
+
<span class='ivar'>@output_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1459
|
+
|
1460
|
+
<span class='id identifier rubyid_help_option'>help_option</span>
|
1461
|
+
<span class='kw'>end</span>
|
1462
|
+
|
1463
|
+
<span class='comment'># Reads and optionally sets the version of this application.
|
1464
|
+
</span> <span class='comment'>#
|
1465
|
+
</span> <span class='comment'># @param value [String|nil] The new version of this application.
|
1466
|
+
</span> <span class='comment'># @return [String|nil] The version of this application.
|
1467
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
1468
|
+
<span class='ivar'>@version</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
1469
|
+
<span class='ivar'>@version</span>
|
1470
|
+
<span class='kw'>end</span>
|
1471
|
+
|
1472
|
+
<span class='comment'># Executes this application.
|
1473
|
+
</span> <span class='comment'>#
|
1474
|
+
</span> <span class='comment'># @param args [Array] The command line to pass to this application. Defaults to `ARGV`.
|
1475
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
1476
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>||</span> <span class='const'>ARGV</span><span class='rparen'>)</span>
|
1477
|
+
<span class='kw'>end</span>
|
1478
|
+
|
1479
|
+
<span class='comment'># Adds a help command and a help option to this application.
|
1480
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_help_option'>help_option</span>
|
1481
|
+
<span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='label'>description:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_command_description'>help_command_description</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
1482
|
+
<span class='id identifier rubyid_action'>action</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_command'>command</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
1483
|
+
<span class='kw'>end</span>
|
1484
|
+
|
1485
|
+
<span class='id identifier rubyid_option'>option</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_short_form'>help_option_short_form</span><span class='comma'>,</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_long_form'>help_option_long_form</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>help:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_message'>help_message</span><span class='rparen'>)</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_application'>application</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span> <span class='rbrace'>}</span>
|
1486
|
+
<span class='kw'>end</span>
|
1487
|
+
|
1488
|
+
<span class='comment'># The name of the current executable.
|
1489
|
+
</span> <span class='comment'>#
|
1490
|
+
</span> <span class='comment'># @return [String] The name of the current executable.
|
1491
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_executable_name'>executable_name</span>
|
1492
|
+
<span class='gvar'>$0</span>
|
1493
|
+
<span class='kw'>end</span>
|
1494
|
+
|
1495
|
+
<span class='comment'># Shows a help about a command.
|
1496
|
+
</span> <span class='comment'>#
|
1497
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
1498
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
1499
|
+
<span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>|</span>
|
1500
|
+
<span class='comment'># Find the command across
|
1501
|
+
</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_find_command'>find_command</span><span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1502
|
+
|
1503
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='kw'>then</span>
|
1504
|
+
<span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_commands'>commands</span><span class='lbracket'>[</span><span class='id identifier rubyid_next_command'>next_command</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
1505
|
+
<span class='kw'>else</span>
|
1506
|
+
<span class='kw'>break</span>
|
1507
|
+
<span class='kw'>end</span>
|
1508
|
+
<span class='kw'>end</span>
|
1509
|
+
|
1510
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span>
|
1511
|
+
<span class='kw'>end</span>
|
1512
|
+
|
1513
|
+
<span class='comment'># Runs a command into the shell.
|
1514
|
+
</span> <span class='comment'>#
|
1515
|
+
</span> <span class='comment'># @param command [String] The string to run.
|
1516
|
+
</span> <span class='comment'># @param message [String] A message to show before running.
|
1517
|
+
</span> <span class='comment'># @param show_exit [Boolean] If show the exit status.
|
1518
|
+
</span> <span class='comment'># @param fatal [Boolean] If quit in case of fatal errors.
|
1519
|
+
</span> <span class='comment'># @return [Hash] An hash with `status` and `output` keys.
|
1520
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span> <span class='op'>=</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span> <span class='op'>=</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
1521
|
+
<span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>!</span><span class='ivar'>@skip_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span><span class='comma'>,</span> <span class='ivar'>@output_commands</span><span class='comma'>,</span> <span class='ivar'>@show_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span><span class='rparen'>)</span>
|
1522
|
+
<span class='kw'>end</span>
|
1523
|
+
|
1524
|
+
<span class='id identifier rubyid_private'>private</span>
|
1525
|
+
<span class='comment'># Setup options for application creation.
|
1526
|
+
</span> <span class='comment'>#
|
1527
|
+
</span> <span class='comment'># @param options [Hash] The options to setups.
|
1528
|
+
</span> <span class='comment'># @return [Array] If to run the application, the arguments and the specified options.
|
1529
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1530
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>name:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:default_application_name</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>parent:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>application:</span> <span class='kw'>nil</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='rparen'>)</span>
|
1531
|
+
<span class='id identifier rubyid_run'>run</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:run</span><span class='rparen'>)</span>
|
1532
|
+
<span class='lbracket'>[</span><span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_run'>run</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_run'>run</span> <span class='op'>:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:__args__</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span>
|
1533
|
+
<span class='kw'>end</span>
|
1534
|
+
|
1535
|
+
<span class='comment'># Create the application.
|
1536
|
+
</span> <span class='comment'>#
|
1537
|
+
</span> <span class='comment'># @param run [Boolean ]If to run the application.
|
1538
|
+
</span> <span class='comment'># @param args [Hash] The arguments to use for running.
|
1539
|
+
</span> <span class='comment'># @param options [Hash] The options of the application.
|
1540
|
+
</span> <span class='comment'># @return [Application] The new application.
|
1541
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1542
|
+
<span class='id identifier rubyid_application'>application</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1543
|
+
<span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_application'>application</span> <span class='op'>&&</span> <span class='id identifier rubyid_run'>run</span>
|
1544
|
+
<span class='id identifier rubyid_application'>application</span>
|
1545
|
+
<span class='kw'>end</span>
|
1546
|
+
|
1547
|
+
<span class='comment'># Fetch a command list for showing help.
|
1548
|
+
</span> <span class='comment'>#
|
1549
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
1550
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
1551
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_arguments'>arguments</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_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='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:present?</span><span class='rparen'>)</span>
|
1552
|
+
<span class='kw'>end</span>
|
1553
|
+
<span class='kw'>end</span></pre>
|
1554
|
+
</td>
|
1555
|
+
</tr>
|
1556
|
+
</table>
|
1557
|
+
</div>
|
1558
|
+
|
1559
|
+
|
1560
|
+
<span id="show_commands=-instance_method"></span>
|
1561
|
+
<div class="method_details ">
|
1562
|
+
<h3 class="signature " id="show_commands-instance_method">
|
1563
|
+
|
1564
|
+
- (<tt>Boolean</tt>) <strong>show_commands</strong>
|
1565
|
+
|
1566
|
+
|
1567
|
+
|
1568
|
+
|
1569
|
+
|
1570
|
+
</h3><div class="docstring">
|
1571
|
+
<div class="discussion">
|
1572
|
+
<p>Returns If to show command lines run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
1573
|
+
|
1574
|
+
|
1575
|
+
</div>
|
1576
|
+
</div>
|
1577
|
+
<div class="tags">
|
1578
|
+
|
1579
|
+
<p class="tag_title">Returns:</p>
|
1580
|
+
<ul class="return">
|
1581
|
+
|
1582
|
+
<li>
|
1583
|
+
|
1584
|
+
|
1585
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1586
|
+
|
1587
|
+
|
1588
|
+
|
1589
|
+
—
|
1590
|
+
<div class='inline'><p>If to show command lines run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
1591
|
+
</div>
|
1592
|
+
|
1593
|
+
</li>
|
1594
|
+
|
1595
|
+
</ul>
|
1596
|
+
|
1597
|
+
</div><table class="source_code">
|
1598
|
+
<tr>
|
1599
|
+
<td>
|
1600
|
+
<pre class="lines">
|
1601
|
+
|
1602
|
+
|
1603
|
+
24
|
1604
|
+
25
|
1605
|
+
26
|
1606
|
+
27
|
1607
|
+
28
|
1608
|
+
29
|
1609
|
+
30
|
1610
|
+
31
|
1611
|
+
32
|
1612
|
+
33
|
1613
|
+
34
|
1614
|
+
35
|
1615
|
+
36
|
1616
|
+
37
|
1617
|
+
38
|
1618
|
+
39
|
1619
|
+
40
|
1620
|
+
41
|
1621
|
+
42
|
1622
|
+
43
|
1623
|
+
44
|
1624
|
+
45
|
1625
|
+
46
|
1626
|
+
47
|
1627
|
+
48
|
1628
|
+
49
|
1629
|
+
50
|
1630
|
+
51
|
1631
|
+
52
|
1632
|
+
53
|
1633
|
+
54
|
1634
|
+
55
|
1635
|
+
56
|
1636
|
+
57
|
1637
|
+
58
|
1638
|
+
59
|
1639
|
+
60
|
1640
|
+
61
|
1641
|
+
62
|
1642
|
+
63
|
1643
|
+
64
|
1644
|
+
65
|
1645
|
+
66
|
1646
|
+
67
|
1647
|
+
68
|
1648
|
+
69
|
1649
|
+
70
|
1650
|
+
71
|
1651
|
+
72
|
1652
|
+
73
|
1653
|
+
74
|
1654
|
+
75
|
1655
|
+
76
|
1656
|
+
77
|
1657
|
+
78
|
1658
|
+
79
|
1659
|
+
80
|
1660
|
+
81
|
1661
|
+
82
|
1662
|
+
83
|
1663
|
+
84
|
1664
|
+
85
|
1665
|
+
86
|
1666
|
+
87
|
1667
|
+
88
|
1668
|
+
89
|
1669
|
+
90
|
1670
|
+
91
|
1671
|
+
92
|
1672
|
+
93
|
1673
|
+
94
|
1674
|
+
95
|
1675
|
+
96
|
1676
|
+
97
|
1677
|
+
98
|
1678
|
+
99
|
1679
|
+
100
|
1680
|
+
101
|
1681
|
+
102
|
1682
|
+
103
|
1683
|
+
104
|
1684
|
+
105
|
1685
|
+
106
|
1686
|
+
107
|
1687
|
+
108
|
1688
|
+
109
|
1689
|
+
110
|
1690
|
+
111
|
1691
|
+
112
|
1692
|
+
113
|
1693
|
+
114
|
1694
|
+
115
|
1695
|
+
116
|
1696
|
+
117
|
1697
|
+
118
|
1698
|
+
119
|
1699
|
+
120
|
1700
|
+
121
|
1701
|
+
122
|
1702
|
+
123
|
1703
|
+
124
|
1704
|
+
125
|
1705
|
+
126
|
1706
|
+
127
|
1707
|
+
128
|
1708
|
+
129
|
1709
|
+
130
|
1710
|
+
131
|
1711
|
+
132
|
1712
|
+
133
|
1713
|
+
134
|
1714
|
+
135
|
1715
|
+
136
|
1716
|
+
137
|
1717
|
+
138
|
1718
|
+
139
|
1719
|
+
140
|
1720
|
+
141
|
1721
|
+
142
|
1722
|
+
143
|
1723
|
+
144
|
1724
|
+
145
|
1725
|
+
146
|
1726
|
+
147
|
1727
|
+
148
|
1728
|
+
149
|
1729
|
+
150
|
1730
|
+
151
|
1731
|
+
152
|
1732
|
+
153
|
1733
|
+
154
|
1734
|
+
155
|
1735
|
+
156
|
1736
|
+
157</pre>
|
1737
|
+
</td>
|
1738
|
+
<td>
|
1739
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 24</span>
|
1740
|
+
|
1741
|
+
<span class='kw'>class</span> <span class='const'>Application</span> <span class='op'><</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Command</span>
|
1742
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:version</span>
|
1743
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:shell</span>
|
1744
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:console</span>
|
1745
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:skip_commands</span>
|
1746
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:show_commands</span>
|
1747
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:output_commands</span>
|
1748
|
+
|
1749
|
+
<span class='comment'># Initializes a new Bovem application.
|
1750
|
+
</span> <span class='comment'>#
|
1751
|
+
</span> <span class='comment'># In options, you can override the command line arguments with `:__args__`, and you can skip execution by specifying `run: false`.
|
1752
|
+
</span> <span class='comment'>#
|
1753
|
+
</span> <span class='comment'># @see Command#setup_with
|
1754
|
+
</span> <span class='comment'>#
|
1755
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
1756
|
+
</span> <span class='comment'># @return [Application] The created application.
|
1757
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1758
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>Error</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Application</span><span class='comma'>,</span> <span class='symbol'>:missing_block</span><span class='comma'>,</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:missing_app_block</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_block_given?'>block_given?</span>
|
1759
|
+
<span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1760
|
+
|
1761
|
+
<span class='kw'>begin</span>
|
1762
|
+
<span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1763
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
1764
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
1765
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
|
1766
|
+
<span class='kw'>end</span>
|
1767
|
+
<span class='kw'>end</span>
|
1768
|
+
|
1769
|
+
<span class='comment'># Creates a new application.
|
1770
|
+
</span> <span class='comment'>#
|
1771
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
1772
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1773
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1774
|
+
|
1775
|
+
<span class='ivar'>@shell</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Shell</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
1776
|
+
<span class='ivar'>@console</span> <span class='op'>=</span> <span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span>
|
1777
|
+
<span class='ivar'>@skip_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1778
|
+
<span class='ivar'>@show_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1779
|
+
<span class='ivar'>@output_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
1780
|
+
|
1781
|
+
<span class='id identifier rubyid_help_option'>help_option</span>
|
1782
|
+
<span class='kw'>end</span>
|
1783
|
+
|
1784
|
+
<span class='comment'># Reads and optionally sets the version of this application.
|
1785
|
+
</span> <span class='comment'>#
|
1786
|
+
</span> <span class='comment'># @param value [String|nil] The new version of this application.
|
1787
|
+
</span> <span class='comment'># @return [String|nil] The version of this application.
|
1788
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
1789
|
+
<span class='ivar'>@version</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
1790
|
+
<span class='ivar'>@version</span>
|
1791
|
+
<span class='kw'>end</span>
|
1792
|
+
|
1793
|
+
<span class='comment'># Executes this application.
|
1794
|
+
</span> <span class='comment'>#
|
1795
|
+
</span> <span class='comment'># @param args [Array] The command line to pass to this application. Defaults to `ARGV`.
|
1796
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
1797
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>||</span> <span class='const'>ARGV</span><span class='rparen'>)</span>
|
1798
|
+
<span class='kw'>end</span>
|
1799
|
+
|
1800
|
+
<span class='comment'># Adds a help command and a help option to this application.
|
1801
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_help_option'>help_option</span>
|
1802
|
+
<span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='label'>description:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_command_description'>help_command_description</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
1803
|
+
<span class='id identifier rubyid_action'>action</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_command'>command</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
1804
|
+
<span class='kw'>end</span>
|
1805
|
+
|
1806
|
+
<span class='id identifier rubyid_option'>option</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_short_form'>help_option_short_form</span><span class='comma'>,</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_long_form'>help_option_long_form</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>help:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_message'>help_message</span><span class='rparen'>)</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_application'>application</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span> <span class='rbrace'>}</span>
|
1807
|
+
<span class='kw'>end</span>
|
1808
|
+
|
1809
|
+
<span class='comment'># The name of the current executable.
|
1810
|
+
</span> <span class='comment'>#
|
1811
|
+
</span> <span class='comment'># @return [String] The name of the current executable.
|
1812
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_executable_name'>executable_name</span>
|
1813
|
+
<span class='gvar'>$0</span>
|
1814
|
+
<span class='kw'>end</span>
|
1815
|
+
|
1816
|
+
<span class='comment'># Shows a help about a command.
|
1817
|
+
</span> <span class='comment'>#
|
1818
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
1819
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
1820
|
+
<span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>|</span>
|
1821
|
+
<span class='comment'># Find the command across
|
1822
|
+
</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_find_command'>find_command</span><span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
1823
|
+
|
1824
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='kw'>then</span>
|
1825
|
+
<span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_commands'>commands</span><span class='lbracket'>[</span><span class='id identifier rubyid_next_command'>next_command</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
1826
|
+
<span class='kw'>else</span>
|
1827
|
+
<span class='kw'>break</span>
|
1828
|
+
<span class='kw'>end</span>
|
1829
|
+
<span class='kw'>end</span>
|
1830
|
+
|
1831
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span>
|
1832
|
+
<span class='kw'>end</span>
|
1833
|
+
|
1834
|
+
<span class='comment'># Runs a command into the shell.
|
1835
|
+
</span> <span class='comment'>#
|
1836
|
+
</span> <span class='comment'># @param command [String] The string to run.
|
1837
|
+
</span> <span class='comment'># @param message [String] A message to show before running.
|
1838
|
+
</span> <span class='comment'># @param show_exit [Boolean] If show the exit status.
|
1839
|
+
</span> <span class='comment'># @param fatal [Boolean] If quit in case of fatal errors.
|
1840
|
+
</span> <span class='comment'># @return [Hash] An hash with `status` and `output` keys.
|
1841
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span> <span class='op'>=</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span> <span class='op'>=</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
1842
|
+
<span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>!</span><span class='ivar'>@skip_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span><span class='comma'>,</span> <span class='ivar'>@output_commands</span><span class='comma'>,</span> <span class='ivar'>@show_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span><span class='rparen'>)</span>
|
1843
|
+
<span class='kw'>end</span>
|
1844
|
+
|
1845
|
+
<span class='id identifier rubyid_private'>private</span>
|
1846
|
+
<span class='comment'># Setup options for application creation.
|
1847
|
+
</span> <span class='comment'>#
|
1848
|
+
</span> <span class='comment'># @param options [Hash] The options to setups.
|
1849
|
+
</span> <span class='comment'># @return [Array] If to run the application, the arguments and the specified options.
|
1850
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
1851
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>name:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:default_application_name</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>parent:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>application:</span> <span class='kw'>nil</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='rparen'>)</span>
|
1852
|
+
<span class='id identifier rubyid_run'>run</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:run</span><span class='rparen'>)</span>
|
1853
|
+
<span class='lbracket'>[</span><span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_run'>run</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_run'>run</span> <span class='op'>:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:__args__</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span>
|
1854
|
+
<span class='kw'>end</span>
|
1855
|
+
|
1856
|
+
<span class='comment'># Create the application.
|
1857
|
+
</span> <span class='comment'>#
|
1858
|
+
</span> <span class='comment'># @param run [Boolean ]If to run the application.
|
1859
|
+
</span> <span class='comment'># @param args [Hash] The arguments to use for running.
|
1860
|
+
</span> <span class='comment'># @param options [Hash] The options of the application.
|
1861
|
+
</span> <span class='comment'># @return [Application] The new application.
|
1862
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1863
|
+
<span class='id identifier rubyid_application'>application</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
1864
|
+
<span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_application'>application</span> <span class='op'>&&</span> <span class='id identifier rubyid_run'>run</span>
|
1865
|
+
<span class='id identifier rubyid_application'>application</span>
|
1866
|
+
<span class='kw'>end</span>
|
1867
|
+
|
1868
|
+
<span class='comment'># Fetch a command list for showing help.
|
1869
|
+
</span> <span class='comment'>#
|
1870
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
1871
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
1872
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_arguments'>arguments</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_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='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:present?</span><span class='rparen'>)</span>
|
1873
|
+
<span class='kw'>end</span>
|
1874
|
+
<span class='kw'>end</span></pre>
|
1875
|
+
</td>
|
1876
|
+
</tr>
|
1877
|
+
</table>
|
1878
|
+
</div>
|
1879
|
+
|
1880
|
+
|
1881
|
+
<span id="skip_commands=-instance_method"></span>
|
1882
|
+
<div class="method_details ">
|
1883
|
+
<h3 class="signature " id="skip_commands-instance_method">
|
1884
|
+
|
1885
|
+
- (<tt>Boolean</tt>) <strong>skip_commands</strong>
|
1886
|
+
|
1887
|
+
|
1888
|
+
|
1889
|
+
|
1890
|
+
|
1891
|
+
</h3><div class="docstring">
|
1892
|
+
<div class="discussion">
|
1893
|
+
<p>Returns If to skip commands run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
1894
|
+
|
1895
|
+
|
1896
|
+
</div>
|
1897
|
+
</div>
|
1898
|
+
<div class="tags">
|
1899
|
+
|
1900
|
+
<p class="tag_title">Returns:</p>
|
1901
|
+
<ul class="return">
|
1902
|
+
|
1903
|
+
<li>
|
1904
|
+
|
1905
|
+
|
1906
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
1907
|
+
|
1908
|
+
|
1909
|
+
|
1910
|
+
—
|
1911
|
+
<div class='inline'><p>If to skip commands run via <span class='object_link'><a href="#run-instance_method" title="Bovem::Application#run (method)">#run</a></span>.</p>
|
1912
|
+
</div>
|
1913
|
+
|
1914
|
+
</li>
|
1915
|
+
|
1916
|
+
</ul>
|
1917
|
+
|
1918
|
+
</div><table class="source_code">
|
1919
|
+
<tr>
|
1920
|
+
<td>
|
1921
|
+
<pre class="lines">
|
1922
|
+
|
1923
|
+
|
1924
|
+
24
|
1925
|
+
25
|
1926
|
+
26
|
1927
|
+
27
|
1928
|
+
28
|
1929
|
+
29
|
1930
|
+
30
|
1931
|
+
31
|
1932
|
+
32
|
1933
|
+
33
|
1934
|
+
34
|
1935
|
+
35
|
1936
|
+
36
|
1937
|
+
37
|
1938
|
+
38
|
1939
|
+
39
|
1940
|
+
40
|
1941
|
+
41
|
1942
|
+
42
|
1943
|
+
43
|
1944
|
+
44
|
1945
|
+
45
|
1946
|
+
46
|
1947
|
+
47
|
1948
|
+
48
|
1949
|
+
49
|
1950
|
+
50
|
1951
|
+
51
|
1952
|
+
52
|
1953
|
+
53
|
1954
|
+
54
|
1955
|
+
55
|
1956
|
+
56
|
1957
|
+
57
|
1958
|
+
58
|
1959
|
+
59
|
1960
|
+
60
|
1961
|
+
61
|
1962
|
+
62
|
1963
|
+
63
|
1964
|
+
64
|
1965
|
+
65
|
1966
|
+
66
|
1967
|
+
67
|
1968
|
+
68
|
1969
|
+
69
|
1970
|
+
70
|
1971
|
+
71
|
1972
|
+
72
|
1973
|
+
73
|
1974
|
+
74
|
1975
|
+
75
|
1976
|
+
76
|
1977
|
+
77
|
1978
|
+
78
|
1979
|
+
79
|
1980
|
+
80
|
1981
|
+
81
|
1982
|
+
82
|
1983
|
+
83
|
1984
|
+
84
|
1985
|
+
85
|
1986
|
+
86
|
1987
|
+
87
|
1988
|
+
88
|
1989
|
+
89
|
1990
|
+
90
|
1991
|
+
91
|
1992
|
+
92
|
1993
|
+
93
|
1994
|
+
94
|
1995
|
+
95
|
1996
|
+
96
|
1997
|
+
97
|
1998
|
+
98
|
1999
|
+
99
|
2000
|
+
100
|
2001
|
+
101
|
2002
|
+
102
|
2003
|
+
103
|
2004
|
+
104
|
2005
|
+
105
|
2006
|
+
106
|
2007
|
+
107
|
2008
|
+
108
|
2009
|
+
109
|
2010
|
+
110
|
2011
|
+
111
|
2012
|
+
112
|
2013
|
+
113
|
2014
|
+
114
|
2015
|
+
115
|
2016
|
+
116
|
2017
|
+
117
|
2018
|
+
118
|
2019
|
+
119
|
2020
|
+
120
|
2021
|
+
121
|
2022
|
+
122
|
2023
|
+
123
|
2024
|
+
124
|
2025
|
+
125
|
2026
|
+
126
|
2027
|
+
127
|
2028
|
+
128
|
2029
|
+
129
|
2030
|
+
130
|
2031
|
+
131
|
2032
|
+
132
|
2033
|
+
133
|
2034
|
+
134
|
2035
|
+
135
|
2036
|
+
136
|
2037
|
+
137
|
2038
|
+
138
|
2039
|
+
139
|
2040
|
+
140
|
2041
|
+
141
|
2042
|
+
142
|
2043
|
+
143
|
2044
|
+
144
|
2045
|
+
145
|
2046
|
+
146
|
2047
|
+
147
|
2048
|
+
148
|
2049
|
+
149
|
2050
|
+
150
|
2051
|
+
151
|
2052
|
+
152
|
2053
|
+
153
|
2054
|
+
154
|
2055
|
+
155
|
2056
|
+
156
|
2057
|
+
157</pre>
|
2058
|
+
</td>
|
2059
|
+
<td>
|
2060
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 24</span>
|
2061
|
+
|
2062
|
+
<span class='kw'>class</span> <span class='const'>Application</span> <span class='op'><</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Command</span>
|
2063
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:version</span>
|
2064
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:shell</span>
|
2065
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:console</span>
|
2066
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:skip_commands</span>
|
2067
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:show_commands</span>
|
2068
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:output_commands</span>
|
2069
|
+
|
2070
|
+
<span class='comment'># Initializes a new Bovem application.
|
2071
|
+
</span> <span class='comment'>#
|
2072
|
+
</span> <span class='comment'># In options, you can override the command line arguments with `:__args__`, and you can skip execution by specifying `run: false`.
|
2073
|
+
</span> <span class='comment'>#
|
2074
|
+
</span> <span class='comment'># @see Command#setup_with
|
2075
|
+
</span> <span class='comment'>#
|
2076
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
2077
|
+
</span> <span class='comment'># @return [Application] The created application.
|
2078
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2079
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>Error</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Application</span><span class='comma'>,</span> <span class='symbol'>:missing_block</span><span class='comma'>,</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:missing_app_block</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_block_given?'>block_given?</span>
|
2080
|
+
<span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
2081
|
+
|
2082
|
+
<span class='kw'>begin</span>
|
2083
|
+
<span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2084
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
2085
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
2086
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
|
2087
|
+
<span class='kw'>end</span>
|
2088
|
+
<span class='kw'>end</span>
|
2089
|
+
|
2090
|
+
<span class='comment'># Creates a new application.
|
2091
|
+
</span> <span class='comment'>#
|
2092
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
2093
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2094
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2095
|
+
|
2096
|
+
<span class='ivar'>@shell</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Shell</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
2097
|
+
<span class='ivar'>@console</span> <span class='op'>=</span> <span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span>
|
2098
|
+
<span class='ivar'>@skip_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
2099
|
+
<span class='ivar'>@show_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
2100
|
+
<span class='ivar'>@output_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
2101
|
+
|
2102
|
+
<span class='id identifier rubyid_help_option'>help_option</span>
|
2103
|
+
<span class='kw'>end</span>
|
2104
|
+
|
2105
|
+
<span class='comment'># Reads and optionally sets the version of this application.
|
2106
|
+
</span> <span class='comment'>#
|
2107
|
+
</span> <span class='comment'># @param value [String|nil] The new version of this application.
|
2108
|
+
</span> <span class='comment'># @return [String|nil] The version of this application.
|
2109
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
2110
|
+
<span class='ivar'>@version</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
2111
|
+
<span class='ivar'>@version</span>
|
2112
|
+
<span class='kw'>end</span>
|
2113
|
+
|
2114
|
+
<span class='comment'># Executes this application.
|
2115
|
+
</span> <span class='comment'>#
|
2116
|
+
</span> <span class='comment'># @param args [Array] The command line to pass to this application. Defaults to `ARGV`.
|
2117
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
2118
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>||</span> <span class='const'>ARGV</span><span class='rparen'>)</span>
|
2119
|
+
<span class='kw'>end</span>
|
2120
|
+
|
2121
|
+
<span class='comment'># Adds a help command and a help option to this application.
|
2122
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_help_option'>help_option</span>
|
2123
|
+
<span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='label'>description:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_command_description'>help_command_description</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
2124
|
+
<span class='id identifier rubyid_action'>action</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_command'>command</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
2125
|
+
<span class='kw'>end</span>
|
2126
|
+
|
2127
|
+
<span class='id identifier rubyid_option'>option</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_short_form'>help_option_short_form</span><span class='comma'>,</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_long_form'>help_option_long_form</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>help:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_message'>help_message</span><span class='rparen'>)</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_application'>application</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span> <span class='rbrace'>}</span>
|
2128
|
+
<span class='kw'>end</span>
|
2129
|
+
|
2130
|
+
<span class='comment'># The name of the current executable.
|
2131
|
+
</span> <span class='comment'>#
|
2132
|
+
</span> <span class='comment'># @return [String] The name of the current executable.
|
2133
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_executable_name'>executable_name</span>
|
2134
|
+
<span class='gvar'>$0</span>
|
2135
|
+
<span class='kw'>end</span>
|
2136
|
+
|
2137
|
+
<span class='comment'># Shows a help about a command.
|
2138
|
+
</span> <span class='comment'>#
|
2139
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
2140
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
2141
|
+
<span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>|</span>
|
2142
|
+
<span class='comment'># Find the command across
|
2143
|
+
</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_find_command'>find_command</span><span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
2144
|
+
|
2145
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='kw'>then</span>
|
2146
|
+
<span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_commands'>commands</span><span class='lbracket'>[</span><span class='id identifier rubyid_next_command'>next_command</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
2147
|
+
<span class='kw'>else</span>
|
2148
|
+
<span class='kw'>break</span>
|
2149
|
+
<span class='kw'>end</span>
|
2150
|
+
<span class='kw'>end</span>
|
2151
|
+
|
2152
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span>
|
2153
|
+
<span class='kw'>end</span>
|
2154
|
+
|
2155
|
+
<span class='comment'># Runs a command into the shell.
|
2156
|
+
</span> <span class='comment'>#
|
2157
|
+
</span> <span class='comment'># @param command [String] The string to run.
|
2158
|
+
</span> <span class='comment'># @param message [String] A message to show before running.
|
2159
|
+
</span> <span class='comment'># @param show_exit [Boolean] If show the exit status.
|
2160
|
+
</span> <span class='comment'># @param fatal [Boolean] If quit in case of fatal errors.
|
2161
|
+
</span> <span class='comment'># @return [Hash] An hash with `status` and `output` keys.
|
2162
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span> <span class='op'>=</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span> <span class='op'>=</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
2163
|
+
<span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>!</span><span class='ivar'>@skip_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span><span class='comma'>,</span> <span class='ivar'>@output_commands</span><span class='comma'>,</span> <span class='ivar'>@show_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span><span class='rparen'>)</span>
|
2164
|
+
<span class='kw'>end</span>
|
2165
|
+
|
2166
|
+
<span class='id identifier rubyid_private'>private</span>
|
2167
|
+
<span class='comment'># Setup options for application creation.
|
2168
|
+
</span> <span class='comment'>#
|
2169
|
+
</span> <span class='comment'># @param options [Hash] The options to setups.
|
2170
|
+
</span> <span class='comment'># @return [Array] If to run the application, the arguments and the specified options.
|
2171
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
2172
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>name:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:default_application_name</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>parent:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>application:</span> <span class='kw'>nil</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='rparen'>)</span>
|
2173
|
+
<span class='id identifier rubyid_run'>run</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:run</span><span class='rparen'>)</span>
|
2174
|
+
<span class='lbracket'>[</span><span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_run'>run</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_run'>run</span> <span class='op'>:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:__args__</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span>
|
2175
|
+
<span class='kw'>end</span>
|
2176
|
+
|
2177
|
+
<span class='comment'># Create the application.
|
2178
|
+
</span> <span class='comment'>#
|
2179
|
+
</span> <span class='comment'># @param run [Boolean ]If to run the application.
|
2180
|
+
</span> <span class='comment'># @param args [Hash] The arguments to use for running.
|
2181
|
+
</span> <span class='comment'># @param options [Hash] The options of the application.
|
2182
|
+
</span> <span class='comment'># @return [Application] The new application.
|
2183
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2184
|
+
<span class='id identifier rubyid_application'>application</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2185
|
+
<span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_application'>application</span> <span class='op'>&&</span> <span class='id identifier rubyid_run'>run</span>
|
2186
|
+
<span class='id identifier rubyid_application'>application</span>
|
2187
|
+
<span class='kw'>end</span>
|
2188
|
+
|
2189
|
+
<span class='comment'># Fetch a command list for showing help.
|
2190
|
+
</span> <span class='comment'>#
|
2191
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
2192
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
2193
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_arguments'>arguments</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_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='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:present?</span><span class='rparen'>)</span>
|
2194
|
+
<span class='kw'>end</span>
|
2195
|
+
<span class='kw'>end</span></pre>
|
2196
|
+
</td>
|
2197
|
+
</tr>
|
2198
|
+
</table>
|
2199
|
+
</div>
|
2200
|
+
|
2201
|
+
|
2202
|
+
<span id="version=-instance_method"></span>
|
2203
|
+
<div class="method_details ">
|
2204
|
+
<h3 class="signature " id="version-instance_method">
|
2205
|
+
|
2206
|
+
- (<tt>String|nil</tt>) <strong>version</strong>(value = nil)
|
2207
|
+
|
2208
|
+
|
2209
|
+
|
2210
|
+
|
2211
|
+
|
2212
|
+
</h3><div class="docstring">
|
2213
|
+
<div class="discussion">
|
2214
|
+
<p>Reads and optionally sets the version of this application.</p>
|
2215
|
+
|
2216
|
+
|
2217
|
+
</div>
|
2218
|
+
</div>
|
2219
|
+
<div class="tags">
|
2220
|
+
<p class="tag_title">Parameters:</p>
|
2221
|
+
<ul class="param">
|
2222
|
+
|
2223
|
+
<li>
|
2224
|
+
|
2225
|
+
<span class='name'>value</span>
|
2226
|
+
|
2227
|
+
|
2228
|
+
<span class='type'>(<tt>String|nil</tt>)</span>
|
2229
|
+
|
2230
|
+
|
2231
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
2232
|
+
|
2233
|
+
|
2234
|
+
—
|
2235
|
+
<div class='inline'><p>The new version of this application.</p>
|
2236
|
+
</div>
|
2237
|
+
|
2238
|
+
</li>
|
2239
|
+
|
2240
|
+
</ul>
|
2241
|
+
|
2242
|
+
<p class="tag_title">Returns:</p>
|
2243
|
+
<ul class="return">
|
2244
|
+
|
2245
|
+
<li>
|
2246
|
+
|
2247
|
+
|
2248
|
+
<span class='type'>(<tt>String|nil</tt>)</span>
|
2249
|
+
|
2250
|
+
|
2251
|
+
|
2252
|
+
—
|
2253
|
+
<div class='inline'><p>The version of this application.</p>
|
2254
|
+
</div>
|
2255
|
+
|
2256
|
+
</li>
|
2257
|
+
|
2258
|
+
</ul>
|
2259
|
+
|
2260
|
+
</div><table class="source_code">
|
2261
|
+
<tr>
|
2262
|
+
<td>
|
2263
|
+
<pre class="lines">
|
2264
|
+
|
2265
|
+
|
2266
|
+
24
|
2267
|
+
25
|
2268
|
+
26
|
2269
|
+
27
|
2270
|
+
28
|
2271
|
+
29
|
2272
|
+
30
|
2273
|
+
31
|
2274
|
+
32
|
2275
|
+
33
|
2276
|
+
34
|
2277
|
+
35
|
2278
|
+
36
|
2279
|
+
37
|
2280
|
+
38
|
2281
|
+
39
|
2282
|
+
40
|
2283
|
+
41
|
2284
|
+
42
|
2285
|
+
43
|
2286
|
+
44
|
2287
|
+
45
|
2288
|
+
46
|
2289
|
+
47
|
2290
|
+
48
|
2291
|
+
49
|
2292
|
+
50
|
2293
|
+
51
|
2294
|
+
52
|
2295
|
+
53
|
2296
|
+
54
|
2297
|
+
55
|
2298
|
+
56
|
2299
|
+
57
|
2300
|
+
58
|
2301
|
+
59
|
2302
|
+
60
|
2303
|
+
61
|
2304
|
+
62
|
2305
|
+
63
|
2306
|
+
64
|
2307
|
+
65
|
2308
|
+
66
|
2309
|
+
67
|
2310
|
+
68
|
2311
|
+
69
|
2312
|
+
70
|
2313
|
+
71
|
2314
|
+
72
|
2315
|
+
73
|
2316
|
+
74
|
2317
|
+
75
|
2318
|
+
76
|
2319
|
+
77
|
2320
|
+
78
|
2321
|
+
79
|
2322
|
+
80
|
2323
|
+
81
|
2324
|
+
82
|
2325
|
+
83
|
2326
|
+
84
|
2327
|
+
85
|
2328
|
+
86
|
2329
|
+
87
|
2330
|
+
88
|
2331
|
+
89
|
2332
|
+
90
|
2333
|
+
91
|
2334
|
+
92
|
2335
|
+
93
|
2336
|
+
94
|
2337
|
+
95
|
2338
|
+
96
|
2339
|
+
97
|
2340
|
+
98
|
2341
|
+
99
|
2342
|
+
100
|
2343
|
+
101
|
2344
|
+
102
|
2345
|
+
103
|
2346
|
+
104
|
2347
|
+
105
|
2348
|
+
106
|
2349
|
+
107
|
2350
|
+
108
|
2351
|
+
109
|
2352
|
+
110
|
2353
|
+
111
|
2354
|
+
112
|
2355
|
+
113
|
2356
|
+
114
|
2357
|
+
115
|
2358
|
+
116
|
2359
|
+
117
|
2360
|
+
118
|
2361
|
+
119
|
2362
|
+
120
|
2363
|
+
121
|
2364
|
+
122
|
2365
|
+
123
|
2366
|
+
124
|
2367
|
+
125
|
2368
|
+
126
|
2369
|
+
127
|
2370
|
+
128
|
2371
|
+
129
|
2372
|
+
130
|
2373
|
+
131
|
2374
|
+
132
|
2375
|
+
133
|
2376
|
+
134
|
2377
|
+
135
|
2378
|
+
136
|
2379
|
+
137
|
2380
|
+
138
|
2381
|
+
139
|
2382
|
+
140
|
2383
|
+
141
|
2384
|
+
142
|
2385
|
+
143
|
2386
|
+
144
|
2387
|
+
145
|
2388
|
+
146
|
2389
|
+
147
|
2390
|
+
148
|
2391
|
+
149
|
2392
|
+
150
|
2393
|
+
151
|
2394
|
+
152
|
2395
|
+
153
|
2396
|
+
154
|
2397
|
+
155
|
2398
|
+
156
|
2399
|
+
157</pre>
|
2400
|
+
</td>
|
2401
|
+
<td>
|
2402
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 24</span>
|
2403
|
+
|
2404
|
+
<span class='kw'>class</span> <span class='const'>Application</span> <span class='op'><</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Command</span>
|
2405
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:version</span>
|
2406
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:shell</span>
|
2407
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:console</span>
|
2408
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:skip_commands</span>
|
2409
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:show_commands</span>
|
2410
|
+
<span class='id identifier rubyid_attr_accessor'>attr_accessor</span> <span class='symbol'>:output_commands</span>
|
2411
|
+
|
2412
|
+
<span class='comment'># Initializes a new Bovem application.
|
2413
|
+
</span> <span class='comment'>#
|
2414
|
+
</span> <span class='comment'># In options, you can override the command line arguments with `:__args__`, and you can skip execution by specifying `run: false`.
|
2415
|
+
</span> <span class='comment'>#
|
2416
|
+
</span> <span class='comment'># @see Command#setup_with
|
2417
|
+
</span> <span class='comment'>#
|
2418
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
2419
|
+
</span> <span class='comment'># @return [Application] The created application.
|
2420
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2421
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>Error</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Application</span><span class='comma'>,</span> <span class='symbol'>:missing_block</span><span class='comma'>,</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:missing_app_block</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_block_given?'>block_given?</span>
|
2422
|
+
<span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
2423
|
+
|
2424
|
+
<span class='kw'>begin</span>
|
2425
|
+
<span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2426
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
2427
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
2428
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
|
2429
|
+
<span class='kw'>end</span>
|
2430
|
+
<span class='kw'>end</span>
|
2431
|
+
|
2432
|
+
<span class='comment'># Creates a new application.
|
2433
|
+
</span> <span class='comment'>#
|
2434
|
+
</span> <span class='comment'># @param options [Hash] The settings to initialize the application with.
|
2435
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_initialize'>initialize</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2436
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2437
|
+
|
2438
|
+
<span class='ivar'>@shell</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Shell</span><span class='period'>.</span><span class='id identifier rubyid_instance'>instance</span>
|
2439
|
+
<span class='ivar'>@console</span> <span class='op'>=</span> <span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_console'>console</span>
|
2440
|
+
<span class='ivar'>@skip_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
2441
|
+
<span class='ivar'>@show_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
2442
|
+
<span class='ivar'>@output_commands</span> <span class='op'>=</span> <span class='kw'>false</span>
|
2443
|
+
|
2444
|
+
<span class='id identifier rubyid_help_option'>help_option</span>
|
2445
|
+
<span class='kw'>end</span>
|
2446
|
+
|
2447
|
+
<span class='comment'># Reads and optionally sets the version of this application.
|
2448
|
+
</span> <span class='comment'>#
|
2449
|
+
</span> <span class='comment'># @param value [String|nil] The new version of this application.
|
2450
|
+
</span> <span class='comment'># @return [String|nil] The version of this application.
|
2451
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_version'>version</span><span class='lparen'>(</span><span class='id identifier rubyid_value'>value</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
2452
|
+
<span class='ivar'>@version</span> <span class='op'>=</span> <span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_ensure_string'>ensure_string</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_value'>value</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span>
|
2453
|
+
<span class='ivar'>@version</span>
|
2454
|
+
<span class='kw'>end</span>
|
2455
|
+
|
2456
|
+
<span class='comment'># Executes this application.
|
2457
|
+
</span> <span class='comment'>#
|
2458
|
+
</span> <span class='comment'># @param args [Array] The command line to pass to this application. Defaults to `ARGV`.
|
2459
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
2460
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>||</span> <span class='const'>ARGV</span><span class='rparen'>)</span>
|
2461
|
+
<span class='kw'>end</span>
|
2462
|
+
|
2463
|
+
<span class='comment'># Adds a help command and a help option to this application.
|
2464
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_help_option'>help_option</span>
|
2465
|
+
<span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='label'>description:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_command_description'>help_command_description</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
2466
|
+
<span class='id identifier rubyid_action'>action</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_command'>command</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
2467
|
+
<span class='kw'>end</span>
|
2468
|
+
|
2469
|
+
<span class='id identifier rubyid_option'>option</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_short_form'>help_option_short_form</span><span class='comma'>,</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_long_form'>help_option_long_form</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>help:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_message'>help_message</span><span class='rparen'>)</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_application'>application</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span> <span class='rbrace'>}</span>
|
2470
|
+
<span class='kw'>end</span>
|
2471
|
+
|
2472
|
+
<span class='comment'># The name of the current executable.
|
2473
|
+
</span> <span class='comment'>#
|
2474
|
+
</span> <span class='comment'># @return [String] The name of the current executable.
|
2475
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_executable_name'>executable_name</span>
|
2476
|
+
<span class='gvar'>$0</span>
|
2477
|
+
<span class='kw'>end</span>
|
2478
|
+
|
2479
|
+
<span class='comment'># Shows a help about a command.
|
2480
|
+
</span> <span class='comment'>#
|
2481
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
2482
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
2483
|
+
<span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>|</span>
|
2484
|
+
<span class='comment'># Find the command across
|
2485
|
+
</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_find_command'>find_command</span><span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
2486
|
+
|
2487
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='kw'>then</span>
|
2488
|
+
<span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_commands'>commands</span><span class='lbracket'>[</span><span class='id identifier rubyid_next_command'>next_command</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
2489
|
+
<span class='kw'>else</span>
|
2490
|
+
<span class='kw'>break</span>
|
2491
|
+
<span class='kw'>end</span>
|
2492
|
+
<span class='kw'>end</span>
|
2493
|
+
|
2494
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span>
|
2495
|
+
<span class='kw'>end</span>
|
2496
|
+
|
2497
|
+
<span class='comment'># Runs a command into the shell.
|
2498
|
+
</span> <span class='comment'>#
|
2499
|
+
</span> <span class='comment'># @param command [String] The string to run.
|
2500
|
+
</span> <span class='comment'># @param message [String] A message to show before running.
|
2501
|
+
</span> <span class='comment'># @param show_exit [Boolean] If show the exit status.
|
2502
|
+
</span> <span class='comment'># @param fatal [Boolean] If quit in case of fatal errors.
|
2503
|
+
</span> <span class='comment'># @return [Hash] An hash with `status` and `output` keys.
|
2504
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span> <span class='op'>=</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span> <span class='op'>=</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
2505
|
+
<span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>!</span><span class='ivar'>@skip_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span><span class='comma'>,</span> <span class='ivar'>@output_commands</span><span class='comma'>,</span> <span class='ivar'>@show_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span><span class='rparen'>)</span>
|
2506
|
+
<span class='kw'>end</span>
|
2507
|
+
|
2508
|
+
<span class='id identifier rubyid_private'>private</span>
|
2509
|
+
<span class='comment'># Setup options for application creation.
|
2510
|
+
</span> <span class='comment'>#
|
2511
|
+
</span> <span class='comment'># @param options [Hash] The options to setups.
|
2512
|
+
</span> <span class='comment'># @return [Array] If to run the application, the arguments and the specified options.
|
2513
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
2514
|
+
<span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='label'>name:</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:default_application_name</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='label'>parent:</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='label'>application:</span> <span class='kw'>nil</span><span class='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_merge'>merge</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_ensure_hash'>ensure_hash</span><span class='rparen'>)</span>
|
2515
|
+
<span class='id identifier rubyid_run'>run</span> <span class='op'>=</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:run</span><span class='rparen'>)</span>
|
2516
|
+
<span class='lbracket'>[</span><span class='lparen'>(</span><span class='op'>!</span><span class='id identifier rubyid_run'>run</span><span class='period'>.</span><span class='id identifier rubyid_nil?'>nil?</span> <span class='op'>?</span> <span class='id identifier rubyid_run'>run</span> <span class='op'>:</span> <span class='kw'>true</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_to_boolean'>to_boolean</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='period'>.</span><span class='id identifier rubyid_delete'>delete</span><span class='lparen'>(</span><span class='symbol'>:__args__</span><span class='rparen'>)</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='rbracket'>]</span>
|
2517
|
+
<span class='kw'>end</span>
|
2518
|
+
|
2519
|
+
<span class='comment'># Create the application.
|
2520
|
+
</span> <span class='comment'>#
|
2521
|
+
</span> <span class='comment'># @param run [Boolean ]If to run the application.
|
2522
|
+
</span> <span class='comment'># @param args [Hash] The arguments to use for running.
|
2523
|
+
</span> <span class='comment'># @param options [Hash] The options of the application.
|
2524
|
+
</span> <span class='comment'># @return [Application] The new application.
|
2525
|
+
</span> <span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2526
|
+
<span class='id identifier rubyid_application'>application</span> <span class='op'>=</span> <span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2527
|
+
<span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='id identifier rubyid_application'>application</span> <span class='op'>&&</span> <span class='id identifier rubyid_run'>run</span>
|
2528
|
+
<span class='id identifier rubyid_application'>application</span>
|
2529
|
+
<span class='kw'>end</span>
|
2530
|
+
|
2531
|
+
<span class='comment'># Fetch a command list for showing help.
|
2532
|
+
</span> <span class='comment'>#
|
2533
|
+
</span> <span class='comment'># @param command [Command] The command to show help for.
|
2534
|
+
</span> <span class='kw'>def</span> <span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
2535
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_arguments'>arguments</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span> <span class='lbrace'>{</span><span class='op'>|</span><span class='id identifier rubyid_c'>c</span><span class='op'>|</span> <span class='id identifier rubyid_c'>c</span><span class='period'>.</span><span class='id identifier rubyid_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='rbrace'>}</span><span class='period'>.</span><span class='id identifier rubyid_flatten'>flatten</span><span class='period'>.</span><span class='id identifier rubyid_collect'>collect</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:strip</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_select'>select</span><span class='lparen'>(</span><span class='op'>&</span><span class='symbol'>:present?</span><span class='rparen'>)</span>
|
2536
|
+
<span class='kw'>end</span>
|
2537
|
+
<span class='kw'>end</span></pre>
|
2538
|
+
</td>
|
2539
|
+
</tr>
|
2540
|
+
</table>
|
2541
|
+
</div>
|
2542
|
+
|
2543
|
+
</div>
|
2544
|
+
|
2545
|
+
|
2546
|
+
<div id="class_method_details" class="method_details_list">
|
2547
|
+
<h2>Class Method Details</h2>
|
2548
|
+
|
2549
|
+
|
2550
|
+
<div class="method_details first">
|
2551
|
+
<h3 class="signature first" id="create-class_method">
|
2552
|
+
|
2553
|
+
+ (<tt><span class='object_link'><a href="" title="Bovem::Application (class)">Application</a></span></tt>) <strong>create</strong>(options = {}, &block)
|
2554
|
+
|
2555
|
+
|
2556
|
+
|
2557
|
+
|
2558
|
+
|
2559
|
+
</h3><div class="docstring">
|
2560
|
+
<div class="discussion">
|
2561
|
+
<p>Initializes a new Bovem application.</p>
|
2562
|
+
|
2563
|
+
<p>In options, you can override the command line arguments with <code>:__args__</code>, and you can skip execution by specifying <code>run: false</code>.</p>
|
2564
|
+
|
2565
|
+
|
2566
|
+
</div>
|
2567
|
+
</div>
|
2568
|
+
<div class="tags">
|
2569
|
+
<p class="tag_title">Parameters:</p>
|
2570
|
+
<ul class="param">
|
2571
|
+
|
2572
|
+
<li>
|
2573
|
+
|
2574
|
+
<span class='name'>options</span>
|
2575
|
+
|
2576
|
+
|
2577
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
2578
|
+
|
2579
|
+
|
2580
|
+
<em class="default">(defaults to: <tt>{}</tt>)</em>
|
2581
|
+
|
2582
|
+
|
2583
|
+
—
|
2584
|
+
<div class='inline'><p>The settings to initialize the application with.</p>
|
2585
|
+
</div>
|
2586
|
+
|
2587
|
+
</li>
|
2588
|
+
|
2589
|
+
</ul>
|
2590
|
+
|
2591
|
+
<p class="tag_title">Returns:</p>
|
2592
|
+
<ul class="return">
|
2593
|
+
|
2594
|
+
<li>
|
2595
|
+
|
2596
|
+
|
2597
|
+
<span class='type'>(<tt><span class='object_link'><a href="" title="Bovem::Application (class)">Application</a></span></tt>)</span>
|
2598
|
+
|
2599
|
+
|
2600
|
+
|
2601
|
+
—
|
2602
|
+
<div class='inline'><p>The created application.</p>
|
2603
|
+
</div>
|
2604
|
+
|
2605
|
+
</li>
|
2606
|
+
|
2607
|
+
</ul>
|
2608
|
+
<p class="tag_title">Raises:</p>
|
2609
|
+
<ul class="raise">
|
2610
|
+
|
2611
|
+
<li>
|
2612
|
+
|
2613
|
+
|
2614
|
+
<span class='type'>(<tt><span class='object_link'><a href="Errors/Error.html" title="Bovem::Errors::Error (class)">Bovem::Errors::Error</a></span></tt>)</span>
|
2615
|
+
|
2616
|
+
|
2617
|
+
|
2618
|
+
</li>
|
2619
|
+
|
2620
|
+
</ul>
|
2621
|
+
|
2622
|
+
<p class="tag_title">See Also:</p>
|
2623
|
+
<ul class="see">
|
2624
|
+
|
2625
|
+
<li><span class='object_link'><a href="Command.html#setup_with-instance_method" title="Bovem::Command#setup_with (method)">Command#setup_with</a></span></li>
|
2626
|
+
|
2627
|
+
</ul>
|
2628
|
+
|
2629
|
+
</div><table class="source_code">
|
2630
|
+
<tr>
|
2631
|
+
<td>
|
2632
|
+
<pre class="lines">
|
2633
|
+
|
2634
|
+
|
2635
|
+
40
|
2636
|
+
41
|
2637
|
+
42
|
2638
|
+
43
|
2639
|
+
44
|
2640
|
+
45
|
2641
|
+
46
|
2642
|
+
47
|
2643
|
+
48
|
2644
|
+
49
|
2645
|
+
50</pre>
|
2646
|
+
</td>
|
2647
|
+
<td>
|
2648
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 40</span>
|
2649
|
+
|
2650
|
+
<span class='kw'>def</span> <span class='kw'>self</span><span class='period'>.</span><span class='id identifier rubyid_create'>create</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='lbrace'>{</span><span class='rbrace'>}</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2651
|
+
<span class='id identifier rubyid_raise'>raise</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Errors</span><span class='op'>::</span><span class='const'>Error</span><span class='period'>.</span><span class='id identifier rubyid_new'>new</span><span class='lparen'>(</span><span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Application</span><span class='comma'>,</span> <span class='symbol'>:missing_block</span><span class='comma'>,</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Localizer</span><span class='period'>.</span><span class='id identifier rubyid_localize_on_locale'>localize_on_locale</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='lbracket'>[</span><span class='symbol'>:locale</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='symbol'>:missing_app_block</span><span class='rparen'>)</span><span class='rparen'>)</span> <span class='kw'>if</span> <span class='op'>!</span><span class='id identifier rubyid_block_given?'>block_given?</span>
|
2652
|
+
<span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span> <span class='op'>=</span> <span class='id identifier rubyid_setup_application_option'>setup_application_option</span><span class='lparen'>(</span><span class='id identifier rubyid_options'>options</span><span class='rparen'>)</span>
|
2653
|
+
|
2654
|
+
<span class='kw'>begin</span>
|
2655
|
+
<span class='id identifier rubyid_create_application'>create_application</span><span class='lparen'>(</span><span class='id identifier rubyid_run'>run</span><span class='comma'>,</span> <span class='id identifier rubyid_args'>args</span><span class='comma'>,</span> <span class='id identifier rubyid_options'>options</span><span class='comma'>,</span> <span class='op'>&</span><span class='id identifier rubyid_block'>block</span><span class='rparen'>)</span>
|
2656
|
+
<span class='kw'>rescue</span> <span class='op'>=></span> <span class='id identifier rubyid_e'>e</span>
|
2657
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_puts'>puts</span><span class='lparen'>(</span><span class='id identifier rubyid_e'>e</span><span class='period'>.</span><span class='id identifier rubyid_to_s'>to_s</span><span class='rparen'>)</span>
|
2658
|
+
<span class='const'>Kernel</span><span class='period'>.</span><span class='id identifier rubyid_exit'>exit</span><span class='lparen'>(</span><span class='int'>1</span><span class='rparen'>)</span>
|
2659
|
+
<span class='kw'>end</span>
|
2660
|
+
<span class='kw'>end</span></pre>
|
2661
|
+
</td>
|
2662
|
+
</tr>
|
2663
|
+
</table>
|
2664
|
+
</div>
|
2665
|
+
|
2666
|
+
</div>
|
2667
|
+
|
2668
|
+
<div id="instance_method_details" class="method_details_list">
|
2669
|
+
<h2>Instance Method Details</h2>
|
2670
|
+
|
2671
|
+
|
2672
|
+
<div class="method_details first">
|
2673
|
+
<h3 class="signature first" id="command_help-instance_method">
|
2674
|
+
|
2675
|
+
- (<tt>Object</tt>) <strong>command_help</strong>(command)
|
2676
|
+
|
2677
|
+
|
2678
|
+
|
2679
|
+
|
2680
|
+
|
2681
|
+
</h3><div class="docstring">
|
2682
|
+
<div class="discussion">
|
2683
|
+
<p>Shows a help about a command.</p>
|
2684
|
+
|
2685
|
+
|
2686
|
+
</div>
|
2687
|
+
</div>
|
2688
|
+
<div class="tags">
|
2689
|
+
<p class="tag_title">Parameters:</p>
|
2690
|
+
<ul class="param">
|
2691
|
+
|
2692
|
+
<li>
|
2693
|
+
|
2694
|
+
<span class='name'>command</span>
|
2695
|
+
|
2696
|
+
|
2697
|
+
<span class='type'>(<tt><span class='object_link'><a href="Command.html" title="Bovem::Command (class)">Command</a></span></tt>)</span>
|
2698
|
+
|
2699
|
+
|
2700
|
+
|
2701
|
+
—
|
2702
|
+
<div class='inline'><p>The command to show help for.</p>
|
2703
|
+
</div>
|
2704
|
+
|
2705
|
+
</li>
|
2706
|
+
|
2707
|
+
</ul>
|
2708
|
+
|
2709
|
+
|
2710
|
+
</div><table class="source_code">
|
2711
|
+
<tr>
|
2712
|
+
<td>
|
2713
|
+
<pre class="lines">
|
2714
|
+
|
2715
|
+
|
2716
|
+
102
|
2717
|
+
103
|
2718
|
+
104
|
2719
|
+
105
|
2720
|
+
106
|
2721
|
+
107
|
2722
|
+
108
|
2723
|
+
109
|
2724
|
+
110
|
2725
|
+
111
|
2726
|
+
112
|
2727
|
+
113
|
2728
|
+
114
|
2729
|
+
115</pre>
|
2730
|
+
</td>
|
2731
|
+
<td>
|
2732
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 102</span>
|
2733
|
+
|
2734
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span>
|
2735
|
+
<span class='id identifier rubyid_fetch_commands_for_help'>fetch_commands_for_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span><span class='period'>.</span><span class='id identifier rubyid_each'>each</span> <span class='kw'>do</span> <span class='op'>|</span><span class='id identifier rubyid_arg'>arg</span><span class='op'>|</span>
|
2736
|
+
<span class='comment'># Find the command across
|
2737
|
+
</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='op'>=</span> <span class='const'>Bovem</span><span class='op'>::</span><span class='const'>Parser</span><span class='period'>.</span><span class='id identifier rubyid_find_command'>find_command</span><span class='lparen'>(</span><span class='id identifier rubyid_arg'>arg</span><span class='comma'>,</span> <span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='rbracket'>]</span><span class='rparen'>)</span>
|
2738
|
+
|
2739
|
+
<span class='kw'>if</span> <span class='id identifier rubyid_next_command'>next_command</span> <span class='kw'>then</span>
|
2740
|
+
<span class='id identifier rubyid_command'>command</span> <span class='op'>=</span> <span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_commands'>commands</span><span class='lbracket'>[</span><span class='id identifier rubyid_next_command'>next_command</span><span class='lbracket'>[</span><span class='symbol'>:name</span><span class='rbracket'>]</span><span class='rbracket'>]</span>
|
2741
|
+
<span class='kw'>else</span>
|
2742
|
+
<span class='kw'>break</span>
|
2743
|
+
<span class='kw'>end</span>
|
2744
|
+
<span class='kw'>end</span>
|
2745
|
+
|
2746
|
+
<span class='id identifier rubyid_command'>command</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span>
|
2747
|
+
<span class='kw'>end</span></pre>
|
2748
|
+
</td>
|
2749
|
+
</tr>
|
2750
|
+
</table>
|
2751
|
+
</div>
|
2752
|
+
|
2753
|
+
<div class="method_details ">
|
2754
|
+
<h3 class="signature " id="executable_name-instance_method">
|
2755
|
+
|
2756
|
+
- (<tt>String</tt>) <strong>executable_name</strong>
|
2757
|
+
|
2758
|
+
|
2759
|
+
|
2760
|
+
|
2761
|
+
|
2762
|
+
</h3><div class="docstring">
|
2763
|
+
<div class="discussion">
|
2764
|
+
<p>The name of the current executable.</p>
|
2765
|
+
|
2766
|
+
|
2767
|
+
</div>
|
2768
|
+
</div>
|
2769
|
+
<div class="tags">
|
2770
|
+
|
2771
|
+
<p class="tag_title">Returns:</p>
|
2772
|
+
<ul class="return">
|
2773
|
+
|
2774
|
+
<li>
|
2775
|
+
|
2776
|
+
|
2777
|
+
<span class='type'>(<tt>String</tt>)</span>
|
2778
|
+
|
2779
|
+
|
2780
|
+
|
2781
|
+
—
|
2782
|
+
<div class='inline'><p>The name of the current executable.</p>
|
2783
|
+
</div>
|
2784
|
+
|
2785
|
+
</li>
|
2786
|
+
|
2787
|
+
</ul>
|
2788
|
+
|
2789
|
+
</div><table class="source_code">
|
2790
|
+
<tr>
|
2791
|
+
<td>
|
2792
|
+
<pre class="lines">
|
2793
|
+
|
2794
|
+
|
2795
|
+
95
|
2796
|
+
96
|
2797
|
+
97</pre>
|
2798
|
+
</td>
|
2799
|
+
<td>
|
2800
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 95</span>
|
2801
|
+
|
2802
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_executable_name'>executable_name</span>
|
2803
|
+
<span class='gvar'>$0</span>
|
2804
|
+
<span class='kw'>end</span></pre>
|
2805
|
+
</td>
|
2806
|
+
</tr>
|
2807
|
+
</table>
|
2808
|
+
</div>
|
2809
|
+
|
2810
|
+
<div class="method_details ">
|
2811
|
+
<h3 class="signature " id="execute-instance_method">
|
2812
|
+
|
2813
|
+
- (<tt>Object</tt>) <strong>execute</strong>(args = nil)
|
2814
|
+
|
2815
|
+
|
2816
|
+
|
2817
|
+
|
2818
|
+
|
2819
|
+
</h3><div class="docstring">
|
2820
|
+
<div class="discussion">
|
2821
|
+
<p>Executes this application.</p>
|
2822
|
+
|
2823
|
+
|
2824
|
+
</div>
|
2825
|
+
</div>
|
2826
|
+
<div class="tags">
|
2827
|
+
<p class="tag_title">Parameters:</p>
|
2828
|
+
<ul class="param">
|
2829
|
+
|
2830
|
+
<li>
|
2831
|
+
|
2832
|
+
<span class='name'>args</span>
|
2833
|
+
|
2834
|
+
|
2835
|
+
<span class='type'>(<tt>Array</tt>)</span>
|
2836
|
+
|
2837
|
+
|
2838
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
2839
|
+
|
2840
|
+
|
2841
|
+
—
|
2842
|
+
<div class='inline'><p>The command line to pass to this application. Defaults to <code>ARGV</code>.</p>
|
2843
|
+
</div>
|
2844
|
+
|
2845
|
+
</li>
|
2846
|
+
|
2847
|
+
</ul>
|
2848
|
+
|
2849
|
+
|
2850
|
+
</div><table class="source_code">
|
2851
|
+
<tr>
|
2852
|
+
<td>
|
2853
|
+
<pre class="lines">
|
2854
|
+
|
2855
|
+
|
2856
|
+
79
|
2857
|
+
80
|
2858
|
+
81</pre>
|
2859
|
+
</td>
|
2860
|
+
<td>
|
2861
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 79</span>
|
2862
|
+
|
2863
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_execute'>execute</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='rparen'>)</span>
|
2864
|
+
<span class='kw'>super</span><span class='lparen'>(</span><span class='id identifier rubyid_args'>args</span> <span class='op'>||</span> <span class='const'>ARGV</span><span class='rparen'>)</span>
|
2865
|
+
<span class='kw'>end</span></pre>
|
2866
|
+
</td>
|
2867
|
+
</tr>
|
2868
|
+
</table>
|
2869
|
+
</div>
|
2870
|
+
|
2871
|
+
<div class="method_details ">
|
2872
|
+
<h3 class="signature " id="help_option-instance_method">
|
2873
|
+
|
2874
|
+
- (<tt>Object</tt>) <strong>help_option</strong>
|
2875
|
+
|
2876
|
+
|
2877
|
+
|
2878
|
+
|
2879
|
+
|
2880
|
+
</h3><div class="docstring">
|
2881
|
+
<div class="discussion">
|
2882
|
+
<p>Adds a help command and a help option to this application.</p>
|
2883
|
+
|
2884
|
+
|
2885
|
+
</div>
|
2886
|
+
</div>
|
2887
|
+
<div class="tags">
|
2888
|
+
|
2889
|
+
|
2890
|
+
</div><table class="source_code">
|
2891
|
+
<tr>
|
2892
|
+
<td>
|
2893
|
+
<pre class="lines">
|
2894
|
+
|
2895
|
+
|
2896
|
+
84
|
2897
|
+
85
|
2898
|
+
86
|
2899
|
+
87
|
2900
|
+
88
|
2901
|
+
89
|
2902
|
+
90</pre>
|
2903
|
+
</td>
|
2904
|
+
<td>
|
2905
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 84</span>
|
2906
|
+
|
2907
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_help_option'>help_option</span>
|
2908
|
+
<span class='id identifier rubyid_command'>command</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='label'>description:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_command_description'>help_command_description</span><span class='rparen'>)</span> <span class='kw'>do</span>
|
2909
|
+
<span class='id identifier rubyid_action'>action</span> <span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_command'>command</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_command_help'>command_help</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='rparen'>)</span> <span class='rbrace'>}</span>
|
2910
|
+
<span class='kw'>end</span>
|
2911
|
+
|
2912
|
+
<span class='id identifier rubyid_option'>option</span><span class='lparen'>(</span><span class='symbol'>:help</span><span class='comma'>,</span> <span class='lbracket'>[</span><span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_short_form'>help_option_short_form</span><span class='comma'>,</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_option_long_form'>help_option_long_form</span><span class='rbracket'>]</span><span class='comma'>,</span> <span class='label'>help:</span> <span class='id identifier rubyid_i18n'>i18n</span><span class='period'>.</span><span class='id identifier rubyid_help_message'>help_message</span><span class='rparen'>)</span><span class='lbrace'>{</span> <span class='op'>|</span><span class='id identifier rubyid_application'>application</span><span class='comma'>,</span> <span class='id identifier rubyid__'>_</span><span class='op'>|</span> <span class='id identifier rubyid_application'>application</span><span class='period'>.</span><span class='id identifier rubyid_show_help'>show_help</span> <span class='rbrace'>}</span>
|
2913
|
+
<span class='kw'>end</span></pre>
|
2914
|
+
</td>
|
2915
|
+
</tr>
|
2916
|
+
</table>
|
2917
|
+
</div>
|
2918
|
+
|
2919
|
+
<div class="method_details ">
|
2920
|
+
<h3 class="signature " id="run-instance_method">
|
2921
|
+
|
2922
|
+
- (<tt>Hash</tt>) <strong>run</strong>(command, message = nil, show_exit = true, fatal = true)
|
2923
|
+
|
2924
|
+
|
2925
|
+
|
2926
|
+
|
2927
|
+
|
2928
|
+
</h3><div class="docstring">
|
2929
|
+
<div class="discussion">
|
2930
|
+
<p>Runs a command into the shell.</p>
|
2931
|
+
|
2932
|
+
|
2933
|
+
</div>
|
2934
|
+
</div>
|
2935
|
+
<div class="tags">
|
2936
|
+
<p class="tag_title">Parameters:</p>
|
2937
|
+
<ul class="param">
|
2938
|
+
|
2939
|
+
<li>
|
2940
|
+
|
2941
|
+
<span class='name'>command</span>
|
2942
|
+
|
2943
|
+
|
2944
|
+
<span class='type'>(<tt>String</tt>)</span>
|
2945
|
+
|
2946
|
+
|
2947
|
+
|
2948
|
+
—
|
2949
|
+
<div class='inline'><p>The string to run.</p>
|
2950
|
+
</div>
|
2951
|
+
|
2952
|
+
</li>
|
2953
|
+
|
2954
|
+
<li>
|
2955
|
+
|
2956
|
+
<span class='name'>message</span>
|
2957
|
+
|
2958
|
+
|
2959
|
+
<span class='type'>(<tt>String</tt>)</span>
|
2960
|
+
|
2961
|
+
|
2962
|
+
<em class="default">(defaults to: <tt>nil</tt>)</em>
|
2963
|
+
|
2964
|
+
|
2965
|
+
—
|
2966
|
+
<div class='inline'><p>A message to show before running.</p>
|
2967
|
+
</div>
|
2968
|
+
|
2969
|
+
</li>
|
2970
|
+
|
2971
|
+
<li>
|
2972
|
+
|
2973
|
+
<span class='name'>show_exit</span>
|
2974
|
+
|
2975
|
+
|
2976
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
2977
|
+
|
2978
|
+
|
2979
|
+
<em class="default">(defaults to: <tt>true</tt>)</em>
|
2980
|
+
|
2981
|
+
|
2982
|
+
—
|
2983
|
+
<div class='inline'><p>If show the exit status.</p>
|
2984
|
+
</div>
|
2985
|
+
|
2986
|
+
</li>
|
2987
|
+
|
2988
|
+
<li>
|
2989
|
+
|
2990
|
+
<span class='name'>fatal</span>
|
2991
|
+
|
2992
|
+
|
2993
|
+
<span class='type'>(<tt>Boolean</tt>)</span>
|
2994
|
+
|
2995
|
+
|
2996
|
+
<em class="default">(defaults to: <tt>true</tt>)</em>
|
2997
|
+
|
2998
|
+
|
2999
|
+
—
|
3000
|
+
<div class='inline'><p>If quit in case of fatal errors.</p>
|
3001
|
+
</div>
|
3002
|
+
|
3003
|
+
</li>
|
3004
|
+
|
3005
|
+
</ul>
|
3006
|
+
|
3007
|
+
<p class="tag_title">Returns:</p>
|
3008
|
+
<ul class="return">
|
3009
|
+
|
3010
|
+
<li>
|
3011
|
+
|
3012
|
+
|
3013
|
+
<span class='type'>(<tt>Hash</tt>)</span>
|
3014
|
+
|
3015
|
+
|
3016
|
+
|
3017
|
+
—
|
3018
|
+
<div class='inline'><p>An hash with <code>status</code> and <code>output</code> keys.</p>
|
3019
|
+
</div>
|
3020
|
+
|
3021
|
+
</li>
|
3022
|
+
|
3023
|
+
</ul>
|
3024
|
+
|
3025
|
+
</div><table class="source_code">
|
3026
|
+
<tr>
|
3027
|
+
<td>
|
3028
|
+
<pre class="lines">
|
3029
|
+
|
3030
|
+
|
3031
|
+
124
|
3032
|
+
125
|
3033
|
+
126</pre>
|
3034
|
+
</td>
|
3035
|
+
<td>
|
3036
|
+
<pre class="code"><span class="info file"># File 'lib/bovem/application.rb', line 124</span>
|
3037
|
+
|
3038
|
+
<span class='kw'>def</span> <span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span> <span class='op'>=</span> <span class='kw'>nil</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span> <span class='op'>=</span> <span class='kw'>true</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span> <span class='op'>=</span> <span class='kw'>true</span><span class='rparen'>)</span>
|
3039
|
+
<span class='ivar'>@shell</span><span class='period'>.</span><span class='id identifier rubyid_run'>run</span><span class='lparen'>(</span><span class='id identifier rubyid_command'>command</span><span class='comma'>,</span> <span class='id identifier rubyid_message'>message</span><span class='comma'>,</span> <span class='op'>!</span><span class='ivar'>@skip_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_show_exit'>show_exit</span><span class='comma'>,</span> <span class='ivar'>@output_commands</span><span class='comma'>,</span> <span class='ivar'>@show_commands</span><span class='comma'>,</span> <span class='id identifier rubyid_fatal'>fatal</span><span class='rparen'>)</span>
|
3040
|
+
<span class='kw'>end</span></pre>
|
3041
|
+
</td>
|
3042
|
+
</tr>
|
3043
|
+
</table>
|
3044
|
+
</div>
|
3045
|
+
|
3046
|
+
</div>
|
3047
|
+
|
3048
|
+
</div>
|
3049
|
+
|
3050
|
+
<div id="footer">
|
3051
|
+
Generated on Sat Aug 3 13:50:17 2013 by
|
3052
|
+
<a href="http://yardoc.org" title="Yay! A Ruby Documentation Tool" target="_parent">yard</a>
|
3053
|
+
0.8.7 (ruby-2.0.0).
|
3054
|
+
</div>
|
3055
|
+
|
3056
|
+
</body>
|
3057
|
+
</html>
|