nucleon 0.2.0 → 0.2.1

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.
Files changed (141) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +2 -0
  4. data/VERSION +1 -1
  5. data/lib/core/config.rb +21 -20
  6. data/lib/core/environment.rb +2 -2
  7. data/lib/core/facade.rb +15 -0
  8. data/lib/core/mixin/action/registration.rb +84 -0
  9. data/lib/core/mixin/sub_config.rb +5 -5
  10. data/lib/core/plugin/action.rb +66 -10
  11. data/lib/core/plugin/base.rb +100 -19
  12. data/lib/core/plugin/command.rb +4 -0
  13. data/lib/core/util/cache.rb +13 -1
  14. data/lib/core/util/cli.rb +77 -11
  15. data/lib/core/util/console.rb +55 -72
  16. data/lib/core/util/data.rb +19 -9
  17. data/lib/core/util/logger.rb +16 -6
  18. data/lib/core/util/shell.rb +3 -1
  19. data/lib/core/util/ssh.rb +28 -25
  20. data/lib/nucleon/translator/JSON.rb +2 -2
  21. data/lib/nucleon/translator/YAML.rb +2 -2
  22. data/lib/nucleon_base.rb +22 -8
  23. data/nucleon.gemspec +122 -2
  24. data/rdoc/site/0.2.0/ARCHITECTURE_rdoc.html +638 -0
  25. data/rdoc/site/0.2.0/Hash.html +351 -0
  26. data/rdoc/site/0.2.0/Kernel.html +416 -0
  27. data/rdoc/site/0.2.0/Nucleon.html +607 -0
  28. data/rdoc/site/0.2.0/Nucleon/Action.html +284 -0
  29. data/rdoc/site/0.2.0/Nucleon/Action/Extract.html +455 -0
  30. data/rdoc/site/0.2.0/Nucleon/Action/Project.html +283 -0
  31. data/rdoc/site/0.2.0/Nucleon/Action/Project/Add.html +500 -0
  32. data/rdoc/site/0.2.0/Nucleon/Action/Project/Create.html +457 -0
  33. data/rdoc/site/0.2.0/Nucleon/Action/Project/Remove.html +503 -0
  34. data/rdoc/site/0.2.0/Nucleon/Action/Project/Save.html +476 -0
  35. data/rdoc/site/0.2.0/Nucleon/Action/Project/Update.html +423 -0
  36. data/rdoc/site/0.2.0/Nucleon/Codes.html +567 -0
  37. data/rdoc/site/0.2.0/Nucleon/Command.html +279 -0
  38. data/rdoc/site/0.2.0/Nucleon/Command/Bash.html +548 -0
  39. data/rdoc/site/0.2.0/Nucleon/Config.html +1631 -0
  40. data/rdoc/site/0.2.0/Nucleon/Config/Collection.html +513 -0
  41. data/rdoc/site/0.2.0/Nucleon/Config/Options.html +493 -0
  42. data/rdoc/site/0.2.0/Nucleon/Core.html +639 -0
  43. data/rdoc/site/0.2.0/Nucleon/Environment.html +1208 -0
  44. data/rdoc/site/0.2.0/Nucleon/Errors.html +279 -0
  45. data/rdoc/site/0.2.0/Nucleon/Errors/BatchError.html +285 -0
  46. data/rdoc/site/0.2.0/Nucleon/Errors/NucleonError.html +661 -0
  47. data/rdoc/site/0.2.0/Nucleon/Errors/SSHUnavailable.html +285 -0
  48. data/rdoc/site/0.2.0/Nucleon/Event.html +279 -0
  49. data/rdoc/site/0.2.0/Nucleon/Event/Regex.html +471 -0
  50. data/rdoc/site/0.2.0/Nucleon/Facade.html +2409 -0
  51. data/rdoc/site/0.2.0/Nucleon/Gems.html +639 -0
  52. data/rdoc/site/0.2.0/Nucleon/Manager.html +1860 -0
  53. data/rdoc/site/0.2.0/Nucleon/Mixin.html +288 -0
  54. data/rdoc/site/0.2.0/Nucleon/Mixin/Action.html +281 -0
  55. data/rdoc/site/0.2.0/Nucleon/Mixin/Action/Commit.html +385 -0
  56. data/rdoc/site/0.2.0/Nucleon/Mixin/Action/Project.html +399 -0
  57. data/rdoc/site/0.2.0/Nucleon/Mixin/Action/Push.html +375 -0
  58. data/rdoc/site/0.2.0/Nucleon/Mixin/Colors.html +549 -0
  59. data/rdoc/site/0.2.0/Nucleon/Mixin/ConfigCollection.html +485 -0
  60. data/rdoc/site/0.2.0/Nucleon/Mixin/ConfigOptions.html +453 -0
  61. data/rdoc/site/0.2.0/Nucleon/Mixin/Macro.html +280 -0
  62. data/rdoc/site/0.2.0/Nucleon/Mixin/Macro/ObjectInterface.html +699 -0
  63. data/rdoc/site/0.2.0/Nucleon/Mixin/Macro/PluginInterface.html +686 -0
  64. data/rdoc/site/0.2.0/Nucleon/Mixin/Settings.html +485 -0
  65. data/rdoc/site/0.2.0/Nucleon/Mixin/SubConfig.html +891 -0
  66. data/rdoc/site/0.2.0/Nucleon/Parallel.html +330 -0
  67. data/rdoc/site/0.2.0/Nucleon/Parallel/ClassMethods.html +329 -0
  68. data/rdoc/site/0.2.0/Nucleon/Parallel/InstanceMethods.html +456 -0
  69. data/rdoc/site/0.2.0/Nucleon/Plugin.html +286 -0
  70. data/rdoc/site/0.2.0/Nucleon/Plugin/Action.html +1829 -0
  71. data/rdoc/site/0.2.0/Nucleon/Plugin/Action/Option.html +463 -0
  72. data/rdoc/site/0.2.0/Nucleon/Plugin/Base.html +1803 -0
  73. data/rdoc/site/0.2.0/Nucleon/Plugin/Command.html +725 -0
  74. data/rdoc/site/0.2.0/Nucleon/Plugin/Event.html +446 -0
  75. data/rdoc/site/0.2.0/Nucleon/Plugin/Extension.html +285 -0
  76. data/rdoc/site/0.2.0/Nucleon/Plugin/Project.html +2898 -0
  77. data/rdoc/site/0.2.0/Nucleon/Plugin/Template.html +480 -0
  78. data/rdoc/site/0.2.0/Nucleon/Plugin/Translator.html +375 -0
  79. data/rdoc/site/0.2.0/Nucleon/Project.html +280 -0
  80. data/rdoc/site/0.2.0/Nucleon/Project/Git.html +1805 -0
  81. data/rdoc/site/0.2.0/Nucleon/Project/Github.html +553 -0
  82. data/rdoc/site/0.2.0/Nucleon/Template.html +281 -0
  83. data/rdoc/site/0.2.0/Nucleon/Template/JSON.html +333 -0
  84. data/rdoc/site/0.2.0/Nucleon/Template/Wrapper.html +333 -0
  85. data/rdoc/site/0.2.0/Nucleon/Template/YAML.html +333 -0
  86. data/rdoc/site/0.2.0/Nucleon/Translator.html +280 -0
  87. data/rdoc/site/0.2.0/Nucleon/Translator/JSON.html +370 -0
  88. data/rdoc/site/0.2.0/Nucleon/Translator/YAML.html +370 -0
  89. data/rdoc/site/0.2.0/Nucleon/Util.html +289 -0
  90. data/rdoc/site/0.2.0/Nucleon/Util/CLI.html +392 -0
  91. data/rdoc/site/0.2.0/Nucleon/Util/CLI/Parser.html +1250 -0
  92. data/rdoc/site/0.2.0/Nucleon/Util/Cache.html +784 -0
  93. data/rdoc/site/0.2.0/Nucleon/Util/Console.html +1318 -0
  94. data/rdoc/site/0.2.0/Nucleon/Util/Data.html +1411 -0
  95. data/rdoc/site/0.2.0/Nucleon/Util/Disk.html +526 -0
  96. data/rdoc/site/0.2.0/Nucleon/Util/Git.html +365 -0
  97. data/rdoc/site/0.2.0/Nucleon/Util/Liquid.html +369 -0
  98. data/rdoc/site/0.2.0/Nucleon/Util/Logger.html +810 -0
  99. data/rdoc/site/0.2.0/Nucleon/Util/Package.html +562 -0
  100. data/rdoc/site/0.2.0/Nucleon/Util/SSH.html +1033 -0
  101. data/rdoc/site/0.2.0/Nucleon/Util/SSH/Keypair.html +605 -0
  102. data/rdoc/site/0.2.0/Nucleon/Util/Shell.html +693 -0
  103. data/rdoc/site/0.2.0/Nucleon/Util/Shell/Result.html +501 -0
  104. data/rdoc/site/0.2.0/README_rdoc.html +316 -0
  105. data/rdoc/site/0.2.0/TODO_rdoc.html +265 -0
  106. data/rdoc/site/0.2.0/created.rid +61 -0
  107. data/rdoc/site/0.2.0/images/add.png +0 -0
  108. data/rdoc/site/0.2.0/images/brick.png +0 -0
  109. data/rdoc/site/0.2.0/images/brick_link.png +0 -0
  110. data/rdoc/site/0.2.0/images/bug.png +0 -0
  111. data/rdoc/site/0.2.0/images/bullet_black.png +0 -0
  112. data/rdoc/site/0.2.0/images/bullet_toggle_minus.png +0 -0
  113. data/rdoc/site/0.2.0/images/bullet_toggle_plus.png +0 -0
  114. data/rdoc/site/0.2.0/images/date.png +0 -0
  115. data/rdoc/site/0.2.0/images/delete.png +0 -0
  116. data/rdoc/site/0.2.0/images/find.png +0 -0
  117. data/rdoc/site/0.2.0/images/loadingAnimation.gif +0 -0
  118. data/rdoc/site/0.2.0/images/macFFBgHack.png +0 -0
  119. data/rdoc/site/0.2.0/images/package.png +0 -0
  120. data/rdoc/site/0.2.0/images/page_green.png +0 -0
  121. data/rdoc/site/0.2.0/images/page_white_text.png +0 -0
  122. data/rdoc/site/0.2.0/images/page_white_width.png +0 -0
  123. data/rdoc/site/0.2.0/images/plugin.png +0 -0
  124. data/rdoc/site/0.2.0/images/ruby.png +0 -0
  125. data/rdoc/site/0.2.0/images/tag_blue.png +0 -0
  126. data/rdoc/site/0.2.0/images/tag_green.png +0 -0
  127. data/rdoc/site/0.2.0/images/transparent.png +0 -0
  128. data/rdoc/site/0.2.0/images/wrench.png +0 -0
  129. data/rdoc/site/0.2.0/images/wrench_orange.png +0 -0
  130. data/rdoc/site/0.2.0/images/zoom.png +0 -0
  131. data/rdoc/site/0.2.0/index.html +315 -0
  132. data/rdoc/site/0.2.0/js/darkfish.js +155 -0
  133. data/rdoc/site/0.2.0/js/jquery.js +18 -0
  134. data/rdoc/site/0.2.0/js/navigation.js +142 -0
  135. data/rdoc/site/0.2.0/js/search.js +94 -0
  136. data/rdoc/site/0.2.0/js/search_index.js +1 -0
  137. data/rdoc/site/0.2.0/js/searcher.js +228 -0
  138. data/rdoc/site/0.2.0/rdoc.css +543 -0
  139. data/rdoc/site/0.2.0/table_of_contents.html +1657 -0
  140. data/spec/core/util/console_spec.rb +50 -18
  141. metadata +133 -2
