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,1860 @@
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::Manager - 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/manager.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">Object
63
+
64
+ </nav>
65
+
66
+ <!-- Included Modules -->
67
+ <nav id="includes-section" class="section">
68
+ <h3 class="section-header">Included Modules</h3>
69
+
70
+ <ul class="link-list">
71
+
72
+
73
+ <li><a class="include" href="Parallel.html">Nucleon::Parallel</a>
74
+
75
+
76
+ </ul>
77
+ </nav>
78
+
79
+ <!-- Method Quickref -->
80
+ <nav id="method-list-section" class="section">
81
+ <h3 class="section-header">Methods</h3>
82
+
83
+ <ul class="link-list">
84
+
85
+ <li><a href="#method-c-connection">::connection</a>
86
+
87
+ <li><a href="#method-c-new">::new</a>
88
+
89
+ <li><a href="#method-i-active_plugins">#active_plugins</a>
90
+
91
+ <li><a href="#method-i-autoload">#autoload</a>
92
+
93
+ <li><a href="#method-i-check">#check</a>
94
+
95
+ <li><a href="#method-i-class_const">#class_const</a>
96
+
97
+ <li><a href="#method-i-class_name">#class_name</a>
98
+
99
+ <li><a href="#method-i-collect">#collect</a>
100
+
101
+ <li><a href="#method-i-config">#config</a>
102
+
103
+ <li><a href="#method-i-create">#create</a>
104
+
105
+ <li><a href="#method-i-define_plugin">#define_plugin</a>
106
+
107
+ <li><a href="#method-i-define_type">#define_type</a>
108
+
109
+ <li><a href="#method-i-define_types">#define_types</a>
110
+
111
+ <li><a href="#method-i-exec">#exec</a>
112
+
113
+ <li><a href="#method-i-get">#get</a>
114
+
115
+ <li><a href="#method-i-load">#load</a>
116
+
117
+ <li><a href="#method-i-load_base">#load_base</a>
118
+
119
+ <li><a href="#method-i-load_multiple">#load_multiple</a>
120
+
121
+ <li><a href="#method-i-load_plugins">#load_plugins</a>
122
+
123
+ <li><a href="#method-i-loaded_plugin">#loaded_plugin</a>
124
+
125
+ <li><a href="#method-i-loaded_plugins">#loaded_plugins</a>
126
+
127
+ <li><a href="#method-i-myself">#myself</a>
128
+
129
+ <li><a href="#method-i-namespaces">#namespaces</a>
130
+
131
+ <li><a href="#method-i-parallel_finalize">#parallel_finalize</a>
132
+
133
+ <li><a href="#method-i-plugin_class">#plugin_class</a>
134
+
135
+ <li><a href="#method-i-plugin_has_provider-3F">#plugin_has_provider?</a>
136
+
137
+ <li><a href="#method-i-register">#register</a>
138
+
139
+ <li><a href="#method-i-register_namespace">#register_namespace</a>
140
+
141
+ <li><a href="#method-i-register_type">#register_type</a>
142
+
143
+ <li><a href="#method-i-reload">#reload</a>
144
+
145
+ <li><a href="#method-i-remove">#remove</a>
146
+
147
+ <li><a href="#method-i-remove_by_name">#remove_by_name</a>
148
+
149
+ <li><a href="#method-i-test_connection">#test_connection</a>
150
+
151
+ <li><a href="#method-i-translate">#translate</a>
152
+
153
+ <li><a href="#method-i-translate_type">#translate_type</a>
154
+
155
+ <li><a href="#method-i-type_default">#type_default</a>
156
+
157
+ <li><a href="#method-i-type_defined-3F">#type_defined?</a>
158
+
159
+ <li><a href="#method-i-types">#types</a>
160
+
161
+ <li><a href="#method-i-value">#value</a>
162
+
163
+ </ul>
164
+ </nav>
165
+
166
+ </div>
167
+
168
+ <div id="project-metadata">
169
+ <nav id="fileindex-section" class="section project-section">
170
+ <h3 class="section-header">Pages</h3>
171
+
172
+ <ul>
173
+
174
+ <li class="file"><a href="../ARCHITECTURE_rdoc.html">ARCHITECTURE</a>
175
+
176
+ <li class="file"><a href="../README_rdoc.html">README</a>
177
+
178
+ <li class="file"><a href="../TODO_rdoc.html">TODO</a>
179
+
180
+ </ul>
181
+ </nav>
182
+
183
+ <nav id="classindex-section" class="section project-section">
184
+ <h3 class="section-header">Class and Module Index</h3>
185
+
186
+ <ul class="link-list">
187
+
188
+ <li><a href="../Nucleon.html">Nucleon</a>
189
+
190
+ <li><a href="../Nucleon/Action.html">Nucleon::Action</a>
191
+
192
+ <li><a href="../Nucleon/Action/Extract.html">Nucleon::Action::Extract</a>
193
+
194
+ <li><a href="../Nucleon/Action/Project.html">Nucleon::Action::Project</a>
195
+
196
+ <li><a href="../Nucleon/Action/Project/Add.html">Nucleon::Action::Project::Add</a>
197
+
198
+ <li><a href="../Nucleon/Action/Project/Create.html">Nucleon::Action::Project::Create</a>
199
+
200
+ <li><a href="../Nucleon/Action/Project/Remove.html">Nucleon::Action::Project::Remove</a>
201
+
202
+ <li><a href="../Nucleon/Action/Project/Save.html">Nucleon::Action::Project::Save</a>
203
+
204
+ <li><a href="../Nucleon/Action/Project/Update.html">Nucleon::Action::Project::Update</a>
205
+
206
+ <li><a href="../Nucleon/Codes.html">Nucleon::Codes</a>
207
+
208
+ <li><a href="../Nucleon/Command.html">Nucleon::Command</a>
209
+
210
+ <li><a href="../Nucleon/Command/Bash.html">Nucleon::Command::Bash</a>
211
+
212
+ <li><a href="../Nucleon/Config.html">Nucleon::Config</a>
213
+
214
+ <li><a href="../Nucleon/Config/Collection.html">Nucleon::Config::Collection</a>
215
+
216
+ <li><a href="../Nucleon/Config/Options.html">Nucleon::Config::Options</a>
217
+
218
+ <li><a href="../Nucleon/Core.html">Nucleon::Core</a>
219
+
220
+ <li><a href="../Nucleon/Environment.html">Nucleon::Environment</a>
221
+
222
+ <li><a href="../Nucleon/Errors.html">Nucleon::Errors</a>
223
+
224
+ <li><a href="../Nucleon/Errors/BatchError.html">Nucleon::Errors::BatchError</a>
225
+
226
+ <li><a href="../Nucleon/Errors/NucleonError.html">Nucleon::Errors::NucleonError</a>
227
+
228
+ <li><a href="../Nucleon/Errors/SSHUnavailable.html">Nucleon::Errors::SSHUnavailable</a>
229
+
230
+ <li><a href="../Nucleon/Event.html">Nucleon::Event</a>
231
+
232
+ <li><a href="../Nucleon/Event/Regex.html">Nucleon::Event::Regex</a>
233
+
234
+ <li><a href="../Nucleon/Facade.html">Nucleon::Facade</a>
235
+
236
+ <li><a href="../Nucleon/Gems.html">Nucleon::Gems</a>
237
+
238
+ <li><a href="../Nucleon/Manager.html">Nucleon::Manager</a>
239
+
240
+ <li><a href="../Nucleon/Mixin.html">Nucleon::Mixin</a>
241
+
242
+ <li><a href="../Nucleon/Mixin/Action.html">Nucleon::Mixin::Action</a>
243
+
244
+ <li><a href="../Nucleon/Mixin/Action/Commit.html">Nucleon::Mixin::Action::Commit</a>
245
+
246
+ <li><a href="../Nucleon/Mixin/Action/Project.html">Nucleon::Mixin::Action::Project</a>
247
+
248
+ <li><a href="../Nucleon/Mixin/Action/Push.html">Nucleon::Mixin::Action::Push</a>
249
+
250
+ <li><a href="../Nucleon/Mixin/Colors.html">Nucleon::Mixin::Colors</a>
251
+
252
+ <li><a href="../Nucleon/Mixin/ConfigCollection.html">Nucleon::Mixin::ConfigCollection</a>
253
+
254
+ <li><a href="../Nucleon/Mixin/ConfigOptions.html">Nucleon::Mixin::ConfigOptions</a>
255
+
256
+ <li><a href="../Nucleon/Mixin/Macro.html">Nucleon::Mixin::Macro</a>
257
+
258
+ <li><a href="../Nucleon/Mixin/Macro/ObjectInterface.html">Nucleon::Mixin::Macro::ObjectInterface</a>
259
+
260
+ <li><a href="../Nucleon/Mixin/Macro/PluginInterface.html">Nucleon::Mixin::Macro::PluginInterface</a>
261
+
262
+ <li><a href="../Nucleon/Mixin/Settings.html">Nucleon::Mixin::Settings</a>
263
+
264
+ <li><a href="../Nucleon/Mixin/SubConfig.html">Nucleon::Mixin::SubConfig</a>
265
+
266
+ <li><a href="../Nucleon/Parallel.html">Nucleon::Parallel</a>
267
+
268
+ <li><a href="../Nucleon/Parallel/ClassMethods.html">Nucleon::Parallel::ClassMethods</a>
269
+
270
+ <li><a href="../Nucleon/Parallel/InstanceMethods.html">Nucleon::Parallel::InstanceMethods</a>
271
+
272
+ <li><a href="../Nucleon/Plugin.html">Nucleon::Plugin</a>
273
+
274
+ <li><a href="../Nucleon/Plugin/Action.html">Nucleon::Plugin::Action</a>
275
+
276
+ <li><a href="../Nucleon/Plugin/Action/Option.html">Nucleon::Plugin::Action::Option</a>
277
+
278
+ <li><a href="../Nucleon/Plugin/Base.html">Nucleon::Plugin::Base</a>
279
+
280
+ <li><a href="../Nucleon/Plugin/Command.html">Nucleon::Plugin::Command</a>
281
+
282
+ <li><a href="../Nucleon/Plugin/Event.html">Nucleon::Plugin::Event</a>
283
+
284
+ <li><a href="../Nucleon/Plugin/Extension.html">Nucleon::Plugin::Extension</a>
285
+
286
+ <li><a href="../Nucleon/Plugin/Project.html">Nucleon::Plugin::Project</a>
287
+
288
+ <li><a href="../Nucleon/Plugin/Template.html">Nucleon::Plugin::Template</a>
289
+
290
+ <li><a href="../Nucleon/Plugin/Translator.html">Nucleon::Plugin::Translator</a>
291
+
292
+ <li><a href="../Nucleon/Project.html">Nucleon::Project</a>
293
+
294
+ <li><a href="../Nucleon/Project/Git.html">Nucleon::Project::Git</a>
295
+
296
+ <li><a href="../Nucleon/Project/Github.html">Nucleon::Project::Github</a>
297
+
298
+ <li><a href="../Nucleon/Template.html">Nucleon::Template</a>
299
+
300
+ <li><a href="../Nucleon/Template/JSON.html">Nucleon::Template::JSON</a>
301
+
302
+ <li><a href="../Nucleon/Template/Wrapper.html">Nucleon::Template::Wrapper</a>
303
+
304
+ <li><a href="../Nucleon/Template/YAML.html">Nucleon::Template::YAML</a>
305
+
306
+ <li><a href="../Nucleon/Translator.html">Nucleon::Translator</a>
307
+
308
+ <li><a href="../Nucleon/Translator/JSON.html">Nucleon::Translator::JSON</a>
309
+
310
+ <li><a href="../Nucleon/Translator/YAML.html">Nucleon::Translator::YAML</a>
311
+
312
+ <li><a href="../Nucleon/Util.html">Nucleon::Util</a>
313
+
314
+ <li><a href="../Nucleon/Util/CLI.html">Nucleon::Util::CLI</a>
315
+
316
+ <li><a href="../Nucleon/Util/CLI/Parser.html">Nucleon::Util::CLI::Parser</a>
317
+
318
+ <li><a href="../Nucleon/Util/Cache.html">Nucleon::Util::Cache</a>
319
+
320
+ <li><a href="../Nucleon/Util/Console.html">Nucleon::Util::Console</a>
321
+
322
+ <li><a href="../Nucleon/Util/Data.html">Nucleon::Util::Data</a>
323
+
324
+ <li><a href="../Nucleon/Util/Disk.html">Nucleon::Util::Disk</a>
325
+
326
+ <li><a href="../Nucleon/Util/Git.html">Nucleon::Util::Git</a>
327
+
328
+ <li><a href="../Nucleon/Util/Liquid.html">Nucleon::Util::Liquid</a>
329
+
330
+ <li><a href="../Nucleon/Util/Logger.html">Nucleon::Util::Logger</a>
331
+
332
+ <li><a href="../Nucleon/Util/Package.html">Nucleon::Util::Package</a>
333
+
334
+ <li><a href="../Nucleon/Util/SSH.html">Nucleon::Util::SSH</a>
335
+
336
+ <li><a href="../Nucleon/Util/SSH/Keypair.html">Nucleon::Util::SSH::Keypair</a>
337
+
338
+ <li><a href="../Nucleon/Util/Shell.html">Nucleon::Util::Shell</a>
339
+
340
+ <li><a href="../Nucleon/Util/Shell/Result.html">Nucleon::Util::Shell::Result</a>
341
+
342
+ <li><a href="../Hash.html">Hash</a>
343
+
344
+ <li><a href="../Kernel.html">Kernel</a>
345
+
346
+ </ul>
347
+ </nav>
348
+
349
+ </div>
350
+ </nav>
351
+
352
+ <div id="documentation">
353
+ <h1 class="class">class Nucleon::Manager</h1>
354
+
355
+ <div id="description" class="description">
356
+
357
+ </div><!-- description -->
358
+
359
+
360
+
361
+
362
+ <section id="5Buntitled-5D" class="documentation-section">
363
+
364
+
365
+
366
+
367
+
368
+
369
+
370
+ <!-- Attributes -->
371
+ <section id="attribute-method-details" class="method-section section">
372
+ <h3 class="section-header">Attributes</h3>
373
+
374
+
375
+ <div id="attribute-i-logger" class="method-detail">
376
+ <div class="method-heading attribute-method-heading">
377
+ <span class="method-name">logger</span><span
378
+ class="attribute-access-type">[R]</span>
379
+ </div>
380
+
381
+ <div class="method-description">
382
+
383
+
384
+
385
+ </div>
386
+ </div>
387
+
388
+ </section><!-- attribute-method-details -->
389
+
390
+
391
+ <!-- Methods -->
392
+
393
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
394
+ <h3 class="section-header">Public Class Methods</h3>
395
+
396
+
397
+ <div id="method-c-connection" class="method-detail ">
398
+
399
+ <div class="method-heading">
400
+ <span class="method-name">connection</span><span
401
+ class="method-args">(name = :core, reset = false)</span>
402
+ <span class="method-click-advice">click to toggle source</span>
403
+ </div>
404
+
405
+
406
+ <div class="method-description">
407
+
408
+
409
+
410
+
411
+
412
+ <div class="method-source-code" id="connection-source">
413
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 15</span>
414
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">connection</span>(<span class="ruby-identifier">name</span> = <span class="ruby-value">:core</span>, <span class="ruby-identifier">reset</span> = <span class="ruby-keyword">false</span>)
415
+ <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">manager</span>(<span class="ruby-identifier">@@supervisors</span>, <span class="ruby-identifier">name</span>, <span class="ruby-keyword">self</span>, <span class="ruby-identifier">reset</span>)
416
+ <span class="ruby-keyword">end</span></pre>
417
+ </div><!-- connection-source -->
418
+
419
+ </div>
420
+
421
+
422
+
423
+
424
+ </div><!-- connection-method -->
425
+
426
+
427
+ <div id="method-c-new" class="method-detail ">
428
+
429
+ <div class="method-heading">
430
+ <span class="method-name">new</span><span
431
+ class="method-args">(actor_id, reset)</span>
432
+ <span class="method-click-advice">click to toggle source</span>
433
+ </div>
434
+
435
+
436
+ <div class="method-description">
437
+
438
+
439
+
440
+
441
+
442
+ <div class="method-source-code" id="new-source">
443
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 21</span>
444
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">initialize</span>(<span class="ruby-identifier">actor_id</span>, <span class="ruby-identifier">reset</span>)
445
+ <span class="ruby-ivar">@logger</span> = <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">logger</span>
446
+ <span class="ruby-ivar">@actor_id</span> = <span class="ruby-identifier">actor_id</span>
447
+
448
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">reset</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>]
449
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>] = <span class="ruby-constant">Environment</span>.<span class="ruby-identifier">new</span>
450
+ <span class="ruby-keyword">end</span>
451
+ <span class="ruby-keyword">end</span></pre>
452
+ </div><!-- new-source -->
453
+
454
+ </div>
455
+
456
+
457
+
458
+
459
+ </div><!-- new-method -->
460
+
461
+
462
+ </section><!-- public-class-method-details -->
463
+
464
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
465
+ <h3 class="section-header">Public Instance Methods</h3>
466
+
467
+
468
+ <div id="method-i-active_plugins" class="method-detail ">
469
+
470
+ <div class="method-heading">
471
+ <span class="method-name">active_plugins</span><span
472
+ class="method-args">(namespace = nil, plugin_type = nil, provider = nil)</span>
473
+ <span class="method-click-advice">click to toggle source</span>
474
+ </div>
475
+
476
+
477
+ <div class="method-description">
478
+
479
+
480
+
481
+
482
+
483
+ <div class="method-source-code" id="active_plugins-source">
484
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 107</span>
485
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">active_plugins</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">plugin_type</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">provider</span> = <span class="ruby-keyword">nil</span>)
486
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">active_plugins</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>)
487
+ <span class="ruby-keyword">end</span></pre>
488
+ </div><!-- active_plugins-source -->
489
+
490
+ </div>
491
+
492
+
493
+
494
+
495
+ </div><!-- active_plugins-method -->
496
+
497
+
498
+ <div id="method-i-autoload" class="method-detail ">
499
+
500
+ <div class="method-heading">
501
+ <span class="method-name">autoload</span><span
502
+ class="method-args">()</span>
503
+ <span class="method-click-advice">click to toggle source</span>
504
+ </div>
505
+
506
+
507
+ <div class="method-description">
508
+
509
+
510
+
511
+
512
+
513
+ <div class="method-source-code" id="autoload-source">
514
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 208</span>
515
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">autoload</span>
516
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Autoloading registered plugins at #{Time.now}&quot;</span>)
517
+
518
+ <span class="ruby-identifier">load_info</span> = <span class="ruby-identifier">loaded_plugins</span>
519
+
520
+ <span class="ruby-identifier">load_info</span>.<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespace</span><span class="ruby-operator">|</span>
521
+ <span class="ruby-identifier">load_info</span>[<span class="ruby-identifier">namespace</span>].<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">plugin_type</span><span class="ruby-operator">|</span>
522
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Autoloading type: #{plugin_type}&quot;</span>)
523
+
524
+ <span class="ruby-identifier">load_info</span>[<span class="ruby-identifier">namespace</span>][<span class="ruby-identifier">plugin_type</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">plugin</span><span class="ruby-operator">|</span>
525
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Autoloading provider #{provider} at #{plugin[:directory]}&quot;</span>)
526
+
527
+ <span class="ruby-identifier">require</span> <span class="ruby-identifier">plugin</span>[<span class="ruby-value">:file</span>]
528
+
529
+ <span class="ruby-identifier">load_info</span>[<span class="ruby-identifier">namespace</span>][<span class="ruby-identifier">plugin_type</span>][<span class="ruby-identifier">provider</span>][<span class="ruby-value">:class</span>] = <span class="ruby-identifier">class_const</span>(<span class="ruby-identifier">plugin</span>[<span class="ruby-value">:class_components</span>])
530
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Updated #{plugin_type} #{provider} load info&quot;</span>)
531
+
532
+ <span class="ruby-comment"># Make sure extensions are listening from the time they are loaded</span>
533
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">plugin</span>[<span class="ruby-value">:namespace</span>] <span class="ruby-operator">==</span> <span class="ruby-value">:nucleon</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">plugin_type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:extension</span>
534
+ <span class="ruby-comment"># Create a persistent instance</span>
535
+ <span class="ruby-identifier">load</span>(<span class="ruby-identifier">plugin</span>[<span class="ruby-value">:namespace</span>], <span class="ruby-value">:extension</span>, <span class="ruby-identifier">provider</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">provider</span> })
536
+ <span class="ruby-keyword">end</span>
537
+ <span class="ruby-keyword">end</span>
538
+ <span class="ruby-keyword">end</span>
539
+ <span class="ruby-keyword">end</span>
540
+ <span class="ruby-keyword">end</span></pre>
541
+ </div><!-- autoload-source -->
542
+
543
+ </div>
544
+
545
+
546
+
547
+
548
+ </div><!-- autoload-method -->
549
+
550
+
551
+ <div id="method-i-check" class="method-detail ">
552
+
553
+ <div class="method-heading">
554
+ <span class="method-name">check</span><span
555
+ class="method-args">(method, options = {})</span>
556
+ <span class="method-click-advice">click to toggle source</span>
557
+ </div>
558
+
559
+
560
+ <div class="method-description">
561
+
562
+
563
+
564
+
565
+
566
+ <div class="method-source-code" id="check-source">
567
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 413</span>
568
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">check</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">options</span> = {})
569
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
570
+
571
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Checking extension #{method}&quot;</span>)
572
+
573
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">exec</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">import</span>({ <span class="ruby-value">:extension_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:check</span> })) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
574
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">op</span> <span class="ruby-operator">==</span> <span class="ruby-value">:reduce</span>
575
+ <span class="ruby-operator">!</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">values</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-keyword">false</span>)
576
+ <span class="ruby-keyword">else</span>
577
+ <span class="ruby-identifier">data</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span>
578
+ <span class="ruby-keyword">end</span>
579
+ <span class="ruby-keyword">end</span>
580
+
581
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">success</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">success</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">true</span> <span class="ruby-operator">:</span> <span class="ruby-keyword">false</span>
582
+
583
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Extension #{method} check result: #{success.inspect}&quot;</span>)
584
+ <span class="ruby-identifier">success</span>
585
+ <span class="ruby-keyword">end</span></pre>
586
+ </div><!-- check-source -->
587
+
588
+ </div>
589
+
590
+
591
+
592
+
593
+ </div><!-- check-method -->
594
+
595
+
596
+ <div id="method-i-class_const" class="method-detail ">
597
+
598
+ <div class="method-heading">
599
+ <span class="method-name">class_const</span><span
600
+ class="method-args">(name, separator = '::')</span>
601
+ <span class="method-click-advice">click to toggle source</span>
602
+ </div>
603
+
604
+
605
+ <div class="method-description">
606
+
607
+
608
+
609
+
610
+
611
+ <div class="method-source-code" id="class_const-source">
612
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 502</span>
613
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">class_const</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">separator</span> = <span class="ruby-string">&#39;::&#39;</span>)
614
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">class_const</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">separator</span>)
615
+ <span class="ruby-keyword">end</span></pre>
616
+ </div><!-- class_const-source -->
617
+
618
+ </div>
619
+
620
+
621
+
622
+
623
+ </div><!-- class_const-method -->
624
+
625
+
626
+ <div id="method-i-class_name" class="method-detail ">
627
+
628
+ <div class="method-heading">
629
+ <span class="method-name">class_name</span><span
630
+ class="method-args">(name, separator = '::', want_array = FALSE)</span>
631
+ <span class="method-click-advice">click to toggle source</span>
632
+ </div>
633
+
634
+
635
+ <div class="method-description">
636
+
637
+
638
+
639
+
640
+
641
+ <div class="method-source-code" id="class_name-source">
642
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 496</span>
643
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">class_name</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">separator</span> = <span class="ruby-string">&#39;::&#39;</span>, <span class="ruby-identifier">want_array</span> = <span class="ruby-constant">FALSE</span>)
644
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">class_name</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">separator</span>, <span class="ruby-identifier">want_array</span>)
645
+ <span class="ruby-keyword">end</span></pre>
646
+ </div><!-- class_name-source -->
647
+
648
+ </div>
649
+
650
+
651
+
652
+
653
+ </div><!-- class_name-method -->
654
+
655
+
656
+ <div id="method-i-collect" class="method-detail ">
657
+
658
+ <div class="method-heading">
659
+ <span class="method-name">collect</span><span
660
+ class="method-args">(method, options = {})</span>
661
+ <span class="method-click-advice">click to toggle source</span>
662
+ </div>
663
+
664
+
665
+ <div class="method-description">
666
+
667
+
668
+
669
+
670
+
671
+ <div class="method-source-code" id="collect-source">
672
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 451</span>
673
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">collect</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">options</span> = {})
674
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
675
+ <span class="ruby-identifier">values</span> = []
676
+
677
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Collecting extension #{method} values&quot;</span>)
678
+
679
+ <span class="ruby-identifier">exec</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">import</span>({ <span class="ruby-value">:extension_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:collect</span> })) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
680
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">op</span> <span class="ruby-operator">==</span> <span class="ruby-value">:process</span>
681
+ <span class="ruby-identifier">values</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">data</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">nil?</span>
682
+ <span class="ruby-keyword">end</span>
683
+ <span class="ruby-keyword">end</span>
684
+ <span class="ruby-identifier">values</span> = <span class="ruby-identifier">values</span>.<span class="ruby-identifier">flatten</span>
685
+
686
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Extension #{method} collected values: #{values.inspect}&quot;</span>)
687
+ <span class="ruby-identifier">values</span>
688
+ <span class="ruby-keyword">end</span></pre>
689
+ </div><!-- collect-source -->
690
+
691
+ </div>
692
+
693
+
694
+
695
+
696
+ </div><!-- collect-method -->
697
+
698
+
699
+ <div id="method-i-config" class="method-detail ">
700
+
701
+ <div class="method-heading">
702
+ <span class="method-name">config</span><span
703
+ class="method-args">(type, options = {})</span>
704
+ <span class="method-click-advice">click to toggle source</span>
705
+ </div>
706
+
707
+
708
+ <div class="method-description">
709
+
710
+
711
+
712
+
713
+
714
+ <div class="method-source-code" id="config-source">
715
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 392</span>
716
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">config</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">options</span> = {})
717
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
718
+
719
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Generating #{type} extended configuration&quot;</span>)
720
+
721
+ <span class="ruby-identifier">exec</span>(<span class="ruby-node">&quot;#{type}_config&quot;</span>, <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>)) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
722
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">op</span> <span class="ruby-operator">==</span> <span class="ruby-value">:reduce</span>
723
+ <span class="ruby-identifier">data</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">result</span><span class="ruby-operator">|</span>
724
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">import</span>(<span class="ruby-identifier">result</span>)
725
+ <span class="ruby-keyword">end</span>
726
+ <span class="ruby-keyword">nil</span>
727
+ <span class="ruby-keyword">else</span>
728
+ <span class="ruby-identifier">data</span>
729
+ <span class="ruby-keyword">end</span>
730
+ <span class="ruby-keyword">end</span>
731
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:extension_type</span>)
732
+ <span class="ruby-identifier">config</span>
733
+ <span class="ruby-keyword">end</span></pre>
734
+ </div><!-- config-source -->
735
+
736
+ </div>
737
+
738
+
739
+
740
+
741
+ </div><!-- config-method -->
742
+
743
+
744
+ <div id="method-i-create" class="method-detail ">
745
+
746
+ <div class="method-heading">
747
+ <span class="method-name">create</span><span
748
+ class="method-args">(namespace, plugin_type, provider, options = {})</span>
749
+ <span class="method-click-advice">click to toggle source</span>
750
+ </div>
751
+
752
+
753
+ <div class="method-description">
754
+
755
+
756
+
757
+
758
+
759
+ <div class="method-source-code" id="create-source">
760
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 304</span>
761
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">create</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span> = {})
762
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">create_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">type_info</span>, <span class="ruby-identifier">plugin_options</span><span class="ruby-operator">|</span>
763
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Creating new plugin #{provider} #{plugin_type}&quot;</span>)
764
+
765
+ <span class="ruby-identifier">plugin_options</span> = <span class="ruby-identifier">translate</span>(<span class="ruby-identifier">type_info</span>, <span class="ruby-identifier">plugin_options</span>)
766
+ <span class="ruby-identifier">plugin_options</span>[<span class="ruby-value">:meta</span>] = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">type_info</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">hash</span>(<span class="ruby-identifier">plugin_options</span>[<span class="ruby-value">:meta</span>]))
767
+ <span class="ruby-identifier">plugin_options</span>
768
+ <span class="ruby-keyword">end</span>
769
+ <span class="ruby-keyword">end</span></pre>
770
+ </div><!-- create-source -->
771
+
772
+ </div>
773
+
774
+
775
+
776
+
777
+ </div><!-- create-method -->
778
+
779
+
780
+ <div id="method-i-define_plugin" class="method-detail ">
781
+
782
+ <div class="method-heading">
783
+ <span class="method-name">define_plugin</span><span
784
+ class="method-args">(namespace, plugin_type, base_path, file, &code)</span>
785
+ <span class="method-click-advice">click to toggle source</span>
786
+ </div>
787
+
788
+
789
+ <div class="method-description">
790
+
791
+
792
+
793
+
794
+
795
+ <div class="method-source-code" id="define_plugin-source">
796
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 97</span>
797
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">define_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">base_path</span>, <span class="ruby-identifier">file</span>, &amp;<span class="ruby-identifier">code</span>)
798
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">define_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">base_path</span>, <span class="ruby-identifier">file</span>, &amp;<span class="ruby-identifier">code</span>)
799
+ <span class="ruby-keyword">end</span></pre>
800
+ </div><!-- define_plugin-source -->
801
+
802
+ </div>
803
+
804
+
805
+
806
+
807
+ </div><!-- define_plugin-method -->
808
+
809
+
810
+ <div id="method-i-define_type" class="method-detail ">
811
+
812
+ <div class="method-heading">
813
+ <span class="method-name">define_type</span><span
814
+ class="method-args">(namespace, plugin_type, default_provider)</span>
815
+ <span class="method-click-advice">click to toggle source</span>
816
+ </div>
817
+
818
+
819
+ <div class="method-description">
820
+
821
+
822
+
823
+
824
+
825
+ <div class="method-source-code" id="define_type-source">
826
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 71</span>
827
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">define_type</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">default_provider</span>)
828
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">define_plugin_type</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">default_provider</span>)
829
+ <span class="ruby-keyword">end</span></pre>
830
+ </div><!-- define_type-source -->
831
+
832
+ </div>
833
+
834
+
835
+
836
+
837
+ </div><!-- define_type-method -->
838
+
839
+
840
+ <div id="method-i-define_types" class="method-detail ">
841
+
842
+ <div class="method-heading">
843
+ <span class="method-name">define_types</span><span
844
+ class="method-args">(namespace, type_info)</span>
845
+ <span class="method-click-advice">click to toggle source</span>
846
+ </div>
847
+
848
+
849
+ <div class="method-description">
850
+
851
+
852
+
853
+
854
+
855
+ <div class="method-source-code" id="define_types-source">
856
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 75</span>
857
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">define_types</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">type_info</span>)
858
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">define_plugin_types</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">type_info</span>)
859
+ <span class="ruby-keyword">end</span></pre>
860
+ </div><!-- define_types-source -->
861
+
862
+ </div>
863
+
864
+
865
+
866
+
867
+ </div><!-- define_types-method -->
868
+
869
+
870
+ <div id="method-i-exec" class="method-detail ">
871
+
872
+ <div class="method-heading">
873
+ <span class="method-name">exec</span><span
874
+ class="method-args">(method, options = {}) { |:process, result| ... }</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="exec-source">
886
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 350</span>
887
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">exec</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">options</span> = {})
888
+ <span class="ruby-identifier">results</span> = <span class="ruby-keyword">nil</span>
889
+
890
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Executing extension hook #{Nucleon.blue(method)} at #{Nucleon.green(Time.now.to_s)}&quot;</span>)
891
+
892
+ <span class="ruby-identifier">extensions</span> = <span class="ruby-identifier">active_plugins</span>(<span class="ruby-value">:nucleon</span>, <span class="ruby-value">:extension</span>)
893
+
894
+ <span class="ruby-identifier">extensions</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">plugin</span><span class="ruby-operator">|</span>
895
+ <span class="ruby-identifier">provider</span> = <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">plugin_provider</span>
896
+ <span class="ruby-identifier">result</span> = <span class="ruby-keyword">nil</span>
897
+
898
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Checking extension #{provider}&quot;</span>)
899
+
900
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-identifier">method</span>)
901
+ <span class="ruby-identifier">results</span> = {} <span class="ruby-keyword">if</span> <span class="ruby-identifier">results</span>.<span class="ruby-identifier">nil?</span>
902
+
903
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">send</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">options</span>)
904
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Completed hook #{method} at #{Time.now}&quot;</span>)
905
+
906
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
907
+ <span class="ruby-identifier">results</span>[<span class="ruby-identifier">provider</span>] = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:process</span>, <span class="ruby-identifier">result</span>)
908
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Processed extension result into: #{results[provider].inspect}&quot;</span>)
909
+ <span class="ruby-keyword">end</span>
910
+
911
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">results</span>[<span class="ruby-identifier">provider</span>].<span class="ruby-identifier">nil?</span>
912
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Setting extension result to: #{result.inspect}&quot;</span>)
913
+ <span class="ruby-identifier">results</span>[<span class="ruby-identifier">provider</span>] = <span class="ruby-identifier">result</span>
914
+ <span class="ruby-keyword">end</span>
915
+ <span class="ruby-keyword">end</span>
916
+ <span class="ruby-keyword">end</span>
917
+
918
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">results</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span>
919
+ <span class="ruby-identifier">results</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-value">:reduce</span>, <span class="ruby-identifier">results</span>)
920
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Reducing extension results to: #{results.inspect}&quot;</span>)
921
+ <span class="ruby-keyword">else</span>
922
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Final extension results: #{results.inspect}&quot;</span>)
923
+ <span class="ruby-keyword">end</span>
924
+ <span class="ruby-identifier">results</span>
925
+ <span class="ruby-keyword">end</span></pre>
926
+ </div><!-- exec-source -->
927
+
928
+ </div>
929
+
930
+
931
+
932
+
933
+ </div><!-- exec-method -->
934
+
935
+
936
+ <div id="method-i-get" class="method-detail ">
937
+
938
+ <div class="method-heading">
939
+ <span class="method-name">get</span><span
940
+ class="method-args">(namespace, plugin_type, plugin_name)</span>
941
+ <span class="method-click-advice">click to toggle source</span>
942
+ </div>
943
+
944
+
945
+ <div class="method-description">
946
+
947
+
948
+
949
+
950
+
951
+ <div class="method-source-code" id="get-source">
952
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 316</span>
953
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">get</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">plugin_name</span>)
954
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">get_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">plugin_name</span>)
955
+ <span class="ruby-keyword">end</span></pre>
956
+ </div><!-- get-source -->
957
+
958
+ </div>
959
+
960
+
961
+
962
+
963
+ </div><!-- get-method -->
964
+
965
+
966
+ <div id="method-i-load" class="method-detail ">
967
+
968
+ <div class="method-heading">
969
+ <span class="method-name">load</span><span
970
+ class="method-args">(namespace, plugin_type, provider = nil, options = {})</span>
971
+ <span class="method-click-advice">click to toggle source</span>
972
+ </div>
973
+
974
+
975
+ <div class="method-description">
976
+
977
+
978
+
979
+
980
+
981
+ <div class="method-source-code" id="load-source">
982
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 269</span>
983
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">load</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">options</span> = {})
984
+ <span class="ruby-identifier">default_provider</span> = <span class="ruby-identifier">type_default</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
985
+
986
+ <span class="ruby-comment"># Allow options to override provider</span>
987
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
988
+ <span class="ruby-identifier">provider</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:provider</span>, <span class="ruby-identifier">provider</span>)
989
+ <span class="ruby-identifier">provider</span> = <span class="ruby-identifier">default_provider</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">provider</span>
990
+
991
+ <span class="ruby-identifier">load_base</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>, <span class="ruby-identifier">config</span>)
992
+ <span class="ruby-keyword">end</span></pre>
993
+ </div><!-- load-source -->
994
+
995
+ </div>
996
+
997
+
998
+
999
+
1000
+ </div><!-- load-method -->
1001
+
1002
+
1003
+ <div id="method-i-load_base" class="method-detail ">
1004
+
1005
+ <div class="method-heading">
1006
+ <span class="method-name">load_base</span><span
1007
+ class="method-args">(namespace, plugin_type, provider, options = {})</span>
1008
+ <span class="method-click-advice">click to toggle source</span>
1009
+ </div>
1010
+
1011
+
1012
+ <div class="method-description">
1013
+
1014
+
1015
+
1016
+
1017
+
1018
+ <div class="method-source-code" id="load_base-source">
1019
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 238</span>
1020
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">load_base</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span> = {})
1021
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Fetching plugin #{namespace} #{plugin_type} provider #{provider} at #{Time.now}&quot;</span>)
1022
+
1023
+ <span class="ruby-identifier">type_info</span> = <span class="ruby-identifier">loaded_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>)
1024
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">translate_type</span>(<span class="ruby-identifier">type_info</span>, <span class="ruby-identifier">options</span>)
1025
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1026
+ <span class="ruby-identifier">name</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:name</span>, <span class="ruby-keyword">nil</span>)
1027
+ <span class="ruby-identifier">ensure_new</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:new</span>, <span class="ruby-keyword">false</span>)
1028
+
1029
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span>
1030
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Looking up existing instance of #{name}&quot;</span>)
1031
+
1032
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">existing_instance</span> = <span class="ruby-identifier">get</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">name</span>)
1033
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">ensure_new</span>
1034
+ <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">property_name</span>, <span class="ruby-identifier">value</span><span class="ruby-operator">|</span>
1035
+ <span class="ruby-keyword">unless</span> [ <span class="ruby-value">:name</span>, <span class="ruby-value">:meta</span> ].<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">property_name</span>)
1036
+ <span class="ruby-identifier">existing_instance</span>[<span class="ruby-identifier">property_name</span>] = <span class="ruby-identifier">value</span>
1037
+ <span class="ruby-keyword">end</span>
1038
+ <span class="ruby-keyword">end</span>
1039
+ <span class="ruby-identifier">existing_instance</span>.<span class="ruby-identifier">normalize</span>(<span class="ruby-keyword">true</span>)
1040
+
1041
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Using existing instance of #{plugin_type}, #{name}&quot;</span>)
1042
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">existing_instance</span>
1043
+ <span class="ruby-keyword">end</span>
1044
+ <span class="ruby-keyword">end</span>
1045
+ <span class="ruby-keyword">end</span>
1046
+ <span class="ruby-identifier">create</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>, <span class="ruby-identifier">config</span>)
1047
+ <span class="ruby-keyword">end</span></pre>
1048
+ </div><!-- load_base-source -->
1049
+
1050
+ </div>
1051
+
1052
+
1053
+
1054
+
1055
+ </div><!-- load_base-method -->
1056
+
1057
+
1058
+ <div id="method-i-load_multiple" class="method-detail ">
1059
+
1060
+ <div class="method-heading">
1061
+ <span class="method-name">load_multiple</span><span
1062
+ class="method-args">(namespace, plugin_type, data, build_hash = false, keep_array = false)</span>
1063
+ <span class="method-click-advice">click to toggle source</span>
1064
+ </div>
1065
+
1066
+
1067
+ <div class="method-description">
1068
+
1069
+
1070
+
1071
+
1072
+
1073
+ <div class="method-source-code" id="load_multiple-source">
1074
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 282</span>
1075
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">load_multiple</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">data</span>, <span class="ruby-identifier">build_hash</span> = <span class="ruby-keyword">false</span>, <span class="ruby-identifier">keep_array</span> = <span class="ruby-keyword">false</span>)
1076
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Fetching multiple plugins of #{plugin_type} at #{Time.now}&quot;</span>)
1077
+
1078
+ <span class="ruby-identifier">group</span> = ( <span class="ruby-identifier">build_hash</span> <span class="ruby-operator">?</span> {} <span class="ruby-operator">:</span> [] )
1079
+ <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">plugin_class</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
1080
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">build_info</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:build_info</span>)
1081
+
1082
+ <span class="ruby-identifier">data</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">options</span><span class="ruby-operator">|</span>
1083
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">plugin</span> = <span class="ruby-identifier">load</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">options</span>[<span class="ruby-value">:provider</span>], <span class="ruby-identifier">options</span>)
1084
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">build_hash</span>
1085
+ <span class="ruby-identifier">group</span>[<span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">plugin_name</span>] = <span class="ruby-identifier">plugin</span>
1086
+ <span class="ruby-keyword">else</span>
1087
+ <span class="ruby-identifier">group</span> <span class="ruby-operator">&lt;&lt;</span> <span class="ruby-identifier">plugin</span>
1088
+ <span class="ruby-keyword">end</span>
1089
+ <span class="ruby-keyword">end</span>
1090
+ <span class="ruby-keyword">end</span>
1091
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">group</span>.<span class="ruby-identifier">shift</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">build_hash</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">group</span>.<span class="ruby-identifier">length</span> <span class="ruby-operator">==</span> <span class="ruby-value">1</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">keep_array</span>
1092
+ <span class="ruby-identifier">group</span>
1093
+ <span class="ruby-keyword">end</span></pre>
1094
+ </div><!-- load_multiple-source -->
1095
+
1096
+ </div>
1097
+
1098
+
1099
+
1100
+
1101
+ </div><!-- load_multiple-method -->
1102
+
1103
+
1104
+ <div id="method-i-loaded_plugin" class="method-detail ">
1105
+
1106
+ <div class="method-heading">
1107
+ <span class="method-name">loaded_plugin</span><span
1108
+ class="method-args">(namespace, plugin_type, provider)</span>
1109
+ <span class="method-click-advice">click to toggle source</span>
1110
+ </div>
1111
+
1112
+
1113
+ <div class="method-description">
1114
+
1115
+
1116
+
1117
+
1118
+
1119
+ <div class="method-source-code" id="loaded_plugin-source">
1120
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 89</span>
1121
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">loaded_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>)
1122
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">loaded_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>)
1123
+ <span class="ruby-keyword">end</span></pre>
1124
+ </div><!-- loaded_plugin-source -->
1125
+
1126
+ </div>
1127
+
1128
+
1129
+
1130
+
1131
+ </div><!-- loaded_plugin-method -->
1132
+
1133
+
1134
+ <div id="method-i-loaded_plugins" class="method-detail ">
1135
+
1136
+ <div class="method-heading">
1137
+ <span class="method-name">loaded_plugins</span><span
1138
+ class="method-args">(namespace = nil, plugin_type = nil, provider = nil)</span>
1139
+ <span class="method-click-advice">click to toggle source</span>
1140
+ </div>
1141
+
1142
+
1143
+ <div class="method-description">
1144
+
1145
+
1146
+
1147
+
1148
+
1149
+ <div class="method-source-code" id="loaded_plugins-source">
1150
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 93</span>
1151
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">loaded_plugins</span>(<span class="ruby-identifier">namespace</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">plugin_type</span> = <span class="ruby-keyword">nil</span>, <span class="ruby-identifier">provider</span> = <span class="ruby-keyword">nil</span>)
1152
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">loaded_plugins</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>)
1153
+ <span class="ruby-keyword">end</span></pre>
1154
+ </div><!-- loaded_plugins-source -->
1155
+
1156
+ </div>
1157
+
1158
+
1159
+
1160
+
1161
+ </div><!-- loaded_plugins-method -->
1162
+
1163
+
1164
+ <div id="method-i-myself" class="method-detail ">
1165
+
1166
+ <div class="method-heading">
1167
+ <span class="method-name">myself</span><span
1168
+ class="method-args">()</span>
1169
+ <span class="method-click-advice">click to toggle source</span>
1170
+ </div>
1171
+
1172
+
1173
+ <div class="method-description">
1174
+
1175
+
1176
+
1177
+
1178
+
1179
+ <div class="method-source-code" id="myself-source">
1180
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 48</span>
1181
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">myself</span>
1182
+ <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">handle</span>(<span class="ruby-keyword">self</span>)
1183
+ <span class="ruby-keyword">end</span></pre>
1184
+ </div><!-- myself-source -->
1185
+
1186
+ </div>
1187
+
1188
+
1189
+
1190
+
1191
+ </div><!-- myself-method -->
1192
+
1193
+
1194
+ <div id="method-i-namespaces" class="method-detail ">
1195
+
1196
+ <div class="method-heading">
1197
+ <span class="method-name">namespaces</span><span
1198
+ class="method-args">()</span>
1199
+ <span class="method-click-advice">click to toggle source</span>
1200
+ </div>
1201
+
1202
+
1203
+ <div class="method-description">
1204
+
1205
+
1206
+
1207
+
1208
+
1209
+ <div class="method-source-code" id="namespaces-source">
1210
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 61</span>
1211
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">namespaces</span>
1212
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">namespaces</span>
1213
+ <span class="ruby-keyword">end</span></pre>
1214
+ </div><!-- namespaces-source -->
1215
+
1216
+ </div>
1217
+
1218
+
1219
+
1220
+
1221
+ </div><!-- namespaces-method -->
1222
+
1223
+
1224
+ <div id="method-i-parallel_finalize" class="method-detail ">
1225
+
1226
+ <div class="method-heading">
1227
+ <span class="method-name">parallel_finalize</span><span
1228
+ class="method-args">()</span>
1229
+ <span class="method-click-advice">click to toggle source</span>
1230
+ </div>
1231
+
1232
+
1233
+ <div class="method-description">
1234
+
1235
+
1236
+
1237
+
1238
+
1239
+ <div class="method-source-code" id="parallel_finalize-source">
1240
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 32</span>
1241
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">parallel_finalize</span>
1242
+ <span class="ruby-identifier">active_plugins</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">namespace_plugins</span><span class="ruby-operator">|</span>
1243
+ <span class="ruby-identifier">namespace_plugins</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">type_plugins</span><span class="ruby-operator">|</span>
1244
+ <span class="ruby-identifier">type_plugins</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">instance_name</span>, <span class="ruby-identifier">plugin</span><span class="ruby-operator">|</span>
1245
+ <span class="ruby-identifier">remove</span>(<span class="ruby-identifier">plugin</span>)
1246
+ <span class="ruby-keyword">end</span>
1247
+ <span class="ruby-keyword">end</span>
1248
+ <span class="ruby-keyword">end</span>
1249
+ <span class="ruby-keyword">end</span></pre>
1250
+ </div><!-- parallel_finalize-source -->
1251
+
1252
+ </div>
1253
+
1254
+
1255
+
1256
+
1257
+ </div><!-- parallel_finalize-method -->
1258
+
1259
+
1260
+ <div id="method-i-plugin_class" class="method-detail ">
1261
+
1262
+ <div class="method-heading">
1263
+ <span class="method-name">plugin_class</span><span
1264
+ class="method-args">(namespace, plugin_type)</span>
1265
+ <span class="method-click-advice">click to toggle source</span>
1266
+ </div>
1267
+
1268
+
1269
+ <div class="method-description">
1270
+
1271
+
1272
+
1273
+
1274
+
1275
+ <div class="method-source-code" id="plugin_class-source">
1276
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 508</span>
1277
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">plugin_class</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
1278
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">plugin_class</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
1279
+ <span class="ruby-keyword">end</span></pre>
1280
+ </div><!-- plugin_class-source -->
1281
+
1282
+ </div>
1283
+
1284
+
1285
+
1286
+
1287
+ </div><!-- plugin_class-method -->
1288
+
1289
+
1290
+ <div id="method-i-plugin_has_provider-3F" class="method-detail ">
1291
+
1292
+ <div class="method-heading">
1293
+ <span class="method-name">plugin_has_provider?</span><span
1294
+ class="method-args">(namespace, plugin_type, provider)</span>
1295
+ <span class="method-click-advice">click to toggle source</span>
1296
+ </div>
1297
+
1298
+
1299
+ <div class="method-description">
1300
+
1301
+
1302
+
1303
+
1304
+
1305
+ <div class="method-source-code" id="plugin_has_provider-3F-source">
1306
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 101</span>
1307
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">plugin_has_provider?</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>)
1308
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">plugin_has_provider?</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">provider</span>)
1309
+ <span class="ruby-keyword">end</span></pre>
1310
+ </div><!-- plugin_has_provider-3F-source -->
1311
+
1312
+ </div>
1313
+
1314
+
1315
+
1316
+
1317
+ </div><!-- plugin_has_provider-3F-method -->
1318
+
1319
+
1320
+ <div id="method-i-register" class="method-detail ">
1321
+
1322
+ <div class="method-heading">
1323
+ <span class="method-name">register</span><span
1324
+ class="method-args">(base_path, &code)</span>
1325
+ <span class="method-click-advice">click to toggle source</span>
1326
+ </div>
1327
+
1328
+
1329
+ <div class="method-description">
1330
+
1331
+
1332
+
1333
+
1334
+
1335
+ <div class="method-source-code" id="register-source">
1336
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 163</span>
1337
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">register</span>(<span class="ruby-identifier">base_path</span>, &amp;<span class="ruby-identifier">code</span>)
1338
+ <span class="ruby-identifier">namespaces</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">namespace</span><span class="ruby-operator">|</span>
1339
+ <span class="ruby-identifier">namespace_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base_path</span>, <span class="ruby-identifier">namespace</span>.<span class="ruby-identifier">to_s</span>)
1340
+ <span class="ruby-identifier">register_namespace</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">namespace_path</span>, &amp;<span class="ruby-identifier">code</span>)
1341
+ <span class="ruby-keyword">end</span>
1342
+ <span class="ruby-keyword">end</span></pre>
1343
+ </div><!-- register-source -->
1344
+
1345
+ </div>
1346
+
1347
+
1348
+
1349
+
1350
+ </div><!-- register-method -->
1351
+
1352
+
1353
+ <div id="method-i-reload" class="method-detail ">
1354
+
1355
+ <div class="method-heading">
1356
+ <span class="method-name">reload</span><span
1357
+ class="method-args">(core = false, &code)</span>
1358
+ <span class="method-click-advice">click to toggle source</span>
1359
+ </div>
1360
+
1361
+
1362
+ <div class="method-description">
1363
+
1364
+
1365
+
1366
+
1367
+
1368
+ <div class="method-source-code" id="reload-source">
1369
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 114</span>
1370
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">reload</span>(<span class="ruby-identifier">core</span> = <span class="ruby-keyword">false</span>, &amp;<span class="ruby-identifier">code</span>)
1371
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Loading Nucleon plugins at #{Time.now}&quot;</span>)
1372
+
1373
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">core</span>
1374
+ <span class="ruby-constant">Celluloid</span>.<span class="ruby-identifier">logger</span> = <span class="ruby-identifier">logger</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">parallel?</span>
1375
+
1376
+ <span class="ruby-identifier">define_types</span> <span class="ruby-value">:nucleon</span>, {
1377
+ <span class="ruby-value">:extension</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">nil</span>, <span class="ruby-comment"># Core</span>
1378
+ <span class="ruby-value">:action</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:update</span>, <span class="ruby-comment"># Core</span>
1379
+ <span class="ruby-value">:project</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:git</span>, <span class="ruby-comment"># Core</span>
1380
+ <span class="ruby-value">:command</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:bash</span>, <span class="ruby-comment"># Core</span>
1381
+ <span class="ruby-value">:event</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:regex</span>, <span class="ruby-comment"># Utility</span>
1382
+ <span class="ruby-value">:template</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:json</span>, <span class="ruby-comment"># Utility</span>
1383
+ <span class="ruby-value">:translator</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:json</span> <span class="ruby-comment"># Utility</span>
1384
+ }
1385
+ <span class="ruby-keyword">end</span>
1386
+
1387
+ <span class="ruby-comment"># Allow block level namespace and type registration</span>
1388
+ <span class="ruby-identifier">code</span>.<span class="ruby-identifier">call</span>(<span class="ruby-value">:define</span>, <span class="ruby-identifier">myself</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">code</span>
1389
+
1390
+ <span class="ruby-identifier">load_plugins</span>(<span class="ruby-identifier">core</span>, &amp;<span class="ruby-identifier">code</span>)
1391
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Finished loading Nucleon plugins at #{Time.now}&quot;</span>)
1392
+ <span class="ruby-keyword">end</span></pre>
1393
+ </div><!-- reload-source -->
1394
+
1395
+ </div>
1396
+
1397
+
1398
+
1399
+
1400
+ </div><!-- reload-method -->
1401
+
1402
+
1403
+ <div id="method-i-remove" class="method-detail ">
1404
+
1405
+ <div class="method-heading">
1406
+ <span class="method-name">remove</span><span
1407
+ class="method-args">(plugin)</span>
1408
+ <span class="method-click-advice">click to toggle source</span>
1409
+ </div>
1410
+
1411
+
1412
+ <div class="method-description">
1413
+
1414
+
1415
+
1416
+
1417
+
1418
+ <div class="method-source-code" id="remove-source">
1419
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 338</span>
1420
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">remove</span>(<span class="ruby-identifier">plugin</span>)
1421
+ <span class="ruby-keyword">begin</span> <span class="ruby-comment"># TODO: Figure out what do do about the plugin proxy being terminated before respond_to? method called.</span>
1422
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">plugin</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:plugin_type</span>)
1423
+ <span class="ruby-identifier">remove_by_name</span>(<span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">plugin_namespace</span>, <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">plugin_instance_name</span>)
1424
+ <span class="ruby-keyword">end</span>
1425
+ <span class="ruby-keyword">rescue</span>
1426
+ <span class="ruby-keyword">end</span>
1427
+ <span class="ruby-keyword">end</span></pre>
1428
+ </div><!-- remove-source -->
1429
+
1430
+ </div>
1431
+
1432
+
1433
+
1434
+
1435
+ </div><!-- remove-method -->
1436
+
1437
+
1438
+ <div id="method-i-remove_by_name" class="method-detail ">
1439
+
1440
+ <div class="method-heading">
1441
+ <span class="method-name">remove_by_name</span><span
1442
+ class="method-args">(namespace, plugin_type, plugin_instance_name)</span>
1443
+ <span class="method-click-advice">click to toggle source</span>
1444
+ </div>
1445
+
1446
+
1447
+ <div class="method-description">
1448
+
1449
+
1450
+
1451
+
1452
+
1453
+ <div class="method-source-code" id="remove_by_name-source">
1454
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 322</span>
1455
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">remove_by_name</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">plugin_instance_name</span>)
1456
+ <span class="ruby-identifier">active_instances</span> = <span class="ruby-identifier">active_plugins</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
1457
+
1458
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">active_instances</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">plugin_instance_name</span>)
1459
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">remove_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">plugin_instance_name</span>) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">plugin</span><span class="ruby-operator">|</span>
1460
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Removing #{plugin_type} #{plugin_instance_name}&quot;</span>)
1461
+
1462
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:terminate</span>) <span class="ruby-comment"># For Celluloid plugins</span>
1463
+ <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">terminate</span>
1464
+ <span class="ruby-keyword">else</span>
1465
+ <span class="ruby-identifier">plugin</span>.<span class="ruby-identifier">remove_plugin</span>
1466
+ <span class="ruby-keyword">end</span>
1467
+ <span class="ruby-keyword">end</span>
1468
+ <span class="ruby-keyword">end</span>
1469
+ <span class="ruby-keyword">end</span></pre>
1470
+ </div><!-- remove_by_name-source -->
1471
+
1472
+ </div>
1473
+
1474
+
1475
+
1476
+
1477
+ </div><!-- remove_by_name-method -->
1478
+
1479
+
1480
+ <div id="method-i-test_connection" class="method-detail ">
1481
+
1482
+ <div class="method-heading">
1483
+ <span class="method-name">test_connection</span><span
1484
+ class="method-args">()</span>
1485
+ <span class="method-click-advice">click to toggle source</span>
1486
+ </div>
1487
+
1488
+
1489
+ <div class="method-description">
1490
+
1491
+
1492
+
1493
+
1494
+
1495
+ <div class="method-source-code" id="test_connection-source">
1496
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 54</span>
1497
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">test_connection</span>
1498
+ <span class="ruby-keyword">true</span>
1499
+ <span class="ruby-keyword">end</span></pre>
1500
+ </div><!-- test_connection-source -->
1501
+
1502
+ </div>
1503
+
1504
+
1505
+
1506
+
1507
+ </div><!-- test_connection-method -->
1508
+
1509
+
1510
+ <div id="method-i-translate" class="method-detail ">
1511
+
1512
+ <div class="method-heading">
1513
+ <span class="method-name">translate</span><span
1514
+ class="method-args">(type_info, options)</span>
1515
+ <span class="method-click-advice">click to toggle source</span>
1516
+ </div>
1517
+
1518
+
1519
+ <div class="method-description">
1520
+
1521
+
1522
+
1523
+
1524
+
1525
+ <div class="method-source-code" id="translate-source">
1526
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 483</span>
1527
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">translate</span>(<span class="ruby-identifier">type_info</span>, <span class="ruby-identifier">options</span>)
1528
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type_info</span>
1529
+ <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">type_info</span>[<span class="ruby-value">:class</span>]
1530
+
1531
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Executing option translation for: #{klass.inspect}&quot;</span>)
1532
+
1533
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:translate</span>, <span class="ruby-identifier">options</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:translate</span>)
1534
+ <span class="ruby-keyword">end</span>
1535
+ <span class="ruby-identifier">options</span>
1536
+ <span class="ruby-keyword">end</span></pre>
1537
+ </div><!-- translate-source -->
1538
+
1539
+ </div>
1540
+
1541
+
1542
+
1543
+
1544
+ </div><!-- translate-method -->
1545
+
1546
+
1547
+ <div id="method-i-translate_type" class="method-detail ">
1548
+
1549
+ <div class="method-heading">
1550
+ <span class="method-name">translate_type</span><span
1551
+ class="method-args">(type_info, options)</span>
1552
+ <span class="method-click-advice">click to toggle source</span>
1553
+ </div>
1554
+
1555
+
1556
+ <div class="method-description">
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+ <div class="method-source-code" id="translate_type-source">
1563
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 471</span>
1564
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">translate_type</span>(<span class="ruby-identifier">type_info</span>, <span class="ruby-identifier">options</span>)
1565
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">type_info</span>
1566
+ <span class="ruby-identifier">klass</span> = <span class="ruby-identifier">plugin_class</span>(<span class="ruby-identifier">type_info</span>[<span class="ruby-value">:namespace</span>], <span class="ruby-identifier">type_info</span>[<span class="ruby-value">:type</span>])
1567
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Executing option translation for: #{klass.inspect}&quot;</span>)
1568
+
1569
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:translate</span>, <span class="ruby-identifier">options</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:translate</span>)
1570
+ <span class="ruby-keyword">end</span>
1571
+ <span class="ruby-identifier">options</span>
1572
+ <span class="ruby-keyword">end</span></pre>
1573
+ </div><!-- translate_type-source -->
1574
+
1575
+ </div>
1576
+
1577
+
1578
+
1579
+
1580
+ </div><!-- translate_type-method -->
1581
+
1582
+
1583
+ <div id="method-i-type_default" class="method-detail ">
1584
+
1585
+ <div class="method-heading">
1586
+ <span class="method-name">type_default</span><span
1587
+ class="method-args">(namespace, plugin_type)</span>
1588
+ <span class="method-click-advice">click to toggle source</span>
1589
+ </div>
1590
+
1591
+
1592
+ <div class="method-description">
1593
+
1594
+
1595
+
1596
+
1597
+
1598
+ <div class="method-source-code" id="type_default-source">
1599
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 83</span>
1600
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">type_default</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
1601
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">plugin_type_default</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
1602
+ <span class="ruby-keyword">end</span></pre>
1603
+ </div><!-- type_default-source -->
1604
+
1605
+ </div>
1606
+
1607
+
1608
+
1609
+
1610
+ </div><!-- type_default-method -->
1611
+
1612
+
1613
+ <div id="method-i-type_defined-3F" class="method-detail ">
1614
+
1615
+ <div class="method-heading">
1616
+ <span class="method-name">type_defined?</span><span
1617
+ class="method-args">(namespace, plugin_type)</span>
1618
+ <span class="method-click-advice">click to toggle source</span>
1619
+ </div>
1620
+
1621
+
1622
+ <div class="method-description">
1623
+
1624
+
1625
+
1626
+
1627
+
1628
+ <div class="method-source-code" id="type_defined-3F-source">
1629
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 79</span>
1630
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">type_defined?</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
1631
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">plugin_type_defined?</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>)
1632
+ <span class="ruby-keyword">end</span></pre>
1633
+ </div><!-- type_defined-3F-source -->
1634
+
1635
+ </div>
1636
+
1637
+
1638
+
1639
+
1640
+ </div><!-- type_defined-3F-method -->
1641
+
1642
+
1643
+ <div id="method-i-types" class="method-detail ">
1644
+
1645
+ <div class="method-heading">
1646
+ <span class="method-name">types</span><span
1647
+ class="method-args">(namespace)</span>
1648
+ <span class="method-click-advice">click to toggle source</span>
1649
+ </div>
1650
+
1651
+
1652
+ <div class="method-description">
1653
+
1654
+
1655
+
1656
+
1657
+
1658
+ <div class="method-source-code" id="types-source">
1659
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 67</span>
1660
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">types</span>(<span class="ruby-identifier">namespace</span>)
1661
+ <span class="ruby-identifier">@@environments</span>[<span class="ruby-ivar">@actor_id</span>].<span class="ruby-identifier">plugin_types</span>(<span class="ruby-identifier">namespace</span>)
1662
+ <span class="ruby-keyword">end</span></pre>
1663
+ </div><!-- types-source -->
1664
+
1665
+ </div>
1666
+
1667
+
1668
+
1669
+
1670
+ </div><!-- types-method -->
1671
+
1672
+
1673
+ <div id="method-i-value" class="method-detail ">
1674
+
1675
+ <div class="method-heading">
1676
+ <span class="method-name">value</span><span
1677
+ class="method-args">(method, value, options = {})</span>
1678
+ <span class="method-click-advice">click to toggle source</span>
1679
+ </div>
1680
+
1681
+
1682
+ <div class="method-description">
1683
+
1684
+
1685
+
1686
+
1687
+
1688
+ <div class="method-source-code" id="value-source">
1689
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 434</span>
1690
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">value</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">options</span> = {})
1691
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1692
+
1693
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Setting extension #{method} value&quot;</span>)
1694
+
1695
+ <span class="ruby-identifier">exec</span>(<span class="ruby-identifier">method</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">import</span>({ <span class="ruby-value">:value</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">value</span>, <span class="ruby-value">:extension_type</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-value">:value</span> })) <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">op</span>, <span class="ruby-identifier">data</span><span class="ruby-operator">|</span>
1696
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">op</span> <span class="ruby-operator">==</span> <span class="ruby-value">:process</span>
1697
+ <span class="ruby-identifier">value</span> = <span class="ruby-identifier">data</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">nil?</span>
1698
+ <span class="ruby-keyword">end</span>
1699
+ <span class="ruby-keyword">end</span>
1700
+
1701
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Extension #{method} retrieved value: #{value.inspect}&quot;</span>)
1702
+ <span class="ruby-identifier">value</span>
1703
+ <span class="ruby-keyword">end</span></pre>
1704
+ </div><!-- value-source -->
1705
+
1706
+ </div>
1707
+
1708
+
1709
+
1710
+
1711
+ </div><!-- value-method -->
1712
+
1713
+
1714
+ </section><!-- public-instance-method-details -->
1715
+
1716
+ <section id="protected-instance-5Buntitled-5D-method-details" class="method-section section">
1717
+ <h3 class="section-header">Protected Instance Methods</h3>
1718
+
1719
+
1720
+ <div id="method-i-load_plugins" class="method-detail ">
1721
+
1722
+ <div class="method-heading">
1723
+ <span class="method-name">load_plugins</span><span
1724
+ class="method-args">(core = false, &code)</span>
1725
+ <span class="method-click-advice">click to toggle source</span>
1726
+ </div>
1727
+
1728
+
1729
+ <div class="method-description">
1730
+
1731
+
1732
+
1733
+
1734
+
1735
+ <div class="method-source-code" id="load_plugins-source">
1736
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 140</span>
1737
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">load_plugins</span>(<span class="ruby-identifier">core</span> = <span class="ruby-keyword">false</span>, &amp;<span class="ruby-identifier">code</span>)
1738
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">core</span>
1739
+ <span class="ruby-comment"># Register core plugins</span>
1740
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Initializing core plugins at #{Time.now}&quot;</span>)
1741
+ <span class="ruby-identifier">register</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-keyword">__FILE__</span>), <span class="ruby-string">&#39;..&#39;</span>))
1742
+ <span class="ruby-keyword">end</span>
1743
+
1744
+ <span class="ruby-comment"># Register external Gem defined plugins</span>
1745
+ <span class="ruby-constant">Gems</span>.<span class="ruby-identifier">register</span>(<span class="ruby-keyword">true</span>)
1746
+
1747
+ <span class="ruby-comment"># Register any other extension plugins</span>
1748
+ <span class="ruby-identifier">exec</span>(<span class="ruby-value">:register_plugins</span>)
1749
+
1750
+ <span class="ruby-comment"># Catch any block level requests before autoloading</span>
1751
+ <span class="ruby-identifier">code</span>.<span class="ruby-identifier">call</span>(<span class="ruby-value">:load</span>, <span class="ruby-identifier">myself</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">code</span>
1752
+
1753
+ <span class="ruby-comment"># Autoload all registered plugins</span>
1754
+ <span class="ruby-identifier">autoload</span>
1755
+ <span class="ruby-keyword">end</span></pre>
1756
+ </div><!-- load_plugins-source -->
1757
+
1758
+ </div>
1759
+
1760
+
1761
+
1762
+
1763
+ </div><!-- load_plugins-method -->
1764
+
1765
+
1766
+ <div id="method-i-register_namespace" class="method-detail ">
1767
+
1768
+ <div class="method-heading">
1769
+ <span class="method-name">register_namespace</span><span
1770
+ class="method-args">(namespace, base_path, &code)</span>
1771
+ <span class="method-click-advice">click to toggle source</span>
1772
+ </div>
1773
+
1774
+
1775
+ <div class="method-description">
1776
+
1777
+
1778
+
1779
+
1780
+
1781
+ <div class="method-source-code" id="register_namespace-source">
1782
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 172</span>
1783
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">register_namespace</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">base_path</span>, &amp;<span class="ruby-identifier">code</span>)
1784
+ <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">base_path</span>)
1785
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Loading files from #{base_path} at #{Time.now}&quot;</span>)
1786
+
1787
+ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base_path</span>, <span class="ruby-string">&#39;*.rb&#39;</span>)).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
1788
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Loading file: #{file}&quot;</span>)
1789
+ <span class="ruby-identifier">require</span> <span class="ruby-identifier">file</span>
1790
+ <span class="ruby-keyword">end</span>
1791
+
1792
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Loading directories from #{base_path} at #{Time.now}&quot;</span>)
1793
+ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">base_path</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">path</span><span class="ruby-operator">|</span>
1794
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^\.\.?$/</span>)
1795
+ <span class="ruby-identifier">register_type</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">base_path</span>, <span class="ruby-identifier">path</span>, &amp;<span class="ruby-identifier">code</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">type_defined?</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">path</span>)
1796
+ <span class="ruby-keyword">end</span>
1797
+ <span class="ruby-keyword">end</span>
1798
+ <span class="ruby-keyword">end</span>
1799
+ <span class="ruby-keyword">end</span></pre>
1800
+ </div><!-- register_namespace-source -->
1801
+
1802
+ </div>
1803
+
1804
+
1805
+
1806
+
1807
+ </div><!-- register_namespace-method -->
1808
+
1809
+
1810
+ <div id="method-i-register_type" class="method-detail ">
1811
+
1812
+ <div class="method-heading">
1813
+ <span class="method-name">register_type</span><span
1814
+ class="method-args">(namespace, base_path, plugin_type, &code)</span>
1815
+ <span class="method-click-advice">click to toggle source</span>
1816
+ </div>
1817
+
1818
+
1819
+ <div class="method-description">
1820
+
1821
+
1822
+
1823
+
1824
+
1825
+ <div class="method-source-code" id="register_type-source">
1826
+ <pre><span class="ruby-comment"># File lib/core/manager.rb, line 193</span>
1827
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">register_type</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">base_path</span>, <span class="ruby-identifier">plugin_type</span>, &amp;<span class="ruby-identifier">code</span>)
1828
+ <span class="ruby-identifier">base_directory</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base_path</span>, <span class="ruby-identifier">plugin_type</span>.<span class="ruby-identifier">to_s</span>)
1829
+
1830
+ <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">base_directory</span>)
1831
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Registering #{base_directory} at #{Time.now}&quot;</span>)
1832
+
1833
+ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">base_directory</span>, <span class="ruby-string">&#39;**&#39;</span>, <span class="ruby-string">&#39;*.rb&#39;</span>)).<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">file</span><span class="ruby-operator">|</span>
1834
+ <span class="ruby-identifier">define_plugin</span>(<span class="ruby-identifier">namespace</span>, <span class="ruby-identifier">plugin_type</span>, <span class="ruby-identifier">base_directory</span>, <span class="ruby-identifier">file</span>, &amp;<span class="ruby-identifier">code</span>)
1835
+ <span class="ruby-keyword">end</span>
1836
+ <span class="ruby-keyword">end</span>
1837
+ <span class="ruby-keyword">end</span></pre>
1838
+ </div><!-- register_type-source -->
1839
+
1840
+ </div>
1841
+
1842
+
1843
+
1844
+
1845
+ </div><!-- register_type-method -->
1846
+
1847
+
1848
+ </section><!-- protected-instance-method-details -->
1849
+
1850
+ </section><!-- 5Buntitled-5D -->
1851
+
1852
+ </div><!-- documentation -->
1853
+
1854
+
1855
+ <footer id="validator-badges">
1856
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
1857
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
1858
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
1859
+ </footer>
1860
+