nucleon 0.2.1 → 0.2.2

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