nucleon 0.2.0 → 0.2.1

Sign up to get free protection for your applications and to get access to all the features.
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
+