@@ -0,0 +1,286 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>module Nucleon::Plugin - nucleon 0.2.0</title>
8
+
9
+ <link type="text/css" media="screen" href="../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="module">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../index.html">Home</a>
28
+ <a href="../table_of_contents.html#classes">Classes</a>
29
+ <a href="../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/core/plugin/action.rb
51
+ <li>lib/core/plugin/base.rb
52
+ <li>lib/core/plugin/command.rb
53
+ <li>lib/core/plugin/event.rb
54
+ <li>lib/core/plugin/extension.rb
55
+ <li>lib/core/plugin/project.rb
56
+ <li>lib/core/plugin/template.rb
57
+ <li>lib/core/plugin/translator.rb
58
+ </ul>
59
+ </nav>
60
+
61
+
62
+ </div>
63
+
64
+ <div id="class-metadata">
65
+
66
+
67
+
68
+
69
+ </div>
70
+
71
+ <div id="project-metadata">
72
+ <nav id="fileindex-section" class="section project-section">
73
+ <h3 class="section-header">Pages</h3>
74
+
75
+ <ul>
76
+
77
+ <li class="file"><a href="../ARCHITECTURE_rdoc.html">ARCHITECTURE</a>
78
+
79
+ <li class="file"><a href="../README_rdoc.html">README</a>
80
+
81
+ <li class="file"><a href="../TODO_rdoc.html">TODO</a>
82
+
83
+ </ul>
84
+ </nav>
85
+
86
+ <nav id="classindex-section" class="section project-section">
87
+ <h3 class="section-header">Class and Module Index</h3>
88
+
89
+ <ul class="link-list">
90
+
91
+ <li><a href="../Nucleon.html">Nucleon</a>
92
+
93
+ <li><a href="../Nucleon/Action.html">Nucleon::Action</a>
94
+
95
+ <li><a href="../Nucleon/Action/Extract.html">Nucleon::Action::Extract</a>
96
+
97
+ <li><a href="../Nucleon/Action/Project.html">Nucleon::Action::Project</a>
98
+
99
+ <li><a href="../Nucleon/Action/Project/Add.html">Nucleon::Action::Project::Add</a>
100
+
101
+ <li><a href="../Nucleon/Action/Project/Create.html">Nucleon::Action::Project::Create</a>
102
+
103
+ <li><a href="../Nucleon/Action/Project/Remove.html">Nucleon::Action::Project::Remove</a>
104
+
105
+ <li><a href="../Nucleon/Action/Project/Save.html">Nucleon::Action::Project::Save</a>
106
+
107
+ <li><a href="../Nucleon/Action/Project/Update.html">Nucleon::Action::Project::Update</a>
108
+
109
+ <li><a href="../Nucleon/Codes.html">Nucleon::Codes</a>
110
+
111
+ <li><a href="../Nucleon/Command.html">Nucleon::Command</a>
112
+
113
+ <li><a href="../Nucleon/Command/Bash.html">Nucleon::Command::Bash</a>
114
+
115
+ <li><a href="../Nucleon/Config.html">Nucleon::Config</a>
116
+
117
+ <li><a href="../Nucleon/Config/Collection.html">Nucleon::Config::Collection</a>
118
+
119
+ <li><a href="../Nucleon/Config/Options.html">Nucleon::Config::Options</a>
120
+
121
+ <li><a href="../Nucleon/Core.html">Nucleon::Core</a>
122
+
123
+ <li><a href="../Nucleon/Environment.html">Nucleon::Environment</a>
124
+
125
+ <li><a href="../Nucleon/Errors.html">Nucleon::Errors</a>
126
+
127
+ <li><a href="../Nucleon/Errors/BatchError.html">Nucleon::Errors::BatchError</a>
128
+
129
+ <li><a href="../Nucleon/Errors/NucleonError.html">Nucleon::Errors::NucleonError</a>
130
+
131
+ <li><a href="../Nucleon/Errors/SSHUnavailable.html">Nucleon::Errors::SSHUnavailable</a>
132
+
133
+ <li><a href="../Nucleon/Event.html">Nucleon::Event</a>
134
+
135
+ <li><a href="../Nucleon/Event/Regex.html">Nucleon::Event::Regex</a>
136
+
137
+ <li><a href="../Nucleon/Facade.html">Nucleon::Facade</a>
138
+
139
+ <li><a href="../Nucleon/Gems.html">Nucleon::Gems</a>
140
+
141
+ <li><a href="../Nucleon/Manager.html">Nucleon::Manager</a>
142
+
143
+ <li><a href="../Nucleon/Mixin.html">Nucleon::Mixin</a>
144
+
145
+ <li><a href="../Nucleon/Mixin/Action.html">Nucleon::Mixin::Action</a>
146
+
147
+ <li><a href="../Nucleon/Mixin/Action/Commit.html">Nucleon::Mixin::Action::Commit</a>
148
+
149
+ <li><a href="../Nucleon/Mixin/Action/Project.html">Nucleon::Mixin::Action::Project</a>
150
+
151
+ <li><a href="../Nucleon/Mixin/Action/Push.html">Nucleon::Mixin::Action::Push</a>
152
+
153
+ <li><a href="../Nucleon/Mixin/Colors.html">Nucleon::Mixin::Colors</a>
154
+
155
+ <li><a href="../Nucleon/Mixin/ConfigCollection.html">Nucleon::Mixin::ConfigCollection</a>
156
+
157
+ <li><a href="../Nucleon/Mixin/ConfigOptions.html">Nucleon::Mixin::ConfigOptions</a>
158
+
159
+ <li><a href="../Nucleon/Mixin/Macro.html">Nucleon::Mixin::Macro</a>
160
+
161
+ <li><a href="../Nucleon/Mixin/Macro/ObjectInterface.html">Nucleon::Mixin::Macro::ObjectInterface</a>
162
+
163
+ <li><a href="../Nucleon/Mixin/Macro/PluginInterface.html">Nucleon::Mixin::Macro::PluginInterface</a>
164
+
165
+ <li><a href="../Nucleon/Mixin/Settings.html">Nucleon::Mixin::Settings</a>
166
+
167
+ <li><a href="../Nucleon/Mixin/SubConfig.html">Nucleon::Mixin::SubConfig</a>
168
+
169
+ <li><a href="../Nucleon/Parallel.html">Nucleon::Parallel</a>
170
+
171
+ <li><a href="../Nucleon/Parallel/ClassMethods.html">Nucleon::Parallel::ClassMethods</a>
172
+
173
+ <li><a href="../Nucleon/Parallel/InstanceMethods.html">Nucleon::Parallel::InstanceMethods</a>
174
+
175
+ <li><a href="../Nucleon/Plugin.html">Nucleon::Plugin</a>
176
+
177
+ <li><a href="../Nucleon/Plugin/Action.html">Nucleon::Plugin::Action</a>
178
+
179
+ <li><a href="../Nucleon/Plugin/Action/Option.html">Nucleon::Plugin::Action::Option</a>
180
+
181
+ <li><a href="../Nucleon/Plugin/Base.html">Nucleon::Plugin::Base</a>
182
+
183
+ <li><a href="../Nucleon/Plugin/Command.html">Nucleon::Plugin::Command</a>
184
+
185
+ <li><a href="../Nucleon/Plugin/Event.html">Nucleon::Plugin::Event</a>
186
+
187
+ <li><a href="../Nucleon/Plugin/Extension.html">Nucleon::Plugin::Extension</a>
188
+
189
+ <li><a href="../Nucleon/Plugin/Project.html">Nucleon::Plugin::Project</a>
190
+
191
+ <li><a href="../Nucleon/Plugin/Template.html">Nucleon::Plugin::Template</a>
192
+
193
+ <li><a href="../Nucleon/Plugin/Translator.html">Nucleon::Plugin::Translator</a>
194
+
195
+ <li><a href="../Nucleon/Project.html">Nucleon::Project</a>
196
+
197
+ <li><a href="../Nucleon/Project/Git.html">Nucleon::Project::Git</a>
198
+
199
+ <li><a href="../Nucleon/Project/Github.html">Nucleon::Project::Github</a>
200
+
201
+ <li><a href="../Nucleon/Template.html">Nucleon::Template</a>
202
+
203
+ <li><a href="../Nucleon/Template/JSON.html">Nucleon::Template::JSON</a>
204
+
205
+ <li><a href="../Nucleon/Template/Wrapper.html">Nucleon::Template::Wrapper</a>
206
+
207
+ <li><a href="../Nucleon/Template/YAML.html">Nucleon::Template::YAML</a>
208
+
209
+ <li><a href="../Nucleon/Translator.html">Nucleon::Translator</a>
210
+
211
+ <li><a href="../Nucleon/Translator/JSON.html">Nucleon::Translator::JSON</a>
212
+
213
+ <li><a href="../Nucleon/Translator/YAML.html">Nucleon::Translator::YAML</a>
214
+
215
+ <li><a href="../Nucleon/Util.html">Nucleon::Util</a>
216
+
217
+ <li><a href="../Nucleon/Util/CLI.html">Nucleon::Util::CLI</a>
218
+
219
+ <li><a href="../Nucleon/Util/CLI/Parser.html">Nucleon::Util::CLI::Parser</a>
220
+
221
+ <li><a href="../Nucleon/Util/Cache.html">Nucleon::Util::Cache</a>
222
+
223
+ <li><a href="../Nucleon/Util/Console.html">Nucleon::Util::Console</a>
224
+
225
+ <li><a href="../Nucleon/Util/Data.html">Nucleon::Util::Data</a>
226
+
227
+ <li><a href="../Nucleon/Util/Disk.html">Nucleon::Util::Disk</a>
228
+
229
+ <li><a href="../Nucleon/Util/Git.html">Nucleon::Util::Git</a>
230
+
231
+ <li><a href="../Nucleon/Util/Liquid.html">Nucleon::Util::Liquid</a>
232
+
233
+ <li><a href="../Nucleon/Util/Logger.html">Nucleon::Util::Logger</a>
234
+
235
+ <li><a href="../Nucleon/Util/Package.html">Nucleon::Util::Package</a>
236
+
237
+ <li><a href="../Nucleon/Util/SSH.html">Nucleon::Util::SSH</a>
238
+
239
+ <li><a href="../Nucleon/Util/SSH/Keypair.html">Nucleon::Util::SSH::Keypair</a>
240
+
241
+ <li><a href="../Nucleon/Util/Shell.html">Nucleon::Util::Shell</a>
242
+
243
+ <li><a href="../Nucleon/Util/Shell/Result.html">Nucleon::Util::Shell::Result</a>
244
+
245
+ <li><a href="../Hash.html">Hash</a>
246
+
247
+ <li><a href="../Kernel.html">Kernel</a>
248
+
249
+ </ul>
250
+ </nav>
251
+
252
+ </div>
253
+ </nav>
254
+
255
+ <div id="documentation">
256
+ <h1 class="module">module Nucleon::Plugin</h1>
257
+
258
+ <div id="description" class="description">
259
+
260
+ </div><!-- description -->
261
+
262
+
263
+
264
+
265
+ <section id="5Buntitled-5D" class="documentation-section">
266
+
267
+
268
+
269
+
270
+
271
+
272
+
273
+
274
+ <!-- Methods -->
275
+
276
+ </section><!-- 5Buntitled-5D -->
277
+
278
+ </div><!-- documentation -->
279
+
280
+
281
+ <footer id="validator-badges">
282
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
283
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
284
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
285
+ </footer>
286
+
@@ -0,0 +1,1829 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>class Nucleon::Plugin::Action - nucleon 0.2.0</title>
8
+
9
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../../js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="class">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../../index.html">Home</a>
28
+ <a href="../../table_of_contents.html#classes">Classes</a>
29
+ <a href="../../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/core/plugin/action.rb
51
+ </ul>
52
+ </nav>
53
+
54
+
55
+ </div>
56
+
57
+ <div id="class-metadata">
58
+
59
+ <nav id="parent-class-section" class="section">
60
+ <h3 class="section-header">Parent</h3>
61
+
62
+ <p class="link">Nucleon.plugin_class(:nucleon, :base)
63
+
64
+ </nav>
65
+
66
+
67
+ <!-- Method Quickref -->
68
+ <nav id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+
71
+ <ul class="link-list">
72
+
73
+ <li><a href="#method-c-action_help">::action_help</a>
74
+
75
+ <li><a href="#method-c-action_index">::action_index</a>
76
+
77
+ <li><a href="#method-c-components">::components</a>
78
+
79
+ <li><a href="#method-c-describe">::describe</a>
80
+
81
+ <li><a href="#method-c-exec">::exec</a>
82
+
83
+ <li><a href="#method-c-exec_cli">::exec_cli</a>
84
+
85
+ <li><a href="#method-c-exec_safe">::exec_safe</a>
86
+
87
+ <li><a href="#method-c-namespace">::namespace</a>
88
+
89
+ <li><a href="#method-c-render_colorized">::render_colorized</a>
90
+
91
+ <li><a href="#method-c-search_actions">::search_actions</a>
92
+
93
+ <li><a href="#method-i-arguments">#arguments</a>
94
+
95
+ <li><a href="#method-i-cleanup">#cleanup</a>
96
+
97
+ <li><a href="#method-i-config">#config</a>
98
+
99
+ <li><a href="#method-i-config_subset">#config_subset</a>
100
+
101
+ <li><a href="#method-i-configure">#configure</a>
102
+
103
+ <li><a href="#method-i-execute">#execute</a>
104
+
105
+ <li><a href="#method-i-help">#help</a>
106
+
107
+ <li><a href="#method-i-ignore">#ignore</a>
108
+
109
+ <li><a href="#method-i-index_config">#index_config</a>
110
+
111
+ <li><a href="#method-i-namespace">#namespace</a>
112
+
113
+ <li><a href="#method-i-normalize">#normalize</a>
114
+
115
+ <li><a href="#method-i-options">#options</a>
116
+
117
+ <li><a href="#method-i-parse">#parse</a>
118
+
119
+ <li><a href="#method-i-parse_base">#parse_base</a>
120
+
121
+ <li><a href="#method-i-processed-3F">#processed?</a>
122
+
123
+ <li><a href="#method-i-register">#register</a>
124
+
125
+ <li><a href="#method-i-remove">#remove</a>
126
+
127
+ <li><a href="#method-i-render_options">#render_options</a>
128
+
129
+ <li><a href="#method-i-result">#result</a>
130
+
131
+ <li><a href="#method-i-result-3D">#result=</a>
132
+
133
+ <li><a href="#method-i-run">#run</a>
134
+
135
+ <li><a href="#method-i-settings">#settings</a>
136
+
137
+ <li><a href="#method-i-usage">#usage</a>
138
+
139
+ <li><a href="#method-i-usage-3D">#usage=</a>
140
+
141
+ <li><a href="#method-i-validate">#validate</a>
142
+
143
+ </ul>
144
+ </nav>
145
+
146
+ </div>
147
+
148
+ <div id="project-metadata">
149
+ <nav id="fileindex-section" class="section project-section">
150
+ <h3 class="section-header">Pages</h3>
151
+
152
+ <ul>
153
+
154
+ <li class="file"><a href="../../ARCHITECTURE_rdoc.html">ARCHITECTURE</a>
155
+
156
+ <li class="file"><a href="../../README_rdoc.html">README</a>
157
+
158
+ <li class="file"><a href="../../TODO_rdoc.html">TODO</a>
159
+
160
+ </ul>
161
+ </nav>
162
+
163
+ <nav id="classindex-section" class="section project-section">
164
+ <h3 class="section-header">Class and Module Index</h3>
165
+
166
+ <ul class="link-list">
167
+
168
+ <li><a href="../../Nucleon.html">Nucleon</a>
169
+
170
+ <li><a href="../../Nucleon/Action.html">Nucleon::Action</a>
171
+
172
+ <li><a href="../../Nucleon/Action/Extract.html">Nucleon::Action::Extract</a>
173
+
174
+ <li><a href="../../Nucleon/Action/Project.html">Nucleon::Action::Project</a>
175
+
176
+ <li><a href="../../Nucleon/Action/Project/Add.html">Nucleon::Action::Project::Add</a>
177
+
178
+ <li><a href="../../Nucleon/Action/Project/Create.html">Nucleon::Action::Project::Create</a>
179
+
180
+ <li><a href="../../Nucleon/Action/Project/Remove.html">Nucleon::Action::Project::Remove</a>
181
+
182
+ <li><a href="../../Nucleon/Action/Project/Save.html">Nucleon::Action::Project::Save</a>
183
+
184
+ <li><a href="../../Nucleon/Action/Project/Update.html">Nucleon::Action::Project::Update</a>
185
+
186
+ <li><a href="../../Nucleon/Codes.html">Nucleon::Codes</a>
187
+
188
+ <li><a href="../../Nucleon/Command.html">Nucleon::Command</a>
189
+
190
+ <li><a href="../../Nucleon/Command/Bash.html">Nucleon::Command::Bash</a>
191
+
192
+ <li><a href="../../Nucleon/Config.html">Nucleon::Config</a>
193
+
194
+ <li><a href="../../Nucleon/Config/Collection.html">Nucleon::Config::Collection</a>
195
+
196
+ <li><a href="../../Nucleon/Config/Options.html">Nucleon::Config::Options</a>
197
+
198
+ <li><a href="../../Nucleon/Core.html">Nucleon::Core</a>
199
+
200
+ <li><a href="../../Nucleon/Environment.html">Nucleon::Environment</a>
201
+
202
+ <li><a href="../../Nucleon/Errors.html">Nucleon::Errors</a>
203
+
204
+ <li><a href="../../Nucleon/Errors/BatchError.html">Nucleon::Errors::BatchError</a>
205
+
206
+ <li><a href="../../Nucleon/Errors/NucleonError.html">Nucleon::Errors::NucleonError</a>
207
+
208
+ <li><a href="../../Nucleon/Errors/SSHUnavailable.html">Nucleon::Errors::SSHUnavailable</a>
209
+
210
+ <li><a href="../../Nucleon/Event.html">Nucleon::Event</a>
211
+
212
+ <li><a href="../../Nucleon/Event/Regex.html">Nucleon::Event::Regex</a>
213
+
214
+ <li><a href="../../Nucleon/Facade.html">Nucleon::Facade</a>
215
+
216
+ <li><a href="../../Nucleon/Gems.html">Nucleon::Gems</a>
217
+
218
+ <li><a href="../../Nucleon/Manager.html">Nucleon::Manager</a>
219
+
220
+ <li><a href="../../Nucleon/Mixin.html">Nucleon::Mixin</a>
221
+
222
+ <li><a href="../../Nucleon/Mixin/Action.html">Nucleon::Mixin::Action</a>
223
+
224
+ <li><a href="../../Nucleon/Mixin/Action/Commit.html">Nucleon::Mixin::Action::Commit</a>
225
+
226
+ <li><a href="../../Nucleon/Mixin/Action/Project.html">Nucleon::Mixin::Action::Project</a>
227
+
228
+ <li><a href="../../Nucleon/Mixin/Action/Push.html">Nucleon::Mixin::Action::Push</a>
229
+
230
+ <li><a href="../../Nucleon/Mixin/Colors.html">Nucleon::Mixin::Colors</a>
231
+
232
+ <li><a href="../../Nucleon/Mixin/ConfigCollection.html">Nucleon::Mixin::ConfigCollection</a>
233
+
234
+ <li><a href="../../Nucleon/Mixin/ConfigOptions.html">Nucleon::Mixin::ConfigOptions</a>
235
+
236
+ <li><a href="../../Nucleon/Mixin/Macro.html">Nucleon::Mixin::Macro</a>
237
+
238
+ <li><a href="../../Nucleon/Mixin/Macro/ObjectInterface.html">Nucleon::Mixin::Macro::ObjectInterface</a>
239
+
240
+ <li><a href="../../Nucleon/Mixin/Macro/PluginInterface.html">Nucleon::Mixin::Macro::PluginInterface</a>
241
+
242
+ <li><a href="../../Nucleon/Mixin/Settings.html">Nucleon::Mixin::Settings</a>
243
+
244
+ <li><a href="../../Nucleon/Mixin/SubConfig.html">Nucleon::Mixin::SubConfig</a>
245
+
246
+ <li><a href="../../Nucleon/Parallel.html">Nucleon::Parallel</a>
247
+
248
+ <li><a href="../../Nucleon/Parallel/ClassMethods.html">Nucleon::Parallel::ClassMethods</a>
249
+
250
+ <li><a href="../../Nucleon/Parallel/InstanceMethods.html">Nucleon::Parallel::InstanceMethods</a>
251
+
252
+ <li><a href="../../Nucleon/Plugin.html">Nucleon::Plugin</a>
253
+
254
+ <li><a href="../../Nucleon/Plugin/Action.html">Nucleon::Plugin::Action</a>
255
+
256
+ <li><a href="../../Nucleon/Plugin/Action/Option.html">Nucleon::Plugin::Action::Option</a>
257
+
258
+ <li><a href="../../Nucleon/Plugin/Base.html">Nucleon::Plugin::Base</a>
259
+
260
+ <li><a href="../../Nucleon/Plugin/Command.html">Nucleon::Plugin::Command</a>
261
+
262
+ <li><a href="../../Nucleon/Plugin/Event.html">Nucleon::Plugin::Event</a>
263
+
264
+ <li><a href="../../Nucleon/Plugin/Extension.html">Nucleon::Plugin::Extension</a>
265
+
266
+ <li><a href="../../Nucleon/Plugin/Project.html">Nucleon::Plugin::Project</a>
267
+
268
+ <li><a href="../../Nucleon/Plugin/Template.html">Nucleon::Plugin::Template</a>
269
+
270
+ <li><a href="../../Nucleon/Plugin/Translator.html">Nucleon::Plugin::Translator</a>
271
+
272
+ <li><a href="../../Nucleon/Project.html">Nucleon::Project</a>
273
+
274
+ <li><a href="../../Nucleon/Project/Git.html">Nucleon::Project::Git</a>
275
+
276
+ <li><a href="../../Nucleon/Project/Github.html">Nucleon::Project::Github</a>
277
+
278
+ <li><a href="../../Nucleon/Template.html">Nucleon::Template</a>
279
+
280
+ <li><a href="../../Nucleon/Template/JSON.html">Nucleon::Template::JSON</a>
281
+
282
+ <li><a href="../../Nucleon/Template/Wrapper.html">Nucleon::Template::Wrapper</a>
283
+
284
+ <li><a href="../../Nucleon/Template/YAML.html">Nucleon::Template::YAML</a>
285
+
286
+ <li><a href="../../Nucleon/Translator.html">Nucleon::Translator</a>
287
+
288
+ <li><a href="../../Nucleon/Translator/JSON.html">Nucleon::Translator::JSON</a>
289
+
290
+ <li><a href="../../Nucleon/Translator/YAML.html">Nucleon::Translator::YAML</a>
291
+
292
+ <li><a href="../../Nucleon/Util.html">Nucleon::Util</a>
293
+
294
+ <li><a href="../../Nucleon/Util/CLI.html">Nucleon::Util::CLI</a>
295
+
296
+ <li><a href="../../Nucleon/Util/CLI/Parser.html">Nucleon::Util::CLI::Parser</a>
297
+
298
+ <li><a href="../../Nucleon/Util/Cache.html">Nucleon::Util::Cache</a>
299
+
300
+ <li><a href="../../Nucleon/Util/Console.html">Nucleon::Util::Console</a>
301
+
302
+ <li><a href="../../Nucleon/Util/Data.html">Nucleon::Util::Data</a>
303
+
304
+ <li><a href="../../Nucleon/Util/Disk.html">Nucleon::Util::Disk</a>
305
+
306
+ <li><a href="../../Nucleon/Util/Git.html">Nucleon::Util::Git</a>
307
+
308
+ <li><a href="../../Nucleon/Util/Liquid.html">Nucleon::Util::Liquid</a>
309
+
310
+ <li><a href="../../Nucleon/Util/Logger.html">Nucleon::Util::Logger</a>
311
+
312
+ <li><a href="../../Nucleon/Util/Package.html">Nucleon::Util::Package</a>
313
+
314
+ <li><a href="../../Nucleon/Util/SSH.html">Nucleon::Util::SSH</a>
315
+
316
+ <li><a href="../../Nucleon/Util/SSH/Keypair.html">Nucleon::Util::SSH::Keypair</a>
317
+
318
+ <li><a href="../../Nucleon/Util/Shell.html">Nucleon::Util::Shell</a>
319
+
320
+ <li><a href="../../Nucleon/Util/Shell/Result.html">Nucleon::Util::Shell::Result</a>
321
+
322
+ <li><a href="../../Hash.html">Hash</a>
323
+
324
+ <li><a href="../../Kernel.html">Kernel</a>
325
+
326
+ </ul>
327
+ </nav>
328
+
329
+ </div>
330
+ </nav>
331
+
332
+ <div id="documentation">
333
+ <h1 class="class">class Nucleon::Plugin::Action</h1>
334
+
335
+ <div id="description" class="description">
336
+
337
+ </div><!-- description -->
338
+
339
+
340
+
341
+
342
+ <section id="5Buntitled-5D" class="documentation-section">
343
+
344
+
345
+
346
+
347
+
348
+
349
+
350
+
351
+ <!-- Methods -->
352
+
353
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
354
+ <h3 class="section-header">Public Class Methods</h3>
355
+
356
+
357
+ <div id="method-c-action_help" class="method-detail ">
358
+
359
+ <div class="method-heading">
360
+ <span class="method-name">action_help</span><span
361
+ class="method-args">(action = nil, extended_help = false)</span>
362
+ <span class="method-click-advice">click to toggle source</span>
363
+ </div>
364
+
365
+
366
+ <div class="method-description">
367
+
368
+
369
+
370
+
371
+
372
+ <div class="method-source-code" id="action_help-source">
373
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 550</span>
374
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">action_help</span>(<span class="ruby-identifier">action</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">extended_help</span> = <span class="ruby-keyword">false</span>)
375
+ <span class="ruby-identifier">action_index</span> = <span class="ruby-identifier">action_index</span>(<span class="ruby-keyword">false</span>).<span class="ruby-identifier">export</span>
376
+ <span class="ruby-identifier">provider_index</span> = {}
377
+ <span class="ruby-identifier">processed_actions</span> = {}
378
+
379
+ <span class="ruby-identifier">last_namespace</span> = <span class="ruby-keyword">nil</span>
380
+ <span class="ruby-identifier">last_group</span> = <span class="ruby-keyword">nil</span>
381
+ <span class="ruby-identifier">multiple_found</span> = <span class="ruby-keyword">false</span>
382
+
383
+ <span class="ruby-identifier">command_width</span> = <span class="ruby-value">0</span>
384
+ <span class="ruby-identifier">namespace_command_width</span> = {}
385
+
386
+ <span class="ruby-identifier">output</span> = <span class="ruby-string">&#39;&#39;</span>
387
+
388
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">action</span>
389
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">action</span>.<span class="ruby-identifier">empty?</span>
390
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">cyan</span>(<span class="ruby-identifier">sprintf</span>(<span class="ruby-string">&quot;\n%s\n&quot;</span>, <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">&#39;nucleon.core.exec.help.no_actions_found&#39;</span>)))
391
+ <span class="ruby-keyword">else</span>
392
+ <span class="ruby-identifier">multiple_found</span> = <span class="ruby-keyword">true</span>
393
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">cyan</span>(<span class="ruby-identifier">sprintf</span>(<span class="ruby-string">&quot;\n%s\n&quot;</span>, <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">&#39;nucleon.core.exec.help.multiple_actions_found&#39;</span>)))
394
+
395
+ <span class="ruby-identifier">action</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">info</span><span class="ruby-operator">|</span>
396
+ <span class="ruby-identifier">provider_index</span>[<span class="ruby-identifier">info</span>[<span class="ruby-value">:provider</span>]] = <span class="ruby-keyword">true</span>
397
+ <span class="ruby-keyword">end</span>
398
+ <span class="ruby-keyword">end</span>
399
+ <span class="ruby-keyword">end</span>
400
+
401
+ <span class="ruby-identifier">action_index</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action_id</span>, <span class="ruby-identifier">info</span><span class="ruby-operator">|</span>
402
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">multiple_found</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">provider_index</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">info</span>[<span class="ruby-value">:provider</span>])
403
+ <span class="ruby-identifier">action</span> = <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">action</span>(<span class="ruby-identifier">info</span>[<span class="ruby-value">:provider</span>], { <span class="ruby-value">:settings</span> =<span class="ruby-operator">&gt;</span> {}, <span class="ruby-value">:quiet</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span> })
404
+ <span class="ruby-identifier">command_text</span> = <span class="ruby-identifier">action</span>.<span class="ruby-identifier">help</span>
405
+
406
+ <span class="ruby-identifier">command_size</span> = <span class="ruby-identifier">command_text</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\e\[(\d+)m/</span>, <span class="ruby-string">&#39;&#39;</span>).<span class="ruby-identifier">size</span>
407
+ <span class="ruby-identifier">command_width</span> = [ <span class="ruby-identifier">command_width</span>, <span class="ruby-identifier">command_size</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span> ].<span class="ruby-identifier">max</span>
408
+
409
+ <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:namespace</span>]
410
+
411
+ <span class="ruby-identifier">namespace_command_width</span>[<span class="ruby-identifier">namespace</span>] = <span class="ruby-value">0</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">namespace_command_width</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">namespace</span>)
412
+ <span class="ruby-identifier">namespace_command_width</span>[<span class="ruby-identifier">namespace</span>] = [ <span class="ruby-identifier">namespace_command_width</span>[<span class="ruby-identifier">namespace</span>], <span class="ruby-identifier">command_size</span> <span class="ruby-operator">+</span> <span class="ruby-value">2</span> ].<span class="ruby-identifier">max</span>
413
+
414
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extended_help</span>
415
+ <span class="ruby-identifier">help_text</span> = <span class="ruby-string">&#39;&#39;</span>
416
+ <span class="ruby-identifier">info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:help</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">&quot;\n&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
417
+ <span class="ruby-keyword">break</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">help_text</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">line</span>.<span class="ruby-identifier">empty?</span>
418
+ <span class="ruby-identifier">help_text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&#39; &#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">+</span> <span class="ruby-string">&quot;\n&quot;</span>
419
+ <span class="ruby-keyword">end</span>
420
+ <span class="ruby-keyword">else</span>
421
+ <span class="ruby-identifier">help_text</span> = <span class="ruby-keyword">nil</span>
422
+ <span class="ruby-keyword">end</span>
423
+
424
+ <span class="ruby-identifier">processed_actions</span>[<span class="ruby-identifier">action_id</span>] = {
425
+ <span class="ruby-value">:info</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">info</span>,
426
+ <span class="ruby-value">:command</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">command_text</span>,
427
+ <span class="ruby-value">:help</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">help_text</span>
428
+ }
429
+ <span class="ruby-keyword">end</span>
430
+ <span class="ruby-keyword">end</span>
431
+
432
+ <span class="ruby-identifier">processed_actions</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action_id</span>, <span class="ruby-identifier">info</span><span class="ruby-operator">|</span>
433
+ <span class="ruby-identifier">command_text</span> = <span class="ruby-identifier">info</span>[<span class="ruby-value">:command</span>]
434
+ <span class="ruby-identifier">help_text</span> = <span class="ruby-identifier">info</span>[<span class="ruby-value">:help</span>]
435
+ <span class="ruby-identifier">info</span> = <span class="ruby-identifier">info</span>[<span class="ruby-value">:info</span>]
436
+ <span class="ruby-identifier">namespace</span> = <span class="ruby-identifier">info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:namespace</span>]
437
+ <span class="ruby-identifier">group</span> = <span class="ruby-identifier">info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:group</span>]
438
+
439
+ <span class="ruby-identifier">group_id</span> = <span class="ruby-identifier">group</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">group</span>.<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;::&#39;</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">group</span>
440
+ <span class="ruby-identifier">group_id</span> = <span class="ruby-string">&#39;&#39;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">group_id</span>
441
+
442
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot;\n&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">group_id</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">last_group</span>
443
+
444
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">namespace</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">last_namespace</span>
445
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot;\n----------------------------------------------------\n&quot;</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">help_text</span>
446
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-string">&quot;\n %s:\n\n&quot;</span>, <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">&#39;nucleon.core.exec.help.action_group&#39;</span>, { <span class="ruby-value">:namespace</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">purple</span>(<span class="ruby-identifier">namespace</span>) }))
447
+ <span class="ruby-keyword">end</span>
448
+
449
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">help_text</span>
450
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot; &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">render_colorized</span>(<span class="ruby-identifier">command_text</span>, <span class="ruby-identifier">namespace_command_width</span>[<span class="ruby-identifier">namespace</span>]) <span class="ruby-operator">+</span> <span class="ruby-string">&quot; -- &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">blue</span>(<span class="ruby-identifier">info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:description</span>]) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;\n&quot;</span>
451
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;\n#{help_text}\n&quot;</span>
452
+ <span class="ruby-keyword">else</span>
453
+ <span class="ruby-identifier">output</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&quot; &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">render_colorized</span>(<span class="ruby-identifier">command_text</span>, <span class="ruby-identifier">command_width</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot; -- &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">blue</span>(<span class="ruby-identifier">info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:description</span>]) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;\n&quot;</span>
454
+ <span class="ruby-keyword">end</span>
455
+
456
+ <span class="ruby-identifier">last_namespace</span> = <span class="ruby-identifier">namespace</span>
457
+ <span class="ruby-identifier">last_group</span> = <span class="ruby-identifier">group_id</span>
458
+ <span class="ruby-keyword">end</span>
459
+ <span class="ruby-identifier">output</span>
460
+ <span class="ruby-keyword">end</span></pre>
461
+ </div><!-- action_help-source -->
462
+
463
+ </div>
464
+
465
+
466
+
467
+
468
+ </div><!-- action_help-method -->
469
+
470
+
471
+ <div id="method-c-action_index" class="method-detail ">
472
+
473
+ <div class="method-heading">
474
+ <span class="method-name">action_index</span><span
475
+ class="method-args">(tree = true)</span>
476
+ <span class="method-click-advice">click to toggle source</span>
477
+ </div>
478
+
479
+
480
+ <div class="method-description">
481
+
482
+
483
+
484
+
485
+
486
+ <div class="method-source-code" id="action_index-source">
487
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 462</span>
488
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">action_index</span>(<span class="ruby-identifier">tree</span> = <span class="ruby-keyword">true</span>)
489
+ <span class="ruby-identifier">action_config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>
490
+ <span class="ruby-identifier">action_index</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>
491
+
492
+ <span class="ruby-identifier">generate_index</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">info</span>, <span class="ruby-identifier">parents</span> = <span class="ruby-keyword">nil</span><span class="ruby-operator">|</span>
493
+ <span class="ruby-identifier">groups</span> = <span class="ruby-identifier">info</span>.<span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> [ <span class="ruby-value">:_weight</span>, <span class="ruby-value">:_weights</span> ]
494
+ <span class="ruby-identifier">groups</span> = <span class="ruby-identifier">groups</span>.<span class="ruby-identifier">sort</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">a</span>, <span class="ruby-identifier">b</span><span class="ruby-operator">|</span>
495
+ <span class="ruby-identifier">info</span>[<span class="ruby-identifier">b</span>][<span class="ruby-value">:_weight</span>] <span class="ruby-operator">&lt;=&gt;</span> <span class="ruby-identifier">info</span>[<span class="ruby-identifier">a</span>][<span class="ruby-value">:_weight</span>]
496
+ <span class="ruby-keyword">end</span>
497
+
498
+ <span class="ruby-identifier">groups</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">group</span><span class="ruby-operator">|</span>
499
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">info</span>[<span class="ruby-identifier">group</span>]
500
+
501
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Hash</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value">:_weights</span>)
502
+ <span class="ruby-identifier">sub_parents</span> = <span class="ruby-identifier">parents</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">?</span> [ <span class="ruby-identifier">group</span> ] <span class="ruby-operator">:</span> [ <span class="ruby-identifier">parents</span>, <span class="ruby-identifier">group</span> ].<span class="ruby-identifier">flatten</span>
503
+ <span class="ruby-identifier">generate_index</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">data</span>, <span class="ruby-identifier">sub_parents</span>)
504
+ <span class="ruby-keyword">else</span>
505
+ <span class="ruby-identifier">keys</span> = <span class="ruby-identifier">tree</span> <span class="ruby-operator">?</span> [ <span class="ruby-identifier">parents</span>, <span class="ruby-identifier">group</span> ] <span class="ruby-operator">:</span> [ <span class="ruby-identifier">parents</span>, <span class="ruby-identifier">group</span> ].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;::&#39;</span>)
506
+ <span class="ruby-identifier">action_index</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">keys</span>, <span class="ruby-identifier">data</span>)
507
+ <span class="ruby-keyword">end</span>
508
+ <span class="ruby-keyword">end</span>
509
+ <span class="ruby-keyword">end</span>
510
+
511
+ <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">loaded_plugins</span>(<span class="ruby-value">:nucleon</span>, <span class="ruby-value">:action</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">provider</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
512
+ <span class="ruby-identifier">description</span> = <span class="ruby-identifier">data</span>[<span class="ruby-value">:class</span>].<span class="ruby-identifier">describe</span>
513
+ <span class="ruby-identifier">data</span>[<span class="ruby-value">:description</span>] = <span class="ruby-identifier">description</span>
514
+ <span class="ruby-identifier">data</span>[<span class="ruby-value">:_weight</span>] = <span class="ruby-identifier">description</span>[<span class="ruby-value">:weight</span>]
515
+
516
+ <span class="ruby-identifier">keys</span> = [ <span class="ruby-identifier">description</span>[<span class="ruby-value">:namespace</span>], <span class="ruby-identifier">description</span>[<span class="ruby-value">:group</span>], <span class="ruby-identifier">description</span>[<span class="ruby-value">:action</span>] ].<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">compact</span>
517
+ <span class="ruby-identifier">action_config</span>.<span class="ruby-identifier">set</span>(<span class="ruby-identifier">keys</span>, <span class="ruby-identifier">data</span>)
518
+
519
+ <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">pop</span>
520
+
521
+ <span class="ruby-keyword">while</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">empty?</span>
522
+ <span class="ruby-identifier">group_config</span> = <span class="ruby-identifier">action_config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-identifier">keys</span>)
523
+
524
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">group_config</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value">:_weights</span>)
525
+ <span class="ruby-identifier">group_config</span>[<span class="ruby-value">:_weights</span>].<span class="ruby-identifier">push</span>(<span class="ruby-identifier">description</span>[<span class="ruby-value">:weight</span>])
526
+ <span class="ruby-keyword">else</span>
527
+ <span class="ruby-identifier">action_config</span>.<span class="ruby-identifier">set</span>([ <span class="ruby-identifier">keys</span>, <span class="ruby-value">:_weights</span> ], [ <span class="ruby-identifier">description</span>[<span class="ruby-value">:weight</span>] ])
528
+ <span class="ruby-keyword">end</span>
529
+ <span class="ruby-identifier">action_config</span>.<span class="ruby-identifier">set</span>([ <span class="ruby-identifier">keys</span>, <span class="ruby-value">:_weight</span> ], <span class="ruby-identifier">group_config</span>[<span class="ruby-value">:_weights</span>].<span class="ruby-identifier">inject</span>(<span class="ruby-value">0.0</span>) { <span class="ruby-operator">|</span><span class="ruby-identifier">sum</span>, <span class="ruby-identifier">el</span><span class="ruby-operator">|</span> <span class="ruby-identifier">sum</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">el</span> } <span class="ruby-operator">/</span> <span class="ruby-identifier">group_config</span>[<span class="ruby-value">:_weights</span>].<span class="ruby-identifier">size</span>)
530
+ <span class="ruby-identifier">keys</span>.<span class="ruby-identifier">pop</span>
531
+ <span class="ruby-keyword">end</span>
532
+ <span class="ruby-keyword">end</span>
533
+
534
+ <span class="ruby-identifier">generate_index</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">action_config</span>.<span class="ruby-identifier">export</span>)
535
+ <span class="ruby-identifier">action_index</span>
536
+ <span class="ruby-keyword">end</span></pre>
537
+ </div><!-- action_index-source -->
538
+
539
+ </div>
540
+
541
+
542
+
543
+
544
+ </div><!-- action_index-method -->
545
+
546
+
547
+ <div id="method-c-components" class="method-detail ">
548
+
549
+ <div class="method-heading">
550
+ <span class="method-name">components</span><span
551
+ class="method-args">(search)</span>
552
+ <span class="method-click-advice">click to toggle source</span>
553
+ </div>
554
+
555
+
556
+ <div class="method-description">
557
+
558
+
559
+
560
+
561
+
562
+ <div class="method-source-code" id="components-source">
563
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 450</span>
564
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">components</span>(<span class="ruby-identifier">search</span>)
565
+ <span class="ruby-identifier">components</span> = []
566
+
567
+ <span class="ruby-identifier">array</span>(<span class="ruby-identifier">search</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">element</span><span class="ruby-operator">|</span>
568
+ <span class="ruby-keyword">break</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">element</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^\-+/</span>)
569
+ <span class="ruby-identifier">components</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">element</span>
570
+ <span class="ruby-keyword">end</span>
571
+ <span class="ruby-identifier">components</span>
572
+ <span class="ruby-keyword">end</span></pre>
573
+ </div><!-- components-source -->
574
+
575
+ </div>
576
+
577
+
578
+
579
+
580
+ </div><!-- components-method -->
581
+
582
+
583
+ <div id="method-c-describe" class="method-detail ">
584
+
585
+ <div class="method-heading">
586
+ <span class="method-name">describe</span><span
587
+ class="method-args">(group = nil, action = 'unknown', weight = -1000, description = nil, help = nil)</span>
588
+ <span class="method-click-advice">click to toggle source</span>
589
+ </div>
590
+
591
+
592
+ <div class="method-description">
593
+
594
+
595
+
596
+
597
+
598
+ <div class="method-source-code" id="describe-source">
599
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 11</span>
600
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">describe</span>(<span class="ruby-identifier">group</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">action</span> = <span class="ruby-string">&#39;unknown&#39;</span>, <span class="ruby-identifier">weight</span> = <span class="ruby-value">-1000</span>, <span class="ruby-identifier">description</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">help</span> = <span class="ruby-keyword">nil</span>)
601
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">group</span>
602
+ <span class="ruby-identifier">group_name</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">array</span>(<span class="ruby-identifier">group</span>).<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;.&#39;</span>)
603
+ <span class="ruby-identifier">description_id</span> = <span class="ruby-node">&quot;#{namespace}.action.#{group_name}.#{action}.description&quot;</span>
604
+ <span class="ruby-identifier">help_id</span> = <span class="ruby-node">&quot;#{namespace}.action.#{group_name}.#{action}.help&quot;</span>
605
+ <span class="ruby-keyword">else</span>
606
+ <span class="ruby-identifier">description_id</span> = <span class="ruby-node">&quot;#{namespace}.action.#{action}.description&quot;</span>
607
+ <span class="ruby-identifier">help_id</span> = <span class="ruby-node">&quot;#{namespace}.action.#{action}.help&quot;</span>
608
+ <span class="ruby-keyword">end</span>
609
+
610
+ {
611
+ <span class="ruby-value">:namespace</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">namespace</span>,
612
+ <span class="ruby-value">:weight</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">weight</span>,
613
+ <span class="ruby-value">:group</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">group</span>,
614
+ <span class="ruby-value">:action</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">action</span>,
615
+ <span class="ruby-value">:description</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">description</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">description</span> <span class="ruby-operator">:</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-identifier">description_id</span>),
616
+ <span class="ruby-value">:help</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">help</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">help</span> <span class="ruby-operator">:</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-identifier">help_id</span>)
617
+ }
618
+ <span class="ruby-keyword">end</span></pre>
619
+ </div><!-- describe-source -->
620
+
621
+ </div>
622
+
623
+
624
+
625
+
626
+ </div><!-- describe-method -->
627
+
628
+
629
+ <div id="method-c-exec" class="method-detail ">
630
+
631
+ <div class="method-heading">
632
+ <span class="method-name">exec</span><span
633
+ class="method-args">(provider, options, quiet = true)</span>
634
+ <span class="method-click-advice">click to toggle source</span>
635
+ </div>
636
+
637
+
638
+ <div class="method-description">
639
+
640
+
641
+
642
+
643
+
644
+ <div class="method-source-code" id="exec-source">
645
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 95</span>
646
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">exec</span>(<span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span>, <span class="ruby-identifier">quiet</span> = <span class="ruby-keyword">true</span>)
647
+ <span class="ruby-identifier">exec_safe</span>(<span class="ruby-identifier">provider</span>, { <span class="ruby-value">:settings</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>), <span class="ruby-value">:quiet</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">quiet</span> })
648
+ <span class="ruby-keyword">end</span></pre>
649
+ </div><!-- exec-source -->
650
+
651
+ </div>
652
+
653
+
654
+
655
+
656
+ </div><!-- exec-method -->
657
+
658
+
659
+ <div id="method-c-exec_cli" class="method-detail ">
660
+
661
+ <div class="method-heading">
662
+ <span class="method-name">exec_cli</span><span
663
+ class="method-args">(provider, args, quiet = false, name = :nucleon)</span>
664
+ <span class="method-click-advice">click to toggle source</span>
665
+ </div>
666
+
667
+
668
+ <div class="method-description">
669
+
670
+
671
+
672
+
673
+
674
+ <div class="method-source-code" id="exec_cli-source">
675
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 99</span>
676
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">exec_cli</span>(<span class="ruby-identifier">provider</span>, <span class="ruby-identifier">args</span>, <span class="ruby-identifier">quiet</span> = <span class="ruby-keyword">false</span>, <span class="ruby-identifier">name</span> = <span class="ruby-value">:nucleon</span>)
677
+ <span class="ruby-identifier">results</span> = <span class="ruby-identifier">exec_safe</span>(<span class="ruby-identifier">provider</span>, { <span class="ruby-value">:args</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">args</span>, <span class="ruby-value">:quiet</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">quiet</span>, <span class="ruby-value">:executable</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span> })
678
+ <span class="ruby-identifier">results</span>[<span class="ruby-value">:status</span>]
679
+ <span class="ruby-keyword">end</span></pre>
680
+ </div><!-- exec_cli-source -->
681
+
682
+ </div>
683
+
684
+
685
+
686
+
687
+ </div><!-- exec_cli-method -->
688
+
689
+
690
+ <div id="method-c-exec_safe" class="method-detail ">
691
+
692
+ <div class="method-heading">
693
+ <span class="method-name">exec_safe</span><span
694
+ class="method-args">(provider, options)</span>
695
+ <span class="method-click-advice">click to toggle source</span>
696
+ </div>
697
+
698
+
699
+ <div class="method-description">
700
+
701
+
702
+
703
+
704
+
705
+ <div class="method-source-code" id="exec_safe-source">
706
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 69</span>
707
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">exec_safe</span>(<span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span>)
708
+ <span class="ruby-identifier">action_result</span> = <span class="ruby-keyword">nil</span>
709
+
710
+ <span class="ruby-keyword">begin</span>
711
+ <span class="ruby-identifier">logger</span> = <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">logger</span>
712
+
713
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Running nucleon action #{provider} with #{options.inspect}&quot;</span>)
714
+ <span class="ruby-identifier">action</span> = <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">action</span>(<span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span>)
715
+ <span class="ruby-identifier">exit_status</span> = <span class="ruby-identifier">action</span>.<span class="ruby-identifier">execute</span>
716
+ <span class="ruby-identifier">action_result</span> = <span class="ruby-identifier">action</span>.<span class="ruby-identifier">result</span>
717
+
718
+ <span class="ruby-keyword">rescue</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">error</span>
719
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-node">&quot;Nucleon action #{provider} experienced an error:&quot;</span>)
720
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">error</span>.<span class="ruby-identifier">inspect</span>)
721
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">error</span>.<span class="ruby-identifier">message</span>)
722
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">error</span>(<span class="ruby-constant">Nucleon</span><span class="ruby-operator">::</span><span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">to_yaml</span>(<span class="ruby-identifier">error</span>.<span class="ruby-identifier">backtrace</span>))
723
+
724
+ <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">ui</span>.<span class="ruby-identifier">error</span>(<span class="ruby-identifier">error</span>.<span class="ruby-identifier">message</span>, { <span class="ruby-value">:prefix</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span> }) <span class="ruby-keyword">if</span> <span class="ruby-identifier">error</span>.<span class="ruby-identifier">message</span>
725
+
726
+ <span class="ruby-identifier">exit_status</span> = <span class="ruby-identifier">error</span>.<span class="ruby-identifier">status_code</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">error</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:status_code</span>)
727
+ <span class="ruby-keyword">end</span>
728
+
729
+ <span class="ruby-identifier">exit_status</span> = <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">code</span>.<span class="ruby-identifier">unknown_status</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">exit_status</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Integer</span>)
730
+ { <span class="ruby-value">:status</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">exit_status</span>, <span class="ruby-value">:result</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">action_result</span> }
731
+ <span class="ruby-keyword">end</span></pre>
732
+ </div><!-- exec_safe-source -->
733
+
734
+ </div>
735
+
736
+
737
+
738
+
739
+ </div><!-- exec_safe-method -->
740
+
741
+
742
+ <div id="method-c-namespace" class="method-detail ">
743
+
744
+ <div class="method-heading">
745
+ <span class="method-name">namespace</span><span
746
+ class="method-args">()</span>
747
+ <span class="method-click-advice">click to toggle source</span>
748
+ </div>
749
+
750
+
751
+ <div class="method-description">
752
+
753
+
754
+
755
+
756
+
757
+ <div class="method-source-code" id="namespace-source">
758
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 33</span>
759
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">namespace</span>
760
+ <span class="ruby-value">:nucleon</span>
761
+ <span class="ruby-keyword">end</span></pre>
762
+ </div><!-- namespace-source -->
763
+
764
+ </div>
765
+
766
+
767
+
768
+
769
+ </div><!-- namespace-method -->
770
+
771
+
772
+ <div id="method-c-render_colorized" class="method-detail ">
773
+
774
+ <div class="method-heading">
775
+ <span class="method-name">render_colorized</span><span
776
+ class="method-args">(text, length = 0)</span>
777
+ <span class="method-click-advice">click to toggle source</span>
778
+ </div>
779
+
780
+
781
+ <div class="method-description">
782
+
783
+
784
+
785
+
786
+
787
+ <div class="method-source-code" id="render_colorized-source">
788
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 640</span>
789
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">render_colorized</span>(<span class="ruby-identifier">text</span>, <span class="ruby-identifier">length</span> = <span class="ruby-value">0</span>)
790
+ <span class="ruby-identifier">command_size</span> = <span class="ruby-identifier">text</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-regexp">/\e\[(\d+)m/</span>, <span class="ruby-string">&#39;&#39;</span>).<span class="ruby-identifier">size</span>
791
+ <span class="ruby-identifier">remaining</span> = [ <span class="ruby-identifier">length</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">command_size</span>, <span class="ruby-value">0</span> ].<span class="ruby-identifier">max</span>
792
+ <span class="ruby-identifier">text</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">sprintf</span>(<span class="ruby-node">&quot;%#{remaining}s&quot;</span>, <span class="ruby-string">&#39; &#39;</span>)
793
+ <span class="ruby-keyword">end</span></pre>
794
+ </div><!-- render_colorized-source -->
795
+
796
+ </div>
797
+
798
+
799
+
800
+
801
+ </div><!-- render_colorized-method -->
802
+
803
+
804
+ <div id="method-c-search_actions" class="method-detail ">
805
+
806
+ <div class="method-heading">
807
+ <span class="method-name">search_actions</span><span
808
+ class="method-args">(search_components)</span>
809
+ <span class="method-click-advice">click to toggle source</span>
810
+ </div>
811
+
812
+
813
+ <div class="method-description">
814
+
815
+
816
+
817
+
818
+
819
+ <div class="method-source-code" id="search_actions-source">
820
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 514</span>
821
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">search_actions</span>(<span class="ruby-identifier">search_components</span>)
822
+ <span class="ruby-identifier">action_components</span> = <span class="ruby-identifier">components</span>(<span class="ruby-identifier">search_components</span>)
823
+ <span class="ruby-identifier">action_index</span> = <span class="ruby-identifier">action_index</span>(<span class="ruby-keyword">false</span>).<span class="ruby-identifier">export</span>
824
+ <span class="ruby-identifier">actions_found</span> = []
825
+ <span class="ruby-identifier">final_components</span> = []
826
+
827
+ <span class="ruby-identifier">search_action</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">components</span><span class="ruby-operator">|</span>
828
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">components</span>.<span class="ruby-identifier">empty?</span>
829
+ <span class="ruby-identifier">action_id</span> = <span class="ruby-identifier">components</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">?</span> <span class="ruby-identifier">components</span>.<span class="ruby-identifier">flatten</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39;::&#39;</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">components</span>
830
+ <span class="ruby-identifier">action_id_pattern</span> = <span class="ruby-identifier">action_id</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-string">&#39;::&#39;</span>, <span class="ruby-string">&#39;:.*:&#39;</span>)
831
+
832
+ <span class="ruby-identifier">action_index</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">loaded_action_id</span>, <span class="ruby-identifier">loaded_action_info</span><span class="ruby-operator">|</span>
833
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">loaded_action_id</span>.<span class="ruby-identifier">match</span>(<span class="ruby-node">/#{action_id_pattern}/</span>)
834
+ <span class="ruby-identifier">loaded_action_info</span>[<span class="ruby-value">:action_id</span>] = <span class="ruby-identifier">loaded_action_id</span>
835
+ <span class="ruby-identifier">actions_found</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">loaded_action_info</span>
836
+ <span class="ruby-keyword">end</span>
837
+ <span class="ruby-keyword">end</span>
838
+ <span class="ruby-keyword">end</span>
839
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">components</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">components</span>.<span class="ruby-identifier">empty?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">actions_found</span>.<span class="ruby-identifier">empty?</span>
840
+ <span class="ruby-identifier">components</span>.<span class="ruby-identifier">pop</span>
841
+ <span class="ruby-identifier">final_components</span> = <span class="ruby-identifier">components</span>
842
+ <span class="ruby-identifier">search_action</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">components</span>)
843
+ <span class="ruby-keyword">else</span>
844
+ <span class="ruby-identifier">final_components</span> = <span class="ruby-identifier">components</span>
845
+ <span class="ruby-keyword">end</span>
846
+ <span class="ruby-keyword">end</span>
847
+
848
+ <span class="ruby-identifier">search_action</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">action_components</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">action_components</span>.<span class="ruby-identifier">empty?</span>
849
+
850
+ { <span class="ruby-value">:actions</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">actions_found</span>.<span class="ruby-identifier">size</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">?</span> <span class="ruby-identifier">actions_found</span>[<span class="ruby-value">0</span>] <span class="ruby-operator">:</span> <span class="ruby-identifier">actions_found</span>,
851
+ <span class="ruby-value">:components</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">final_components</span>
852
+ }
853
+ <span class="ruby-keyword">end</span></pre>
854
+ </div><!-- search_actions-source -->
855
+
856
+ </div>
857
+
858
+
859
+
860
+
861
+ </div><!-- search_actions-method -->
862
+
863
+
864
+ </section><!-- public-class-method-details -->
865
+
866
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
867
+ <h3 class="section-header">Public Instance Methods</h3>
868
+
869
+
870
+ <div id="method-i-arguments" class="method-detail ">
871
+
872
+ <div class="method-heading">
873
+ <span class="method-name">arguments</span><span
874
+ class="method-args">()</span>
875
+ <span class="method-click-advice">click to toggle source</span>
876
+ </div>
877
+
878
+
879
+ <div class="method-description">
880
+
881
+
882
+
883
+
884
+
885
+ <div class="method-source-code" id="arguments-source">
886
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 215</span>
887
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">arguments</span>
888
+ []
889
+ <span class="ruby-keyword">end</span></pre>
890
+ </div><!-- arguments-source -->
891
+
892
+ </div>
893
+
894
+
895
+
896
+
897
+ </div><!-- arguments-method -->
898
+
899
+
900
+ <div id="method-i-cleanup" class="method-detail ">
901
+
902
+ <div class="method-heading">
903
+ <span class="method-name">cleanup</span><span
904
+ class="method-args">() { || ... }</span>
905
+ <span class="method-click-advice">click to toggle source</span>
906
+ </div>
907
+
908
+
909
+ <div class="method-description">
910
+
911
+
912
+
913
+
914
+
915
+ <div class="method-source-code" id="cleanup-source">
916
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 431</span>
917
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">cleanup</span>
918
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Running cleanup for action #{plugin_provider}&quot;</span>)
919
+
920
+ <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
921
+
922
+ <span class="ruby-comment"># Nothing to do right now</span>
923
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:cleanup</span>)
924
+ <span class="ruby-keyword">end</span></pre>
925
+ </div><!-- cleanup-source -->
926
+
927
+ </div>
928
+
929
+
930
+
931
+
932
+ </div><!-- cleanup-method -->
933
+
934
+
935
+ <div id="method-i-config" class="method-detail ">
936
+
937
+ <div class="method-heading">
938
+ <span class="method-name">config</span><span
939
+ class="method-args">()</span>
940
+ <span class="method-click-advice">click to toggle source</span>
941
+ </div>
942
+
943
+
944
+ <div class="method-description">
945
+
946
+
947
+
948
+
949
+
950
+ <div class="method-source-code" id="config-source">
951
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 165</span>
952
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">config</span>
953
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:config</span>)
954
+ <span class="ruby-keyword">end</span></pre>
955
+ </div><!-- config-source -->
956
+
957
+ </div>
958
+
959
+
960
+
961
+
962
+ </div><!-- config-method -->
963
+
964
+
965
+ <div id="method-i-config_subset" class="method-detail ">
966
+
967
+ <div class="method-heading">
968
+ <span class="method-name">config_subset</span><span
969
+ class="method-args">(names)</span>
970
+ <span class="method-click-advice">click to toggle source</span>
971
+ </div>
972
+
973
+
974
+ <div class="method-description">
975
+
976
+
977
+
978
+
979
+
980
+ <div class="method-source-code" id="config_subset-source">
981
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 171</span>
982
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">config_subset</span>(<span class="ruby-identifier">names</span>)
983
+ <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">subset</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">names</span>)
984
+ <span class="ruby-keyword">end</span></pre>
985
+ </div><!-- config_subset-source -->
986
+
987
+ </div>
988
+
989
+
990
+
991
+
992
+ </div><!-- config_subset-method -->
993
+
994
+
995
+ <div id="method-i-configure" class="method-detail ">
996
+
997
+ <div class="method-heading">
998
+ <span class="method-name">configure</span><span
999
+ class="method-args">() { |action_info| ... }</span>
1000
+ <span class="method-click-advice">click to toggle source</span>
1001
+ </div>
1002
+
1003
+
1004
+ <div class="method-description">
1005
+
1006
+
1007
+
1008
+
1009
+
1010
+ <div class="method-source-code" id="configure-source">
1011
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 221</span>
1012
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">configure</span>
1013
+ <span class="ruby-identifier">action_info</span> = <span class="ruby-identifier">index_config</span>
1014
+
1015
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">action_info</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1016
+
1017
+ <span class="ruby-identifier">group</span> = <span class="ruby-identifier">array</span>(<span class="ruby-identifier">action_info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:group</span>])
1018
+ <span class="ruby-identifier">action</span> = <span class="ruby-identifier">cyan</span>(<span class="ruby-identifier">action_info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:action</span>])
1019
+
1020
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">group</span>.<span class="ruby-identifier">empty?</span>
1021
+ <span class="ruby-identifier">group</span> = <span class="ruby-identifier">green</span>(<span class="ruby-identifier">group</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&#39; &#39;</span>).<span class="ruby-identifier">strip</span>)
1022
+ <span class="ruby-identifier">usage</span> = <span class="ruby-node">&quot;#{group} #{action} &quot;</span>
1023
+ <span class="ruby-keyword">else</span>
1024
+ <span class="ruby-identifier">usage</span> = <span class="ruby-node">&quot;#{action} &quot;</span>
1025
+ <span class="ruby-keyword">end</span>
1026
+
1027
+ <span class="ruby-identifier">arguments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">arg</span><span class="ruby-operator">|</span>
1028
+ <span class="ruby-identifier">arg_config</span> = <span class="ruby-identifier">config</span>[<span class="ruby-identifier">arg</span>.<span class="ruby-identifier">to_sym</span>]
1029
+
1030
+ <span class="ruby-identifier">arg_prefix</span> = <span class="ruby-identifier">arg_config</span>.<span class="ruby-identifier">default</span> <span class="ruby-operator">?</span> <span class="ruby-string">&#39;[&#39;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&#39;&#39;</span>
1031
+ <span class="ruby-identifier">arg_suffix</span> = <span class="ruby-identifier">arg_config</span>.<span class="ruby-identifier">default</span> <span class="ruby-operator">?</span> <span class="ruby-string">&#39;]&#39;</span> <span class="ruby-operator">:</span> <span class="ruby-string">&#39;&#39;</span>
1032
+
1033
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">arg_config</span>.<span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:array</span>
1034
+ <span class="ruby-identifier">usage</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{arg_prefix}&lt;#{arg}&gt; ...#{arg_suffix}&quot;</span>
1035
+ <span class="ruby-keyword">else</span>
1036
+ <span class="ruby-identifier">usage</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-node">&quot;#{arg_prefix}&lt;#{arg}&gt;#{arg_suffix} &quot;</span>
1037
+ <span class="ruby-keyword">end</span>
1038
+ <span class="ruby-keyword">end</span>
1039
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">usage</span> = <span class="ruby-identifier">yellow</span>(<span class="ruby-identifier">usage</span>)
1040
+ <span class="ruby-identifier">myself</span>
1041
+ <span class="ruby-keyword">end</span></pre>
1042
+ </div><!-- configure-source -->
1043
+
1044
+ </div>
1045
+
1046
+
1047
+
1048
+
1049
+ </div><!-- configure-method -->
1050
+
1051
+
1052
+ <div id="method-i-execute" class="method-detail ">
1053
+
1054
+ <div class="method-heading">
1055
+ <span class="method-name">execute</span><span
1056
+ class="method-args">(skip_validate = false, skip_hooks = false) { || ... }</span>
1057
+ <span class="method-click-advice">click to toggle source</span>
1058
+ </div>
1059
+
1060
+
1061
+ <div class="method-description">
1062
+
1063
+
1064
+
1065
+
1066
+
1067
+ <div class="method-source-code" id="execute-source">
1068
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 387</span>
1069
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">execute</span>(<span class="ruby-identifier">skip_validate</span> = <span class="ruby-keyword">false</span>, <span class="ruby-identifier">skip_hooks</span> = <span class="ruby-keyword">false</span>)
1070
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Executing action #{plugin_provider}&quot;</span>)
1071
+
1072
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
1073
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">result</span> = <span class="ruby-keyword">nil</span>
1074
+
1075
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">processed?</span>
1076
+ <span class="ruby-keyword">begin</span>
1077
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">skip_validate</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">validate</span>
1078
+ <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span> <span class="ruby-operator">&amp;&amp;</span> ( <span class="ruby-identifier">skip_hooks</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:exec_init</span>) )
1079
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:exec_exit</span>, <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span>) <span class="ruby-keyword">unless</span> <span class="ruby-identifier">skip_hooks</span>
1080
+ <span class="ruby-keyword">else</span>
1081
+ <span class="ruby-identifier">puts</span> <span class="ruby-string">&quot;\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">&#39;nucleon.core.exec.help.usage&#39;</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&#39;: &#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">help</span> <span class="ruby-operator">+</span> <span class="ruby-string">&quot;\n&quot;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">quiet?</span>
1082
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">validation_failed</span>
1083
+ <span class="ruby-keyword">end</span>
1084
+ <span class="ruby-keyword">ensure</span>
1085
+ <span class="ruby-identifier">cleanup</span>
1086
+ <span class="ruby-keyword">end</span>
1087
+ <span class="ruby-keyword">else</span>
1088
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">options</span>[<span class="ruby-value">:help</span>]
1089
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">help_wanted</span>
1090
+ <span class="ruby-keyword">else</span>
1091
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">action_unprocessed</span>
1092
+ <span class="ruby-keyword">end</span>
1093
+ <span class="ruby-keyword">end</span>
1094
+
1095
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">status</span> = <span class="ruby-identifier">code</span>.<span class="ruby-identifier">unknown_status</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">status</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Integer</span>)
1096
+
1097
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">processed?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">status</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">code</span>.<span class="ruby-identifier">success</span>
1098
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Execution failed for #{plugin_provider} with status #{status}&quot;</span>)
1099
+ <span class="ruby-identifier">alert</span>(<span class="ruby-constant">Codes</span>.<span class="ruby-identifier">render_index</span>(<span class="ruby-identifier">status</span>))
1100
+ <span class="ruby-keyword">end</span>
1101
+
1102
+ <span class="ruby-identifier">status</span>
1103
+ <span class="ruby-keyword">end</span></pre>
1104
+ </div><!-- execute-source -->
1105
+
1106
+ </div>
1107
+
1108
+
1109
+
1110
+
1111
+ </div><!-- execute-method -->
1112
+
1113
+
1114
+ <div id="method-i-help" class="method-detail ">
1115
+
1116
+ <div class="method-heading">
1117
+ <span class="method-name">help</span><span
1118
+ class="method-args">()</span>
1119
+ <span class="method-click-advice">click to toggle source</span>
1120
+ </div>
1121
+
1122
+
1123
+ <div class="method-description">
1124
+
1125
+
1126
+
1127
+
1128
+
1129
+ <div class="method-source-code" id="help-source">
1130
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 264</span>
1131
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">help</span>
1132
+ <span class="ruby-keyword">return</span> <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">help</span> <span class="ruby-keyword">if</span> <span class="ruby-ivar">@parser</span>
1133
+ <span class="ruby-identifier">usage</span>
1134
+ <span class="ruby-keyword">end</span></pre>
1135
+ </div><!-- help-source -->
1136
+
1137
+ </div>
1138
+
1139
+
1140
+
1141
+
1142
+ </div><!-- help-method -->
1143
+
1144
+
1145
+ <div id="method-i-ignore" class="method-detail ">
1146
+
1147
+ <div class="method-heading">
1148
+ <span class="method-name">ignore</span><span
1149
+ class="method-args">()</span>
1150
+ <span class="method-click-advice">click to toggle source</span>
1151
+ </div>
1152
+
1153
+
1154
+ <div class="method-description">
1155
+
1156
+
1157
+
1158
+
1159
+
1160
+ <div class="method-source-code" id="ignore-source">
1161
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 207</span>
1162
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ignore</span>
1163
+ []
1164
+ <span class="ruby-keyword">end</span></pre>
1165
+ </div><!-- ignore-source -->
1166
+
1167
+ </div>
1168
+
1169
+
1170
+
1171
+
1172
+ </div><!-- ignore-method -->
1173
+
1174
+
1175
+ <div id="method-i-index_config" class="method-detail ">
1176
+
1177
+ <div class="method-heading">
1178
+ <span class="method-name">index_config</span><span
1179
+ class="method-args">()</span>
1180
+ <span class="method-click-advice">click to toggle source</span>
1181
+ </div>
1182
+
1183
+
1184
+ <div class="method-description">
1185
+
1186
+
1187
+
1188
+
1189
+
1190
+ <div class="method-source-code" id="index_config-source">
1191
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 146</span>
1192
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">index_config</span>
1193
+ <span class="ruby-identifier">action_info</span> = <span class="ruby-keyword">nil</span>
1194
+ <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">action_index</span>(<span class="ruby-keyword">false</span>).<span class="ruby-identifier">export</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">action_id</span>, <span class="ruby-identifier">info</span><span class="ruby-operator">|</span>
1195
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">info</span>[<span class="ruby-value">:provider</span>] <span class="ruby-operator">==</span> <span class="ruby-identifier">plugin_provider</span>
1196
+ <span class="ruby-identifier">action_info</span> = <span class="ruby-identifier">info</span>
1197
+ <span class="ruby-keyword">break</span>
1198
+ <span class="ruby-keyword">end</span>
1199
+ <span class="ruby-keyword">end</span>
1200
+ <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">action_info</span>)
1201
+ <span class="ruby-keyword">end</span></pre>
1202
+ </div><!-- index_config-source -->
1203
+
1204
+ </div>
1205
+
1206
+
1207
+
1208
+
1209
+ </div><!-- index_config-method -->
1210
+
1211
+
1212
+ <div id="method-i-namespace" class="method-detail ">
1213
+
1214
+ <div class="method-heading">
1215
+ <span class="method-name">namespace</span><span
1216
+ class="method-args">()</span>
1217
+ <span class="method-click-advice">click to toggle source</span>
1218
+ </div>
1219
+
1220
+
1221
+ <div class="method-description">
1222
+
1223
+
1224
+
1225
+
1226
+
1227
+ <div class="method-source-code" id="namespace-source">
1228
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 159</span>
1229
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">namespace</span>
1230
+ <span class="ruby-keyword">self</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">namespace</span>
1231
+ <span class="ruby-keyword">end</span></pre>
1232
+ </div><!-- namespace-source -->
1233
+
1234
+ </div>
1235
+
1236
+
1237
+
1238
+
1239
+ </div><!-- namespace-method -->
1240
+
1241
+
1242
+ <div id="method-i-normalize" class="method-detail ">
1243
+
1244
+ <div class="method-heading">
1245
+ <span class="method-name">normalize</span><span
1246
+ class="method-args">(reload)</span>
1247
+ <span class="method-click-advice">click to toggle source</span>
1248
+ </div>
1249
+
1250
+
1251
+ <div class="method-description">
1252
+
1253
+
1254
+
1255
+
1256
+
1257
+ <div class="method-source-code" id="normalize-source">
1258
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 106</span>
1259
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">normalize</span>(<span class="ruby-identifier">reload</span>)
1260
+ <span class="ruby-identifier">args</span> = <span class="ruby-identifier">array</span>(<span class="ruby-identifier">delete</span>(<span class="ruby-value">:args</span>, []))
1261
+
1262
+ <span class="ruby-ivar">@action_interface</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Liquid</span>.<span class="ruby-identifier">new</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">method</span>, <span class="ruby-identifier">method_args</span><span class="ruby-operator">|</span>
1263
+ <span class="ruby-identifier">options</span> = {}
1264
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">method_args</span>[<span class="ruby-value">0</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">method_args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
1265
+
1266
+ <span class="ruby-identifier">quiet</span> = <span class="ruby-keyword">true</span>
1267
+ <span class="ruby-identifier">quiet</span> = <span class="ruby-identifier">method_args</span>[<span class="ruby-value">1</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">method_args</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">1</span>
1268
+
1269
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">exec</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">options</span>, <span class="ruby-identifier">quiet</span>)
1270
+ <span class="ruby-keyword">end</span>
1271
+
1272
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:config</span>, <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>)
1273
+
1274
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">get</span>(<span class="ruby-value">:settings</span>, <span class="ruby-keyword">nil</span>)
1275
+ <span class="ruby-comment"># Internal processing</span>
1276
+ <span class="ruby-identifier">configure</span>
1277
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:processed</span>, <span class="ruby-keyword">true</span>)
1278
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:settings</span>, <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">get</span>(<span class="ruby-value">:settings</span>)))
1279
+
1280
+ <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">log_level</span> = <span class="ruby-identifier">settings</span>[<span class="ruby-value">:log_level</span>] <span class="ruby-keyword">if</span> <span class="ruby-identifier">settings</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value">:log_level</span>)
1281
+ <span class="ruby-keyword">else</span>
1282
+ <span class="ruby-comment"># External processing</span>
1283
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:settings</span>, <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>)
1284
+ <span class="ruby-identifier">configure</span>
1285
+ <span class="ruby-identifier">parse_base</span>(<span class="ruby-identifier">args</span>)
1286
+ <span class="ruby-keyword">end</span>
1287
+ <span class="ruby-keyword">end</span></pre>
1288
+ </div><!-- normalize-source -->
1289
+
1290
+ </div>
1291
+
1292
+
1293
+
1294
+
1295
+ </div><!-- normalize-method -->
1296
+
1297
+
1298
+ <div id="method-i-options" class="method-detail ">
1299
+
1300
+ <div class="method-heading">
1301
+ <span class="method-name">options</span><span
1302
+ class="method-args">()</span>
1303
+ <span class="method-click-advice">click to toggle source</span>
1304
+ </div>
1305
+
1306
+
1307
+ <div class="method-description">
1308
+
1309
+
1310
+
1311
+
1312
+
1313
+ <div class="method-source-code" id="options-source">
1314
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 211</span>
1315
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">options</span>
1316
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">keys</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">arguments</span> <span class="ruby-operator">-</span> <span class="ruby-identifier">ignore</span>
1317
+ <span class="ruby-keyword">end</span></pre>
1318
+ </div><!-- options-source -->
1319
+
1320
+ </div>
1321
+
1322
+
1323
+
1324
+
1325
+ </div><!-- options-method -->
1326
+
1327
+
1328
+ <div id="method-i-parse" class="method-detail ">
1329
+
1330
+ <div class="method-heading">
1331
+ <span class="method-name">parse</span><span
1332
+ class="method-args">(parser)</span>
1333
+ <span class="method-click-advice">click to toggle source</span>
1334
+ </div>
1335
+
1336
+
1337
+ <div class="method-description">
1338
+
1339
+
1340
+
1341
+
1342
+
1343
+ <div class="method-source-code" id="parse-source">
1344
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 319</span>
1345
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">parser</span>)
1346
+
1347
+ <span class="ruby-identifier">generate</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">format</span>, <span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
1348
+ <span class="ruby-identifier">formats</span> = [ <span class="ruby-value">:option</span>, <span class="ruby-value">:arg</span> ]
1349
+ <span class="ruby-identifier">types</span> = [ <span class="ruby-value">:bool</span>, <span class="ruby-value">:int</span>, <span class="ruby-value">:float</span>, <span class="ruby-value">:str</span>, <span class="ruby-value">:array</span> ]
1350
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>
1351
+
1352
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">name</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">formats</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">format</span>.<span class="ruby-identifier">to_sym</span>)
1353
+ <span class="ruby-identifier">option_config</span> = <span class="ruby-identifier">config</span>[<span class="ruby-identifier">name</span>]
1354
+ <span class="ruby-identifier">type</span> = <span class="ruby-identifier">option_config</span>.<span class="ruby-identifier">type</span>
1355
+ <span class="ruby-identifier">default</span> = <span class="ruby-identifier">option_config</span>.<span class="ruby-identifier">default</span>
1356
+ <span class="ruby-identifier">locale</span> = <span class="ruby-identifier">option_config</span>.<span class="ruby-identifier">locale</span>
1357
+
1358
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">types</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">type</span>.<span class="ruby-identifier">to_sym</span>)
1359
+ <span class="ruby-identifier">value_label</span> = <span class="ruby-node">&quot;#{type.to_s.upcase}&quot;</span>
1360
+
1361
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:bool</span>
1362
+ <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;option_#{type}&quot;</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">default</span>, <span class="ruby-node">&quot;--[no-]#{name}&quot;</span>, <span class="ruby-identifier">locale</span>)
1363
+ <span class="ruby-keyword">elsif</span> <span class="ruby-identifier">format</span> <span class="ruby-operator">==</span> <span class="ruby-value">:arg</span>
1364
+ <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;#{format}_#{type}&quot;</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">default</span>, <span class="ruby-identifier">locale</span>)
1365
+ <span class="ruby-keyword">else</span>
1366
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:array</span>
1367
+ <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;option_#{type}&quot;</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">default</span>, <span class="ruby-node">&quot;--#{name} #{value_label},...&quot;</span>, <span class="ruby-identifier">locale</span>)
1368
+ <span class="ruby-keyword">else</span>
1369
+ <span class="ruby-identifier">parser</span>.<span class="ruby-identifier">send</span>(<span class="ruby-node">&quot;option_#{type}&quot;</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">default</span>, <span class="ruby-node">&quot;--#{name} #{value_label}&quot;</span>, <span class="ruby-identifier">locale</span>)
1370
+ <span class="ruby-keyword">end</span>
1371
+ <span class="ruby-keyword">end</span>
1372
+ <span class="ruby-keyword">end</span>
1373
+ <span class="ruby-keyword">end</span>
1374
+ <span class="ruby-keyword">end</span>
1375
+
1376
+ <span class="ruby-comment">#---</span>
1377
+
1378
+ <span class="ruby-identifier">options</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
1379
+ <span class="ruby-identifier">generate</span>.<span class="ruby-identifier">call</span>(<span class="ruby-value">:option</span>, <span class="ruby-identifier">name</span>)
1380
+ <span class="ruby-keyword">end</span>
1381
+
1382
+ <span class="ruby-identifier">arguments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
1383
+ <span class="ruby-identifier">generate</span>.<span class="ruby-identifier">call</span>(<span class="ruby-value">:arg</span>, <span class="ruby-identifier">name</span>)
1384
+ <span class="ruby-keyword">end</span>
1385
+ <span class="ruby-keyword">end</span></pre>
1386
+ </div><!-- parse-source -->
1387
+
1388
+ </div>
1389
+
1390
+
1391
+
1392
+
1393
+ </div><!-- parse-method -->
1394
+
1395
+
1396
+ <div id="method-i-parse_base" class="method-detail ">
1397
+
1398
+ <div class="method-heading">
1399
+ <span class="method-name">parse_base</span><span
1400
+ class="method-args">(args)</span>
1401
+ <span class="method-click-advice">click to toggle source</span>
1402
+ </div>
1403
+
1404
+
1405
+ <div class="method-description">
1406
+
1407
+
1408
+
1409
+
1410
+
1411
+ <div class="method-source-code" id="parse_base-source">
1412
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 282</span>
1413
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">parse_base</span>(<span class="ruby-identifier">args</span>)
1414
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Parsing action #{plugin_provider} with: #{args.inspect}&quot;</span>)
1415
+
1416
+ <span class="ruby-identifier">action_info</span> = <span class="ruby-identifier">index_config</span>
1417
+
1418
+ <span class="ruby-identifier">help_text</span> = <span class="ruby-string">&#39;&#39;</span>
1419
+ <span class="ruby-identifier">action_info</span>[<span class="ruby-value">:description</span>][<span class="ruby-value">:help</span>].<span class="ruby-identifier">split</span>(<span class="ruby-string">&quot;\n&quot;</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">line</span><span class="ruby-operator">|</span>
1420
+ <span class="ruby-identifier">help_text</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-string">&#39; &#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">line</span> <span class="ruby-operator">+</span> <span class="ruby-string">&quot;\n&quot;</span>
1421
+ <span class="ruby-keyword">end</span>
1422
+
1423
+ <span class="ruby-ivar">@parser</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">CLI</span><span class="ruby-operator">::</span><span class="ruby-constant">Parser</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">args</span>, <span class="ruby-identifier">usage</span>, <span class="ruby-node">&quot;\n#{help_text}\n&quot;</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">parser</span><span class="ruby-operator">|</span>
1424
+ <span class="ruby-identifier">parse</span>(<span class="ruby-identifier">parser</span>)
1425
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:parse</span>, { <span class="ruby-value">:parser</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">parser</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1426
+ <span class="ruby-keyword">end</span>
1427
+
1428
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@parser</span>
1429
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">processed</span>
1430
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:processed</span>, <span class="ruby-keyword">true</span>)
1431
+ <span class="ruby-identifier">settings</span>.<span class="ruby-identifier">import</span>(<span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">merge</span>([ <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">options</span>, <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">arguments</span> ], <span class="ruby-keyword">true</span>))
1432
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-string">&quot;Parse successful&quot;</span>)
1433
+
1434
+ <span class="ruby-keyword">elsif</span> <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">options</span>[<span class="ruby-value">:help</span>] <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">quiet?</span>
1435
+ <span class="ruby-identifier">executable</span> = <span class="ruby-identifier">delete</span>(<span class="ruby-value">:executable</span>, <span class="ruby-string">&#39;&#39;</span>)
1436
+ <span class="ruby-identifier">puts</span> <span class="ruby-constant">I18n</span>.<span class="ruby-identifier">t</span>(<span class="ruby-string">&#39;nucleon.core.exec.help.usage&#39;</span>) <span class="ruby-operator">+</span> <span class="ruby-string">&quot;: &quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">executable</span>.<span class="ruby-identifier">to_s</span> <span class="ruby-operator">+</span> <span class="ruby-string">&#39; &#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">help</span> <span class="ruby-operator">+</span> <span class="ruby-string">&quot;\n&quot;</span>
1437
+
1438
+ <span class="ruby-keyword">else</span>
1439
+ <span class="ruby-keyword">if</span> <span class="ruby-ivar">@parser</span>.<span class="ruby-identifier">options</span>[<span class="ruby-value">:help</span>]
1440
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-string">&quot;Help wanted but running in silent mode&quot;</span>)
1441
+ <span class="ruby-keyword">else</span>
1442
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-string">&quot;Parse failed for unknown reasons&quot;</span>)
1443
+ <span class="ruby-keyword">end</span>
1444
+ <span class="ruby-keyword">end</span>
1445
+ <span class="ruby-keyword">end</span>
1446
+ <span class="ruby-keyword">end</span></pre>
1447
+ </div><!-- parse_base-source -->
1448
+
1449
+ </div>
1450
+
1451
+
1452
+
1453
+
1454
+ </div><!-- parse_base-method -->
1455
+
1456
+
1457
+ <div id="method-i-processed-3F" class="method-detail ">
1458
+
1459
+ <div class="method-heading">
1460
+ <span class="method-name">processed?</span><span
1461
+ class="method-args">()</span>
1462
+ <span class="method-click-advice">click to toggle source</span>
1463
+ </div>
1464
+
1465
+
1466
+ <div class="method-description">
1467
+
1468
+
1469
+
1470
+
1471
+
1472
+ <div class="method-source-code" id="processed-3F-source">
1473
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 139</span>
1474
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">processed?</span>
1475
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:processed</span>, <span class="ruby-keyword">false</span>)
1476
+ <span class="ruby-keyword">end</span></pre>
1477
+ </div><!-- processed-3F-source -->
1478
+
1479
+ </div>
1480
+
1481
+
1482
+
1483
+
1484
+ </div><!-- processed-3F-method -->
1485
+
1486
+
1487
+ <div id="method-i-register" class="method-detail ">
1488
+
1489
+ <div class="method-heading">
1490
+ <span class="method-name">register</span><span
1491
+ class="method-args">(name, type, default, locale = nil) { |value, success| ... }</span>
1492
+ <span class="method-click-advice">click to toggle source</span>
1493
+ </div>
1494
+
1495
+
1496
+ <div class="method-description">
1497
+
1498
+
1499
+
1500
+
1501
+
1502
+ <div class="method-source-code" id="register-source">
1503
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 183</span>
1504
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">register</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">default</span>, <span class="ruby-identifier">locale</span> = <span class="ruby-keyword">nil</span>)
1505
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>
1506
+
1507
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1508
+ <span class="ruby-identifier">option</span> = <span class="ruby-constant">Option</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_provider</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">default</span>, <span class="ruby-identifier">locale</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">value</span>, <span class="ruby-identifier">success</span><span class="ruby-operator">|</span>
1509
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">value</span>, <span class="ruby-identifier">success</span>)
1510
+ <span class="ruby-keyword">end</span>
1511
+ <span class="ruby-keyword">else</span>
1512
+ <span class="ruby-identifier">option</span> = <span class="ruby-constant">Option</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_provider</span>, <span class="ruby-identifier">name</span>, <span class="ruby-identifier">type</span>, <span class="ruby-identifier">default</span>, <span class="ruby-identifier">locale</span>)
1513
+ <span class="ruby-keyword">end</span>
1514
+
1515
+ <span class="ruby-identifier">config</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">option</span>
1516
+ <span class="ruby-identifier">settings</span>[<span class="ruby-identifier">name</span>] = <span class="ruby-identifier">option</span>.<span class="ruby-identifier">default</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">settings</span>[<span class="ruby-identifier">name</span>].<span class="ruby-identifier">nil?</span>
1517
+ <span class="ruby-keyword">end</span></pre>
1518
+ </div><!-- register-source -->
1519
+
1520
+ </div>
1521
+
1522
+
1523
+
1524
+
1525
+ </div><!-- register-method -->
1526
+
1527
+
1528
+ <div id="method-i-remove" class="method-detail ">
1529
+
1530
+ <div class="method-heading">
1531
+ <span class="method-name">remove</span><span
1532
+ class="method-args">(names)</span>
1533
+ <span class="method-click-advice">click to toggle source</span>
1534
+ </div>
1535
+
1536
+
1537
+ <div class="method-description">
1538
+
1539
+
1540
+
1541
+
1542
+
1543
+ <div class="method-source-code" id="remove-source">
1544
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 200</span>
1545
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">remove</span>(<span class="ruby-identifier">names</span>)
1546
+ <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">rm_keys</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">names</span>)
1547
+ <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">rm_keys</span>(<span class="ruby-identifier">settings</span>, <span class="ruby-identifier">names</span>)
1548
+ <span class="ruby-keyword">end</span></pre>
1549
+ </div><!-- remove-source -->
1550
+
1551
+ </div>
1552
+
1553
+
1554
+
1555
+
1556
+ </div><!-- remove-method -->
1557
+
1558
+
1559
+ <div id="method-i-render_options" class="method-detail ">
1560
+
1561
+ <div class="method-heading">
1562
+ <span class="method-name">render_options</span><span
1563
+ class="method-args">()</span>
1564
+ <span class="method-click-advice">click to toggle source</span>
1565
+ </div>
1566
+
1567
+
1568
+ <div class="method-description">
1569
+
1570
+
1571
+
1572
+
1573
+
1574
+ <div class="method-source-code" id="render_options-source">
1575
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 443</span>
1576
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">render_options</span>
1577
+ <span class="ruby-identifier">settings</span>
1578
+ <span class="ruby-keyword">end</span></pre>
1579
+ </div><!-- render_options-source -->
1580
+
1581
+ </div>
1582
+
1583
+
1584
+
1585
+
1586
+ </div><!-- render_options-method -->
1587
+
1588
+
1589
+ <div id="method-i-result" class="method-detail ">
1590
+
1591
+ <div class="method-heading">
1592
+ <span class="method-name">result</span><span
1593
+ class="method-args">()</span>
1594
+ <span class="method-click-advice">click to toggle source</span>
1595
+ </div>
1596
+
1597
+
1598
+ <div class="method-description">
1599
+
1600
+
1601
+
1602
+
1603
+
1604
+ <div class="method-source-code" id="result-source">
1605
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 275</span>
1606
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">result</span>
1607
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:result</span>, <span class="ruby-keyword">nil</span>)
1608
+ <span class="ruby-keyword">end</span></pre>
1609
+ </div><!-- result-source -->
1610
+
1611
+ </div>
1612
+
1613
+
1614
+
1615
+
1616
+ </div><!-- result-method -->
1617
+
1618
+
1619
+ <div id="method-i-result-3D" class="method-detail ">
1620
+
1621
+ <div class="method-heading">
1622
+ <span class="method-name">result=</span><span
1623
+ class="method-args">(result)</span>
1624
+ <span class="method-click-advice">click to toggle source</span>
1625
+ </div>
1626
+
1627
+
1628
+ <div class="method-description">
1629
+
1630
+
1631
+
1632
+
1633
+
1634
+ <div class="method-source-code" id="result-3D-source">
1635
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 271</span>
1636
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">result=</span><span class="ruby-identifier">result</span>
1637
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:result</span>, <span class="ruby-identifier">result</span>)
1638
+ <span class="ruby-keyword">end</span></pre>
1639
+ </div><!-- result-3D-source -->
1640
+
1641
+ </div>
1642
+
1643
+
1644
+
1645
+
1646
+ </div><!-- result-3D-method -->
1647
+
1648
+
1649
+ <div id="method-i-run" class="method-detail ">
1650
+
1651
+ <div class="method-heading">
1652
+ <span class="method-name">run</span><span
1653
+ class="method-args">()</span>
1654
+ <span class="method-click-advice">click to toggle source</span>
1655
+ </div>
1656
+
1657
+
1658
+ <div class="method-description">
1659
+
1660
+
1661
+
1662
+
1663
+
1664
+ <div class="method-source-code" id="run-source">
1665
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 425</span>
1666
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">run</span>
1667
+ <span class="ruby-ivar">@action_interface</span>
1668
+ <span class="ruby-keyword">end</span></pre>
1669
+ </div><!-- run-source -->
1670
+
1671
+ </div>
1672
+
1673
+
1674
+
1675
+
1676
+ </div><!-- run-method -->
1677
+
1678
+
1679
+ <div id="method-i-settings" class="method-detail ">
1680
+
1681
+ <div class="method-heading">
1682
+ <span class="method-name">settings</span><span
1683
+ class="method-args">()</span>
1684
+ <span class="method-click-advice">click to toggle source</span>
1685
+ </div>
1686
+
1687
+
1688
+ <div class="method-description">
1689
+
1690
+
1691
+
1692
+
1693
+
1694
+ <div class="method-source-code" id="settings-source">
1695
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 177</span>
1696
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">settings</span>
1697
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:settings</span>)
1698
+ <span class="ruby-keyword">end</span></pre>
1699
+ </div><!-- settings-source -->
1700
+
1701
+ </div>
1702
+
1703
+
1704
+
1705
+
1706
+ </div><!-- settings-method -->
1707
+
1708
+
1709
+ <div id="method-i-usage" class="method-detail ">
1710
+
1711
+ <div class="method-heading">
1712
+ <span class="method-name">usage</span><span
1713
+ class="method-args">()</span>
1714
+ <span class="method-click-advice">click to toggle source</span>
1715
+ </div>
1716
+
1717
+
1718
+ <div class="method-description">
1719
+
1720
+
1721
+
1722
+
1723
+
1724
+ <div class="method-source-code" id="usage-source">
1725
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 258</span>
1726
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">usage</span>
1727
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:usage</span>, <span class="ruby-string">&#39;&#39;</span>)
1728
+ <span class="ruby-keyword">end</span></pre>
1729
+ </div><!-- usage-source -->
1730
+
1731
+ </div>
1732
+
1733
+
1734
+
1735
+
1736
+ </div><!-- usage-method -->
1737
+
1738
+
1739
+ <div id="method-i-usage-3D" class="method-detail ">
1740
+
1741
+ <div class="method-heading">
1742
+ <span class="method-name">usage=</span><span
1743
+ class="method-args">(usage)</span>
1744
+ <span class="method-click-advice">click to toggle source</span>
1745
+ </div>
1746
+
1747
+
1748
+ <div class="method-description">
1749
+
1750
+
1751
+
1752
+
1753
+
1754
+ <div class="method-source-code" id="usage-3D-source">
1755
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 254</span>
1756
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">usage=</span><span class="ruby-identifier">usage</span>
1757
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:usage</span>, <span class="ruby-identifier">usage</span>)
1758
+ <span class="ruby-keyword">end</span></pre>
1759
+ </div><!-- usage-3D-source -->
1760
+
1761
+ </div>
1762
+
1763
+
1764
+
1765
+
1766
+ </div><!-- usage-3D-method -->
1767
+
1768
+
1769
+ <div id="method-i-validate" class="method-detail ">
1770
+
1771
+ <div class="method-heading">
1772
+ <span class="method-name">validate</span><span
1773
+ class="method-args">(*args)</span>
1774
+ <span class="method-click-advice">click to toggle source</span>
1775
+ </div>
1776
+
1777
+
1778
+ <div class="method-description">
1779
+
1780
+
1781
+
1782
+
1783
+
1784
+ <div class="method-source-code" id="validate-source">
1785
+ <pre><span class="ruby-comment"># File lib/core/plugin/action.rb, line 363</span>
1786
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">validate</span>(*<span class="ruby-identifier">args</span>)
1787
+ <span class="ruby-comment"># TODO: Add extension hooks and logging</span>
1788
+
1789
+ <span class="ruby-comment"># Validate all of the configurations</span>
1790
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
1791
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span>, <span class="ruby-identifier">option</span><span class="ruby-operator">|</span>
1792
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">ignore</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">name</span>)
1793
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">option</span>.<span class="ruby-identifier">validate</span>(<span class="ruby-identifier">settings</span>[<span class="ruby-identifier">name</span>], *<span class="ruby-identifier">args</span>)
1794
+ <span class="ruby-keyword">end</span>
1795
+ <span class="ruby-keyword">end</span>
1796
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1797
+ <span class="ruby-comment"># Check for missing arguments (in case of internal execution mode)</span>
1798
+ <span class="ruby-identifier">arguments</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">name</span><span class="ruby-operator">|</span>
1799
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">settings</span>[<span class="ruby-identifier">name</span>.<span class="ruby-identifier">to_sym</span>].<span class="ruby-identifier">nil?</span>
1800
+ <span class="ruby-identifier">warn</span>(<span class="ruby-string">&#39;nucleon.core.exec.errors.missing_argument&#39;</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span> })
1801
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
1802
+ <span class="ruby-keyword">end</span>
1803
+ <span class="ruby-keyword">end</span>
1804
+ <span class="ruby-keyword">end</span>
1805
+ <span class="ruby-identifier">success</span>
1806
+ <span class="ruby-keyword">end</span></pre>
1807
+ </div><!-- validate-source -->
1808
+
1809
+ </div>
1810
+
1811
+
1812
+
1813
+
1814
+ </div><!-- validate-method -->
1815
+
1816
+
1817
+ </section><!-- public-instance-method-details -->
1818
+
1819
+ </section><!-- 5Buntitled-5D -->
1820
+
1821
+ </div><!-- documentation -->
1822
+
1823
+
1824
+ <footer id="validator-badges">
1825
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
1826
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
1827
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
1828
+ </footer>
1829
+