nucleon 0.1.19 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (159) hide show
  1. checksums.yaml +4 -4
  2. data/Gemfile +1 -0
  3. data/Gemfile.lock +1 -0
  4. data/TODO.rdoc +0 -3
  5. data/VERSION +1 -1
  6. data/bin/nucleon +19 -0
  7. data/lib/core/config.rb +11 -7
  8. data/lib/core/environment.rb +338 -0
  9. data/lib/core/facade.rb +150 -98
  10. data/lib/core/manager.rb +160 -249
  11. data/lib/core/mixin/action/project.rb +2 -2
  12. data/lib/core/mixin/macro/plugin_interface.rb +11 -11
  13. data/lib/core/plugin/action.rb +277 -24
  14. data/lib/core/plugin/base.rb +22 -14
  15. data/lib/core/plugin/command.rb +1 -1
  16. data/lib/core/plugin/event.rb +3 -3
  17. data/lib/core/plugin/extension.rb +1 -1
  18. data/lib/core/plugin/project.rb +15 -15
  19. data/lib/core/plugin/template.rb +1 -1
  20. data/lib/core/plugin/translator.rb +1 -1
  21. data/lib/core/util/cache.rb +1 -1
  22. data/lib/core/util/cli.rb +32 -3
  23. data/lib/core/util/console.rb +30 -10
  24. data/lib/core/util/data.rb +11 -3
  25. data/lib/core/util/logger.rb +1 -1
  26. data/lib/core/util/shell.rb +6 -3
  27. data/lib/core/util/ssh.rb +148 -24
  28. data/lib/nucleon/action/extract.rb +11 -4
  29. data/lib/nucleon/action/{add.rb → project/add.rb} +13 -4
  30. data/lib/nucleon/action/{create.rb → project/create.rb} +12 -3
  31. data/lib/nucleon/action/{remove.rb → project/remove.rb} +11 -2
  32. data/lib/nucleon/action/{save.rb → project/save.rb} +11 -2
  33. data/lib/nucleon/action/{update.rb → project/update.rb} +11 -2
  34. data/lib/nucleon/command/bash.rb +1 -1
  35. data/lib/nucleon/event/regex.rb +1 -1
  36. data/lib/nucleon/project/git.rb +3 -3
  37. data/lib/nucleon/template/{json.rb → JSON.rb} +1 -1
  38. data/lib/nucleon/template/{yaml.rb → YAML.rb} +1 -1
  39. data/lib/nucleon/template/wrapper.rb +1 -1
  40. data/lib/nucleon/translator/{json.rb → JSON.rb} +1 -1
  41. data/lib/nucleon/translator/{yaml.rb → YAML.rb} +1 -1
  42. data/lib/nucleon_base.rb +26 -15
  43. data/locales/en.yml +69 -44
  44. data/nucleon.gemspec +129 -11
  45. data/rdoc/site/0.1.19/ARCHITECTURE_rdoc.html +634 -0
  46. data/rdoc/site/0.1.19/Hash.html +347 -0
  47. data/rdoc/site/0.1.19/Kernel.html +413 -0
  48. data/rdoc/site/0.1.19/Nucleon.html +570 -0
  49. data/rdoc/site/0.1.19/Nucleon/Action.html +280 -0
  50. data/rdoc/site/0.1.19/Nucleon/Action/Add.html +458 -0
  51. data/rdoc/site/0.1.19/Nucleon/Action/Create.html +415 -0
  52. data/rdoc/site/0.1.19/Nucleon/Action/Extract.html +413 -0
  53. data/rdoc/site/0.1.19/Nucleon/Action/Remove.html +461 -0
  54. data/rdoc/site/0.1.19/Nucleon/Action/Save.html +434 -0
  55. data/rdoc/site/0.1.19/Nucleon/Action/Update.html +381 -0
  56. data/rdoc/site/0.1.19/Nucleon/Codes.html +563 -0
  57. data/rdoc/site/0.1.19/Nucleon/Command.html +275 -0
  58. data/rdoc/site/0.1.19/Nucleon/Command/Bash.html +544 -0
  59. data/rdoc/site/0.1.19/Nucleon/Config.html +1623 -0
  60. data/rdoc/site/0.1.19/Nucleon/Config/Collection.html +509 -0
  61. data/rdoc/site/0.1.19/Nucleon/Config/Options.html +489 -0
  62. data/rdoc/site/0.1.19/Nucleon/Core.html +635 -0
  63. data/rdoc/site/0.1.19/Nucleon/Errors.html +275 -0
  64. data/rdoc/site/0.1.19/Nucleon/Errors/BatchError.html +281 -0
  65. data/rdoc/site/0.1.19/Nucleon/Errors/NucleonError.html +657 -0
  66. data/rdoc/site/0.1.19/Nucleon/Errors/SSHUnavailable.html +281 -0
  67. data/rdoc/site/0.1.19/Nucleon/Event.html +275 -0
  68. data/rdoc/site/0.1.19/Nucleon/Event/Regex.html +467 -0
  69. data/rdoc/site/0.1.19/Nucleon/Facade.html +2336 -0
  70. data/rdoc/site/0.1.19/Nucleon/Gems.html +635 -0
  71. data/rdoc/site/0.1.19/Nucleon/Manager.html +1828 -0
  72. data/rdoc/site/0.1.19/Nucleon/Mixin.html +284 -0
  73. data/rdoc/site/0.1.19/Nucleon/Mixin/Action.html +277 -0
  74. data/rdoc/site/0.1.19/Nucleon/Mixin/Action/Commit.html +381 -0
  75. data/rdoc/site/0.1.19/Nucleon/Mixin/Action/Project.html +395 -0
  76. data/rdoc/site/0.1.19/Nucleon/Mixin/Action/Push.html +371 -0
  77. data/rdoc/site/0.1.19/Nucleon/Mixin/Colors.html +545 -0
  78. data/rdoc/site/0.1.19/Nucleon/Mixin/ConfigCollection.html +481 -0
  79. data/rdoc/site/0.1.19/Nucleon/Mixin/ConfigOptions.html +449 -0
  80. data/rdoc/site/0.1.19/Nucleon/Mixin/Macro.html +276 -0
  81. data/rdoc/site/0.1.19/Nucleon/Mixin/Macro/ObjectInterface.html +695 -0
  82. data/rdoc/site/0.1.19/Nucleon/Mixin/Macro/PluginInterface.html +682 -0
  83. data/rdoc/site/0.1.19/Nucleon/Mixin/Settings.html +481 -0
  84. data/rdoc/site/0.1.19/Nucleon/Mixin/SubConfig.html +887 -0
  85. data/rdoc/site/0.1.19/Nucleon/Parallel.html +325 -0
  86. data/rdoc/site/0.1.19/Nucleon/Parallel/ClassMethods.html +325 -0
  87. data/rdoc/site/0.1.19/Nucleon/Parallel/InstanceMethods.html +334 -0
  88. data/rdoc/site/0.1.19/Nucleon/Plugin.html +282 -0
  89. data/rdoc/site/0.1.19/Nucleon/Plugin/Action.html +1368 -0
  90. data/rdoc/site/0.1.19/Nucleon/Plugin/Action/Option.html +459 -0
  91. data/rdoc/site/0.1.19/Nucleon/Plugin/Base.html +1737 -0
  92. data/rdoc/site/0.1.19/Nucleon/Plugin/Command.html +721 -0
  93. data/rdoc/site/0.1.19/Nucleon/Plugin/Event.html +442 -0
  94. data/rdoc/site/0.1.19/Nucleon/Plugin/Extension.html +281 -0
  95. data/rdoc/site/0.1.19/Nucleon/Plugin/Project.html +2864 -0
  96. data/rdoc/site/0.1.19/Nucleon/Plugin/Template.html +476 -0
  97. data/rdoc/site/0.1.19/Nucleon/Plugin/Translator.html +371 -0
  98. data/rdoc/site/0.1.19/Nucleon/Project.html +276 -0
  99. data/rdoc/site/0.1.19/Nucleon/Project/Git.html +1801 -0
  100. data/rdoc/site/0.1.19/Nucleon/Project/Github.html +549 -0
  101. data/rdoc/site/0.1.19/Nucleon/Template.html +277 -0
  102. data/rdoc/site/0.1.19/Nucleon/Template/Json.html +329 -0
  103. data/rdoc/site/0.1.19/Nucleon/Template/Wrapper.html +329 -0
  104. data/rdoc/site/0.1.19/Nucleon/Template/Yaml.html +329 -0
  105. data/rdoc/site/0.1.19/Nucleon/Translator.html +276 -0
  106. data/rdoc/site/0.1.19/Nucleon/Translator/Json.html +366 -0
  107. data/rdoc/site/0.1.19/Nucleon/Translator/Yaml.html +366 -0
  108. data/rdoc/site/0.1.19/Nucleon/Util.html +285 -0
  109. data/rdoc/site/0.1.19/Nucleon/Util/CLI.html +388 -0
  110. data/rdoc/site/0.1.19/Nucleon/Util/CLI/Parser.html +1183 -0
  111. data/rdoc/site/0.1.19/Nucleon/Util/Cache.html +780 -0
  112. data/rdoc/site/0.1.19/Nucleon/Util/Console.html +1294 -0
  113. data/rdoc/site/0.1.19/Nucleon/Util/Data.html +1399 -0
  114. data/rdoc/site/0.1.19/Nucleon/Util/Disk.html +522 -0
  115. data/rdoc/site/0.1.19/Nucleon/Util/Git.html +361 -0
  116. data/rdoc/site/0.1.19/Nucleon/Util/Liquid.html +365 -0
  117. data/rdoc/site/0.1.19/Nucleon/Util/Logger.html +806 -0
  118. data/rdoc/site/0.1.19/Nucleon/Util/Package.html +558 -0
  119. data/rdoc/site/0.1.19/Nucleon/Util/SSH.html +910 -0
  120. data/rdoc/site/0.1.19/Nucleon/Util/SSH/Keypair.html +453 -0
  121. data/rdoc/site/0.1.19/Nucleon/Util/Shell.html +686 -0
  122. data/rdoc/site/0.1.19/Nucleon/Util/Shell/Result.html +497 -0
  123. data/rdoc/site/0.1.19/README_rdoc.html +312 -0
  124. data/rdoc/site/0.1.19/TODO_rdoc.html +267 -0
  125. data/rdoc/site/0.1.19/created.rid +60 -0
  126. data/rdoc/site/0.1.19/images/add.png +0 -0
  127. data/rdoc/site/0.1.19/images/brick.png +0 -0
  128. data/rdoc/site/0.1.19/images/brick_link.png +0 -0
  129. data/rdoc/site/0.1.19/images/bug.png +0 -0
  130. data/rdoc/site/0.1.19/images/bullet_black.png +0 -0
  131. data/rdoc/site/0.1.19/images/bullet_toggle_minus.png +0 -0
  132. data/rdoc/site/0.1.19/images/bullet_toggle_plus.png +0 -0
  133. data/rdoc/site/0.1.19/images/date.png +0 -0
  134. data/rdoc/site/0.1.19/images/delete.png +0 -0
  135. data/rdoc/site/0.1.19/images/find.png +0 -0
  136. data/rdoc/site/0.1.19/images/loadingAnimation.gif +0 -0
  137. data/rdoc/site/0.1.19/images/macFFBgHack.png +0 -0
  138. data/rdoc/site/0.1.19/images/package.png +0 -0
  139. data/rdoc/site/0.1.19/images/page_green.png +0 -0
  140. data/rdoc/site/0.1.19/images/page_white_text.png +0 -0
  141. data/rdoc/site/0.1.19/images/page_white_width.png +0 -0
  142. data/rdoc/site/0.1.19/images/plugin.png +0 -0
  143. data/rdoc/site/0.1.19/images/ruby.png +0 -0
  144. data/rdoc/site/0.1.19/images/tag_blue.png +0 -0
  145. data/rdoc/site/0.1.19/images/tag_green.png +0 -0
  146. data/rdoc/site/0.1.19/images/transparent.png +0 -0
  147. data/rdoc/site/0.1.19/images/wrench.png +0 -0
  148. data/rdoc/site/0.1.19/images/wrench_orange.png +0 -0
  149. data/rdoc/site/0.1.19/images/zoom.png +0 -0
  150. data/rdoc/site/0.1.19/index.html +311 -0
  151. data/rdoc/site/0.1.19/js/darkfish.js +155 -0
  152. data/rdoc/site/0.1.19/js/jquery.js +18 -0
  153. data/rdoc/site/0.1.19/js/navigation.js +142 -0
  154. data/rdoc/site/0.1.19/js/search.js +94 -0
  155. data/rdoc/site/0.1.19/js/search_index.js +1 -0
  156. data/rdoc/site/0.1.19/js/searcher.js +228 -0
  157. data/rdoc/site/0.1.19/rdoc.css +543 -0
  158. data/rdoc/site/0.1.19/table_of_contents.html +1541 -0
  159. metadata +140 -11
@@ -0,0 +1,2864 @@
1
+ <!DOCTYPE html>
2
+
3
+ <html>
4
+ <head>
5
+ <meta content="text/html; charset=UTF-8" http-equiv="Content-Type">
6
+
7
+ <title>class Nucleon::Plugin::Project - nucleon 0.1.19</title>
8
+
9
+ <link type="text/css" media="screen" href="../../rdoc.css" rel="stylesheet">
10
+
11
+ <script type="text/javascript">
12
+ var rdoc_rel_prefix = "../../";
13
+ </script>
14
+
15
+ <script type="text/javascript" charset="utf-8" src="../../js/jquery.js"></script>
16
+ <script type="text/javascript" charset="utf-8" src="../../js/navigation.js"></script>
17
+ <script type="text/javascript" charset="utf-8" src="../../js/search_index.js"></script>
18
+ <script type="text/javascript" charset="utf-8" src="../../js/search.js"></script>
19
+ <script type="text/javascript" charset="utf-8" src="../../js/searcher.js"></script>
20
+ <script type="text/javascript" charset="utf-8" src="../../js/darkfish.js"></script>
21
+
22
+
23
+ <body id="top" class="class">
24
+ <nav id="metadata">
25
+ <nav id="home-section" class="section">
26
+ <h3 class="section-header">
27
+ <a href="../../index.html">Home</a>
28
+ <a href="../../table_of_contents.html#classes">Classes</a>
29
+ <a href="../../table_of_contents.html#methods">Methods</a>
30
+ </h3>
31
+ </nav>
32
+
33
+
34
+ <nav id="search-section" class="section project-section" class="initially-hidden">
35
+ <form action="#" method="get" accept-charset="utf-8">
36
+ <h3 class="section-header">
37
+ <input type="text" name="search" placeholder="Search" id="search-field"
38
+ title="Type to search, Up and Down to navigate, Enter to load">
39
+ </h3>
40
+ </form>
41
+
42
+ <ul id="search-results" class="initially-hidden"></ul>
43
+ </nav>
44
+
45
+
46
+ <div id="file-metadata">
47
+ <nav id="file-list-section" class="section">
48
+ <h3 class="section-header">Defined In</h3>
49
+ <ul>
50
+ <li>lib/core/plugin/project.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"><a href="Base.html">Nucleon::Plugin::Base</a>
63
+
64
+ </nav>
65
+
66
+
67
+ <!-- Method Quickref -->
68
+ <nav id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+
71
+ <ul class="link-list">
72
+
73
+ <li><a href="#method-c-build_info">::build_info</a>
74
+
75
+ <li><a href="#method-c-collection">::collection</a>
76
+
77
+ <li><a href="#method-c-open">::open</a>
78
+
79
+ <li><a href="#method-c-translate">::translate</a>
80
+
81
+ <li><a href="#method-c-translate_reference">::translate_reference</a>
82
+
83
+ <li><a href="#method-i-add_remote_url">#add_remote_url</a>
84
+
85
+ <li><a href="#method-i-add_subproject">#add_subproject</a>
86
+
87
+ <li><a href="#method-i-cache">#cache</a>
88
+
89
+ <li><a href="#method-i-can_persist-3F">#can_persist?</a>
90
+
91
+ <li><a href="#method-i-checkout">#checkout</a>
92
+
93
+ <li><a href="#method-i-commit">#commit</a>
94
+
95
+ <li><a href="#method-i-config">#config</a>
96
+
97
+ <li><a href="#method-i-delete_config">#delete_config</a>
98
+
99
+ <li><a href="#method-i-delete_remote">#delete_remote</a>
100
+
101
+ <li><a href="#method-i-delete_subproject">#delete_subproject</a>
102
+
103
+ <li><a href="#method-i-directory">#directory</a>
104
+
105
+ <li><a href="#method-i-each">#each</a>
106
+
107
+ <li><a href="#method-i-edit_url">#edit_url</a>
108
+
109
+ <li><a href="#method-i-full_path">#full_path</a>
110
+
111
+ <li><a href="#method-i-ignore">#ignore</a>
112
+
113
+ <li><a href="#method-i-init_auth">#init_auth</a>
114
+
115
+ <li><a href="#method-i-init_cache">#init_cache</a>
116
+
117
+ <li><a href="#method-i-init_parent">#init_parent</a>
118
+
119
+ <li><a href="#method-i-init_project">#init_project</a>
120
+
121
+ <li><a href="#method-i-init_remotes">#init_remotes</a>
122
+
123
+ <li><a href="#method-i-load_revision">#load_revision</a>
124
+
125
+ <li><a href="#method-i-load_subprojects">#load_subprojects</a>
126
+
127
+ <li><a href="#method-i-local_path">#local_path</a>
128
+
129
+ <li><a href="#method-i-localize">#localize</a>
130
+
131
+ <li><a href="#method-i-manage_ignore-3D">#manage_ignore=</a>
132
+
133
+ <li><a href="#method-i-manage_ignore-3F">#manage_ignore?</a>
134
+
135
+ <li><a href="#method-i-normalize">#normalize</a>
136
+
137
+ <li><a href="#method-i-parent">#parent</a>
138
+
139
+ <li><a href="#method-i-path">#path</a>
140
+
141
+ <li><a href="#method-i-private_key">#private_key</a>
142
+
143
+ <li><a href="#method-i-private_key_str">#private_key_str</a>
144
+
145
+ <li><a href="#method-i-project_directory-3F">#project_directory?</a>
146
+
147
+ <li><a href="#method-i-public_key">#public_key</a>
148
+
149
+ <li><a href="#method-i-public_key_str">#public_key_str</a>
150
+
151
+ <li><a href="#method-i-pull">#pull</a>
152
+
153
+ <li><a href="#method-i-push">#push</a>
154
+
155
+ <li><a href="#method-i-reference">#reference</a>
156
+
157
+ <li><a href="#method-i-register">#register</a>
158
+
159
+ <li><a href="#method-i-remote">#remote</a>
160
+
161
+ <li><a href="#method-i-revision">#revision</a>
162
+
163
+ <li><a href="#method-i-set_config">#set_config</a>
164
+
165
+ <li><a href="#method-i-set_directory">#set_directory</a>
166
+
167
+ <li><a href="#method-i-set_edit_url">#set_edit_url</a>
168
+
169
+ <li><a href="#method-i-set_host_remote">#set_host_remote</a>
170
+
171
+ <li><a href="#method-i-set_location">#set_location</a>
172
+
173
+ <li><a href="#method-i-set_remote">#set_remote</a>
174
+
175
+ <li><a href="#method-i-set_url">#set_url</a>
176
+
177
+ <li><a href="#method-i-subproject-3F">#subproject?</a>
178
+
179
+ <li><a href="#method-i-subproject_config">#subproject_config</a>
180
+
181
+ <li><a href="#method-i-subprojects">#subprojects</a>
182
+
183
+ <li><a href="#method-i-top-3F">#top?</a>
184
+
185
+ <li><a href="#method-i-translate_edit_url">#translate_edit_url</a>
186
+
187
+ <li><a href="#method-i-translate_reference">#translate_reference</a>
188
+
189
+ <li><a href="#method-i-translate_url">#translate_url</a>
190
+
191
+ <li><a href="#method-i-update_subprojects">#update_subprojects</a>
192
+
193
+ <li><a href="#method-i-url">#url</a>
194
+
195
+ </ul>
196
+ </nav>
197
+
198
+ </div>
199
+
200
+ <div id="project-metadata">
201
+ <nav id="fileindex-section" class="section project-section">
202
+ <h3 class="section-header">Pages</h3>
203
+
204
+ <ul>
205
+
206
+ <li class="file"><a href="../../ARCHITECTURE_rdoc.html">ARCHITECTURE</a>
207
+
208
+ <li class="file"><a href="../../README_rdoc.html">README</a>
209
+
210
+ <li class="file"><a href="../../TODO_rdoc.html">TODO</a>
211
+
212
+ </ul>
213
+ </nav>
214
+
215
+ <nav id="classindex-section" class="section project-section">
216
+ <h3 class="section-header">Class and Module Index</h3>
217
+
218
+ <ul class="link-list">
219
+
220
+ <li><a href="../../Nucleon.html">Nucleon</a>
221
+
222
+ <li><a href="../../Nucleon/Action.html">Nucleon::Action</a>
223
+
224
+ <li><a href="../../Nucleon/Action/Add.html">Nucleon::Action::Add</a>
225
+
226
+ <li><a href="../../Nucleon/Action/Create.html">Nucleon::Action::Create</a>
227
+
228
+ <li><a href="../../Nucleon/Action/Extract.html">Nucleon::Action::Extract</a>
229
+
230
+ <li><a href="../../Nucleon/Action/Remove.html">Nucleon::Action::Remove</a>
231
+
232
+ <li><a href="../../Nucleon/Action/Save.html">Nucleon::Action::Save</a>
233
+
234
+ <li><a href="../../Nucleon/Action/Update.html">Nucleon::Action::Update</a>
235
+
236
+ <li><a href="../../Nucleon/Codes.html">Nucleon::Codes</a>
237
+
238
+ <li><a href="../../Nucleon/Command.html">Nucleon::Command</a>
239
+
240
+ <li><a href="../../Nucleon/Command/Bash.html">Nucleon::Command::Bash</a>
241
+
242
+ <li><a href="../../Nucleon/Config.html">Nucleon::Config</a>
243
+
244
+ <li><a href="../../Nucleon/Config/Collection.html">Nucleon::Config::Collection</a>
245
+
246
+ <li><a href="../../Nucleon/Config/Options.html">Nucleon::Config::Options</a>
247
+
248
+ <li><a href="../../Nucleon/Core.html">Nucleon::Core</a>
249
+
250
+ <li><a href="../../Nucleon/Errors.html">Nucleon::Errors</a>
251
+
252
+ <li><a href="../../Nucleon/Errors/BatchError.html">Nucleon::Errors::BatchError</a>
253
+
254
+ <li><a href="../../Nucleon/Errors/NucleonError.html">Nucleon::Errors::NucleonError</a>
255
+
256
+ <li><a href="../../Nucleon/Errors/SSHUnavailable.html">Nucleon::Errors::SSHUnavailable</a>
257
+
258
+ <li><a href="../../Nucleon/Event.html">Nucleon::Event</a>
259
+
260
+ <li><a href="../../Nucleon/Event/Regex.html">Nucleon::Event::Regex</a>
261
+
262
+ <li><a href="../../Nucleon/Facade.html">Nucleon::Facade</a>
263
+
264
+ <li><a href="../../Nucleon/Gems.html">Nucleon::Gems</a>
265
+
266
+ <li><a href="../../Nucleon/Manager.html">Nucleon::Manager</a>
267
+
268
+ <li><a href="../../Nucleon/Mixin.html">Nucleon::Mixin</a>
269
+
270
+ <li><a href="../../Nucleon/Mixin/Action.html">Nucleon::Mixin::Action</a>
271
+
272
+ <li><a href="../../Nucleon/Mixin/Action/Commit.html">Nucleon::Mixin::Action::Commit</a>
273
+
274
+ <li><a href="../../Nucleon/Mixin/Action/Project.html">Nucleon::Mixin::Action::Project</a>
275
+
276
+ <li><a href="../../Nucleon/Mixin/Action/Push.html">Nucleon::Mixin::Action::Push</a>
277
+
278
+ <li><a href="../../Nucleon/Mixin/Colors.html">Nucleon::Mixin::Colors</a>
279
+
280
+ <li><a href="../../Nucleon/Mixin/ConfigCollection.html">Nucleon::Mixin::ConfigCollection</a>
281
+
282
+ <li><a href="../../Nucleon/Mixin/ConfigOptions.html">Nucleon::Mixin::ConfigOptions</a>
283
+
284
+ <li><a href="../../Nucleon/Mixin/Macro.html">Nucleon::Mixin::Macro</a>
285
+
286
+ <li><a href="../../Nucleon/Mixin/Macro/ObjectInterface.html">Nucleon::Mixin::Macro::ObjectInterface</a>
287
+
288
+ <li><a href="../../Nucleon/Mixin/Macro/PluginInterface.html">Nucleon::Mixin::Macro::PluginInterface</a>
289
+
290
+ <li><a href="../../Nucleon/Mixin/Settings.html">Nucleon::Mixin::Settings</a>
291
+
292
+ <li><a href="../../Nucleon/Mixin/SubConfig.html">Nucleon::Mixin::SubConfig</a>
293
+
294
+ <li><a href="../../Nucleon/Parallel.html">Nucleon::Parallel</a>
295
+
296
+ <li><a href="../../Nucleon/Parallel/ClassMethods.html">Nucleon::Parallel::ClassMethods</a>
297
+
298
+ <li><a href="../../Nucleon/Parallel/InstanceMethods.html">Nucleon::Parallel::InstanceMethods</a>
299
+
300
+ <li><a href="../../Nucleon/Plugin.html">Nucleon::Plugin</a>
301
+
302
+ <li><a href="../../Nucleon/Plugin/Action.html">Nucleon::Plugin::Action</a>
303
+
304
+ <li><a href="../../Nucleon/Plugin/Action/Option.html">Nucleon::Plugin::Action::Option</a>
305
+
306
+ <li><a href="../../Nucleon/Plugin/Base.html">Nucleon::Plugin::Base</a>
307
+
308
+ <li><a href="../../Nucleon/Plugin/Command.html">Nucleon::Plugin::Command</a>
309
+
310
+ <li><a href="../../Nucleon/Plugin/Event.html">Nucleon::Plugin::Event</a>
311
+
312
+ <li><a href="../../Nucleon/Plugin/Extension.html">Nucleon::Plugin::Extension</a>
313
+
314
+ <li><a href="../../Nucleon/Plugin/Project.html">Nucleon::Plugin::Project</a>
315
+
316
+ <li><a href="../../Nucleon/Plugin/Template.html">Nucleon::Plugin::Template</a>
317
+
318
+ <li><a href="../../Nucleon/Plugin/Translator.html">Nucleon::Plugin::Translator</a>
319
+
320
+ <li><a href="../../Nucleon/Project.html">Nucleon::Project</a>
321
+
322
+ <li><a href="../../Nucleon/Project/Git.html">Nucleon::Project::Git</a>
323
+
324
+ <li><a href="../../Nucleon/Project/Github.html">Nucleon::Project::Github</a>
325
+
326
+ <li><a href="../../Nucleon/Template.html">Nucleon::Template</a>
327
+
328
+ <li><a href="../../Nucleon/Template/Json.html">Nucleon::Template::Json</a>
329
+
330
+ <li><a href="../../Nucleon/Template/Wrapper.html">Nucleon::Template::Wrapper</a>
331
+
332
+ <li><a href="../../Nucleon/Template/Yaml.html">Nucleon::Template::Yaml</a>
333
+
334
+ <li><a href="../../Nucleon/Translator.html">Nucleon::Translator</a>
335
+
336
+ <li><a href="../../Nucleon/Translator/Json.html">Nucleon::Translator::Json</a>
337
+
338
+ <li><a href="../../Nucleon/Translator/Yaml.html">Nucleon::Translator::Yaml</a>
339
+
340
+ <li><a href="../../Nucleon/Util.html">Nucleon::Util</a>
341
+
342
+ <li><a href="../../Nucleon/Util/CLI.html">Nucleon::Util::CLI</a>
343
+
344
+ <li><a href="../../Nucleon/Util/CLI/Parser.html">Nucleon::Util::CLI::Parser</a>
345
+
346
+ <li><a href="../../Nucleon/Util/Cache.html">Nucleon::Util::Cache</a>
347
+
348
+ <li><a href="../../Nucleon/Util/Console.html">Nucleon::Util::Console</a>
349
+
350
+ <li><a href="../../Nucleon/Util/Data.html">Nucleon::Util::Data</a>
351
+
352
+ <li><a href="../../Nucleon/Util/Disk.html">Nucleon::Util::Disk</a>
353
+
354
+ <li><a href="../../Nucleon/Util/Git.html">Nucleon::Util::Git</a>
355
+
356
+ <li><a href="../../Nucleon/Util/Liquid.html">Nucleon::Util::Liquid</a>
357
+
358
+ <li><a href="../../Nucleon/Util/Logger.html">Nucleon::Util::Logger</a>
359
+
360
+ <li><a href="../../Nucleon/Util/Package.html">Nucleon::Util::Package</a>
361
+
362
+ <li><a href="../../Nucleon/Util/SSH.html">Nucleon::Util::SSH</a>
363
+
364
+ <li><a href="../../Nucleon/Util/SSH/Keypair.html">Nucleon::Util::SSH::Keypair</a>
365
+
366
+ <li><a href="../../Nucleon/Util/Shell.html">Nucleon::Util::Shell</a>
367
+
368
+ <li><a href="../../Nucleon/Util/Shell/Result.html">Nucleon::Util::Shell::Result</a>
369
+
370
+ <li><a href="../../Hash.html">Hash</a>
371
+
372
+ <li><a href="../../Kernel.html">Kernel</a>
373
+
374
+ </ul>
375
+ </nav>
376
+
377
+ </div>
378
+ </nav>
379
+
380
+ <div id="documentation">
381
+ <h1 class="class">class Nucleon::Plugin::Project</h1>
382
+
383
+ <div id="description" class="description">
384
+
385
+ </div><!-- description -->
386
+
387
+
388
+
389
+
390
+ <section id="5Buntitled-5D" class="documentation-section">
391
+
392
+
393
+
394
+
395
+
396
+
397
+
398
+
399
+ <!-- Methods -->
400
+
401
+ <section id="public-class-5Buntitled-5D-method-details" class="method-section section">
402
+ <h3 class="section-header">Public Class Methods</h3>
403
+
404
+
405
+ <div id="method-c-build_info" class="method-detail ">
406
+
407
+ <div class="method-heading">
408
+ <span class="method-name">build_info</span><span
409
+ class="method-args">(type, data)</span>
410
+ <span class="method-click-advice">click to toggle source</span>
411
+ </div>
412
+
413
+
414
+ <div class="method-description">
415
+
416
+
417
+
418
+
419
+
420
+ <div class="method-source-code" id="build_info-source">
421
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 877</span>
422
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">build_info</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">data</span>)
423
+ <span class="ruby-identifier">data</span> = <span class="ruby-identifier">data</span>.<span class="ruby-identifier">split</span>(<span class="ruby-regexp">/\s*,\s*/</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">data</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">String</span>)
424
+ <span class="ruby-keyword">super</span>(<span class="ruby-identifier">type</span>, <span class="ruby-identifier">data</span>)
425
+ <span class="ruby-keyword">end</span></pre>
426
+ </div><!-- build_info-source -->
427
+
428
+ </div>
429
+
430
+
431
+
432
+
433
+ </div><!-- build_info-method -->
434
+
435
+
436
+ <div id="method-c-collection" class="method-detail ">
437
+
438
+ <div class="method-heading">
439
+ <span class="method-name">collection</span><span
440
+ class="method-args">()</span>
441
+ <span class="method-click-advice">click to toggle source</span>
442
+ </div>
443
+
444
+
445
+ <div class="method-description">
446
+
447
+
448
+
449
+
450
+
451
+ <div class="method-source-code" id="collection-source">
452
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 14</span>
453
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">collection</span>
454
+ <span class="ruby-identifier">@@projects</span>
455
+ <span class="ruby-keyword">end</span></pre>
456
+ </div><!-- collection-source -->
457
+
458
+ </div>
459
+
460
+
461
+
462
+
463
+ </div><!-- collection-method -->
464
+
465
+
466
+ <div id="method-c-open" class="method-detail ">
467
+
468
+ <div class="method-heading">
469
+ <span class="method-name">open</span><span
470
+ class="method-args">(directory, provider, options = {})</span>
471
+ <span class="method-click-advice">click to toggle source</span>
472
+ </div>
473
+
474
+
475
+ <div class="method-description">
476
+
477
+
478
+
479
+
480
+
481
+ <div class="method-source-code" id="open-source">
482
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 21</span>
483
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">directory</span>, <span class="ruby-identifier">provider</span>, <span class="ruby-identifier">options</span> = {})
484
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
485
+ <span class="ruby-identifier">directory</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Disk</span>.<span class="ruby-identifier">filename</span>(<span class="ruby-identifier">directory</span>))
486
+
487
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">@@projects</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-identifier">directory</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:reset</span>, <span class="ruby-keyword">false</span>)
488
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Creating new project at #{directory} with #{provider}&quot;</span>)
489
+
490
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">project</span>(<span class="ruby-identifier">config</span>.<span class="ruby-identifier">import</span>({
491
+ <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">directory</span>,
492
+ <span class="ruby-value">:directory</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">directory</span>
493
+ }), <span class="ruby-identifier">provider</span>)
494
+
495
+ <span class="ruby-keyword">else</span>
496
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Opening existing project at #{directory}&quot;</span>)
497
+ <span class="ruby-keyword">end</span>
498
+
499
+ <span class="ruby-identifier">@@projects</span>[<span class="ruby-identifier">directory</span>]
500
+ <span class="ruby-keyword">end</span></pre>
501
+ </div><!-- open-source -->
502
+
503
+ </div>
504
+
505
+
506
+
507
+
508
+ </div><!-- open-method -->
509
+
510
+
511
+ <div id="method-c-translate" class="method-detail ">
512
+
513
+ <div class="method-heading">
514
+ <span class="method-name">translate</span><span
515
+ class="method-args">(data)</span>
516
+ <span class="method-click-advice">click to toggle source</span>
517
+ </div>
518
+
519
+
520
+ <div class="method-description">
521
+
522
+
523
+
524
+
525
+
526
+ <div class="method-source-code" id="translate-source">
527
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 884</span>
528
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">translate</span>(<span class="ruby-identifier">data</span>)
529
+ <span class="ruby-identifier">options</span> = <span class="ruby-keyword">super</span>(<span class="ruby-identifier">data</span>)
530
+
531
+ <span class="ruby-keyword">case</span> <span class="ruby-identifier">data</span>
532
+ <span class="ruby-keyword">when</span> <span class="ruby-constant">String</span>
533
+ <span class="ruby-identifier">options</span> = { <span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">data</span> }
534
+ <span class="ruby-keyword">when</span> <span class="ruby-constant">Hash</span>
535
+ <span class="ruby-identifier">options</span> = <span class="ruby-identifier">data</span>
536
+ <span class="ruby-keyword">end</span>
537
+
538
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value">:url</span>)
539
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">matches</span> = <span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>])
540
+ <span class="ruby-identifier">options</span>[<span class="ruby-value">:provider</span>] = <span class="ruby-identifier">matches</span>[<span class="ruby-value">:provider</span>]
541
+ <span class="ruby-identifier">options</span>[<span class="ruby-value">:url</span>] = <span class="ruby-identifier">matches</span>[<span class="ruby-value">:url</span>]
542
+ <span class="ruby-identifier">options</span>[<span class="ruby-value">:revision</span>] = <span class="ruby-identifier">matches</span>[<span class="ruby-value">:revision</span>] <span class="ruby-keyword">unless</span> <span class="ruby-identifier">options</span>.<span class="ruby-identifier">has_key?</span>(<span class="ruby-value">:revision</span>)
543
+
544
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Translating project options: #{options.inspect}&quot;</span>)
545
+ <span class="ruby-keyword">end</span>
546
+ <span class="ruby-keyword">end</span>
547
+ <span class="ruby-identifier">options</span>
548
+ <span class="ruby-keyword">end</span></pre>
549
+ </div><!-- translate-source -->
550
+
551
+ </div>
552
+
553
+
554
+
555
+
556
+ </div><!-- translate-method -->
557
+
558
+
559
+ <div id="method-c-translate_reference" class="method-detail ">
560
+
561
+ <div class="method-heading">
562
+ <span class="method-name">translate_reference</span><span
563
+ class="method-args">(reference, editable = false)</span>
564
+ <span class="method-click-advice">click to toggle source</span>
565
+ </div>
566
+
567
+
568
+ <div class="method-description">
569
+
570
+
571
+
572
+
573
+
574
+ <div class="method-source-code" id="translate_reference-source">
575
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 908</span>
576
+ <span class="ruby-keyword">def</span> <span class="ruby-keyword">self</span>.<span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">reference</span>, <span class="ruby-identifier">editable</span> = <span class="ruby-keyword">false</span>)
577
+ <span class="ruby-comment"># ex: github:::username/project[branch/revision]</span>
578
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">reference</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">reference</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp">/^\s*([a-zA-Z0-9_-]+):::([^\]\s]+)\s*(?:\[\s*([^\]\s]+)\s*\])?\s*$/</span>)
579
+ <span class="ruby-identifier">provider</span> = <span class="ruby-node">$1</span>
580
+ <span class="ruby-identifier">url</span> = <span class="ruby-node">$2</span>
581
+ <span class="ruby-identifier">revision</span> = <span class="ruby-node">$3</span>
582
+
583
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Translating project reference: #{provider} #{url} #{revision}&quot;</span>)
584
+
585
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">provider</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">loaded_plugins</span>(<span class="ruby-value">:project</span>).<span class="ruby-identifier">keys</span>.<span class="ruby-identifier">include?</span>(<span class="ruby-identifier">provider</span>.<span class="ruby-identifier">to_sym</span>)
586
+ <span class="ruby-identifier">klass</span> = <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">class_const</span>([ <span class="ruby-value">:nucleon</span>, <span class="ruby-value">:project</span>, <span class="ruby-identifier">provider</span> ])
587
+ <span class="ruby-identifier">expanded_url</span> = <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">send</span>(<span class="ruby-value">:expand_url</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">editable</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">klass</span>.<span class="ruby-identifier">respond_to?</span>(<span class="ruby-value">:expand_url</span>)
588
+ <span class="ruby-keyword">end</span>
589
+ <span class="ruby-identifier">expanded_url</span> = <span class="ruby-identifier">url</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">expanded_url</span>
590
+
591
+ <span class="ruby-identifier">info</span> = {
592
+ <span class="ruby-value">:provider</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">provider</span>,
593
+ <span class="ruby-value">:reference</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>,
594
+ <span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">expanded_url</span>,
595
+ <span class="ruby-value">:revision</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">revision</span>
596
+ }
597
+
598
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Project reference info: #{info.inspect}&quot;</span>)
599
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">info</span>
600
+ <span class="ruby-keyword">end</span>
601
+ <span class="ruby-keyword">nil</span>
602
+ <span class="ruby-keyword">end</span></pre>
603
+ </div><!-- translate_reference-source -->
604
+
605
+ </div>
606
+
607
+
608
+
609
+
610
+ </div><!-- translate_reference-method -->
611
+
612
+
613
+ </section><!-- public-class-method-details -->
614
+
615
+ <section id="public-instance-5Buntitled-5D-method-details" class="method-section section">
616
+ <h3 class="section-header">Public Instance Methods</h3>
617
+
618
+
619
+ <div id="method-i-add_remote_url" class="method-detail ">
620
+
621
+ <div class="method-heading">
622
+ <span class="method-name">add_remote_url</span><span
623
+ class="method-args">(name, url, options = {}) { |config, url| ... }</span>
624
+ <span class="method-click-advice">click to toggle source</span>
625
+ </div>
626
+
627
+
628
+ <div class="method-description">
629
+
630
+
631
+
632
+
633
+
634
+ <div class="method-source-code" id="add_remote_url-source">
635
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 705</span>
636
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">add_remote_url</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">options</span> = {})
637
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
638
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
639
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
640
+
641
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">url</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:add_remote_url</span>, <span class="ruby-identifier">url</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
642
+ <span class="ruby-identifier">url</span> = <span class="ruby-identifier">translate_edit_url</span>(<span class="ruby-identifier">url</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-value">:edit</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:translate</span>, <span class="ruby-keyword">true</span>)
643
+
644
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Adding project remote url #{url} to #{name}&quot;</span>)
645
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">url</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
646
+ <span class="ruby-keyword">end</span>
647
+ <span class="ruby-keyword">end</span>
648
+ <span class="ruby-keyword">else</span>
649
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{self.name} does not meet the criteria for persistence and can not have remotes&quot;</span>)
650
+ <span class="ruby-keyword">end</span>
651
+ <span class="ruby-keyword">end</span></pre>
652
+ </div><!-- add_remote_url-source -->
653
+
654
+ </div>
655
+
656
+
657
+
658
+
659
+ </div><!-- add_remote_url-method -->
660
+
661
+
662
+ <div id="method-i-add_subproject" class="method-detail ">
663
+
664
+ <div class="method-heading">
665
+ <span class="method-name">add_subproject</span><span
666
+ class="method-args">(path, url, revision, options = {}) { |config| ... }</span>
667
+ <span class="method-click-advice">click to toggle source</span>
668
+ </div>
669
+
670
+
671
+ <div class="method-description">
672
+
673
+
674
+
675
+
676
+
677
+ <div class="method-source-code" id="add_subproject-source">
678
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 539</span>
679
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">add_subproject</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">revision</span>, <span class="ruby-identifier">options</span> = {})
680
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
681
+
682
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
683
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
684
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">import</span>({ <span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">path</span>, <span class="ruby-value">:url</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">url</span>, <span class="ruby-value">:revision</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">revision</span> })
685
+
686
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:add_project</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
687
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Adding a sub project to #{config[:path]} from #{config[:url]} at #{config[:revision]}&quot;</span>)
688
+
689
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
690
+
691
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
692
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:add_project_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
693
+
694
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">init</span>(<span class="ruby-value">:files</span>, <span class="ruby-string">&#39;.&#39;</span>)
695
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">init</span>(<span class="ruby-value">:message</span>, <span class="ruby-node">&quot;Adding project #{config[:url]} to #{config[:path]}&quot;</span>)
696
+
697
+ <span class="ruby-identifier">commit</span>(<span class="ruby-identifier">config</span>[<span class="ruby-value">:files</span>], { <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>[<span class="ruby-value">:message</span>] })
698
+ <span class="ruby-identifier">update_subprojects</span>
699
+ <span class="ruby-keyword">end</span>
700
+ <span class="ruby-keyword">else</span>
701
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
702
+ <span class="ruby-keyword">end</span>
703
+ <span class="ruby-keyword">end</span>
704
+ <span class="ruby-keyword">else</span>
705
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not have sub projects&quot;</span>)
706
+ <span class="ruby-keyword">end</span>
707
+ <span class="ruby-identifier">success</span>
708
+ <span class="ruby-keyword">end</span></pre>
709
+ </div><!-- add_subproject-source -->
710
+
711
+ </div>
712
+
713
+
714
+
715
+
716
+ </div><!-- add_subproject-method -->
717
+
718
+
719
+ <div id="method-i-cache" class="method-detail ">
720
+
721
+ <div class="method-heading">
722
+ <span class="method-name">cache</span><span
723
+ class="method-args">()</span>
724
+ <span class="method-click-advice">click to toggle source</span>
725
+ </div>
726
+
727
+
728
+ <div class="method-description">
729
+
730
+
731
+
732
+
733
+
734
+ <div class="method-source-code" id="cache-source">
735
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 139</span>
736
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">cache</span>
737
+ <span class="ruby-ivar">@cache</span>
738
+ <span class="ruby-keyword">end</span></pre>
739
+ </div><!-- cache-source -->
740
+
741
+ </div>
742
+
743
+
744
+
745
+
746
+ </div><!-- cache-method -->
747
+
748
+
749
+ <div id="method-i-can_persist-3F" class="method-detail ">
750
+
751
+ <div class="method-heading">
752
+ <span class="method-name">can_persist?</span><span
753
+ class="method-args">()</span>
754
+ <span class="method-click-advice">click to toggle source</span>
755
+ </div>
756
+
757
+
758
+ <div class="method-description">
759
+
760
+
761
+
762
+
763
+
764
+ <div class="method-source-code" id="can_persist-3F-source">
765
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 99</span>
766
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">can_persist?</span>
767
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">top?</span>(<span class="ruby-identifier">directory</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">directory</span>
768
+ <span class="ruby-keyword">false</span>
769
+ <span class="ruby-keyword">end</span></pre>
770
+ </div><!-- can_persist-3F-source -->
771
+
772
+ </div>
773
+
774
+
775
+
776
+
777
+ </div><!-- can_persist-3F-method -->
778
+
779
+
780
+ <div id="method-i-checkout" class="method-detail ">
781
+
782
+ <div class="method-heading">
783
+ <span class="method-name">checkout</span><span
784
+ class="method-args">(revision) { |success| ... }</span>
785
+ <span class="method-click-advice">click to toggle source</span>
786
+ </div>
787
+
788
+
789
+ <div class="method-description">
790
+
791
+
792
+
793
+
794
+
795
+ <div class="method-source-code" id="checkout-source">
796
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 414</span>
797
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">checkout</span>(<span class="ruby-identifier">revision</span>)
798
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
799
+
800
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
801
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
802
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:checkout</span>, { <span class="ruby-value">:revision</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">revision</span> })
803
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Checking out project #{name} revision: #{revision}&quot;</span>)
804
+
805
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
806
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">success</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
807
+
808
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
809
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:revision</span>, <span class="ruby-identifier">revision</span>)
810
+
811
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:checkout_success</span>, { <span class="ruby-value">:revision</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">revision</span> })
812
+ <span class="ruby-identifier">load_subprojects</span>
813
+ <span class="ruby-keyword">end</span>
814
+ <span class="ruby-keyword">end</span>
815
+ <span class="ruby-keyword">end</span>
816
+ <span class="ruby-keyword">else</span>
817
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not checkout a revision&quot;</span>)
818
+ <span class="ruby-keyword">end</span>
819
+ <span class="ruby-identifier">success</span>
820
+ <span class="ruby-keyword">end</span></pre>
821
+ </div><!-- checkout-source -->
822
+
823
+ </div>
824
+
825
+
826
+
827
+
828
+ </div><!-- checkout-method -->
829
+
830
+
831
+ <div id="method-i-commit" class="method-detail ">
832
+
833
+ <div class="method-heading">
834
+ <span class="method-name">commit</span><span
835
+ class="method-args">(files = '.', options = {}) { |config, time, user, message| ... }</span>
836
+ <span class="method-click-advice">click to toggle source</span>
837
+ </div>
838
+
839
+
840
+ <div class="method-description">
841
+
842
+
843
+
844
+
845
+
846
+ <div class="method-source-code" id="commit-source">
847
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 441</span>
848
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">commit</span>(<span class="ruby-identifier">files</span> = <span class="ruby-string">&#39;.&#39;</span>, <span class="ruby-identifier">options</span> = {})
849
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
850
+
851
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
852
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
853
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
854
+
855
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:commit</span>, { <span class="ruby-value">:files</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">files</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
856
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Committing changes to project #{name}: #{files.inspect}&quot;</span>)
857
+
858
+ <span class="ruby-identifier">time</span> = <span class="ruby-constant">Time</span>.<span class="ruby-identifier">new</span>.<span class="ruby-identifier">strftime</span>(<span class="ruby-string">&quot;%Y-%m-%d %H:%M:%S&quot;</span>)
859
+ <span class="ruby-identifier">user</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:user</span>, <span class="ruby-constant">ENV</span>[<span class="ruby-string">&#39;USER&#39;</span>] <span class="ruby-operator">+</span> <span class="ruby-string">&#39;@&#39;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">fact</span>(<span class="ruby-value">:fqdn</span>))
860
+
861
+ <span class="ruby-identifier">message</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:message</span>, <span class="ruby-string">&#39;&#39;</span>)
862
+ <span class="ruby-identifier">message</span> = <span class="ruby-string">&#39;Saving state: &#39;</span> <span class="ruby-operator">+</span> ( <span class="ruby-identifier">files</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Array</span>) <span class="ruby-operator">?</span> <span class="ruby-string">&quot;\n\n&quot;</span> <span class="ruby-operator">+</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">join</span>(<span class="ruby-string">&quot;\n&quot;</span>) <span class="ruby-operator">:</span> <span class="ruby-identifier">files</span>.<span class="ruby-identifier">to_s</span> ) <span class="ruby-keyword">if</span> <span class="ruby-identifier">message</span>.<span class="ruby-identifier">empty?</span>
863
+
864
+ <span class="ruby-identifier">user</span> = <span class="ruby-string">&#39;UNKNOWN&#39;</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">user</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">user</span>.<span class="ruby-identifier">empty?</span>
865
+
866
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Commit by #{user} at #{time} with #{message}&quot;</span>)
867
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">time</span>, <span class="ruby-identifier">user</span>, <span class="ruby-identifier">message</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
868
+
869
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
870
+ <span class="ruby-identifier">load_revision</span>
871
+
872
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:commit_success</span>, { <span class="ruby-value">:files</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">files</span> })
873
+
874
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:propogate</span>, <span class="ruby-keyword">true</span>)
875
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-string">&quot;Commit to parent as parent exists and propogate option given&quot;</span>)
876
+
877
+ <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">load_revision</span>
878
+ <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">commit</span>(<span class="ruby-identifier">directory</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">import</span>({
879
+ <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;Updating #{path}: #{message}&quot;</span>
880
+ }))
881
+ <span class="ruby-keyword">end</span>
882
+ <span class="ruby-keyword">end</span>
883
+ <span class="ruby-keyword">end</span>
884
+ <span class="ruby-keyword">end</span>
885
+ <span class="ruby-keyword">else</span>
886
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can be committed to&quot;</span>)
887
+ <span class="ruby-keyword">end</span>
888
+ <span class="ruby-identifier">success</span>
889
+ <span class="ruby-keyword">end</span></pre>
890
+ </div><!-- commit-source -->
891
+
892
+ </div>
893
+
894
+
895
+
896
+
897
+ </div><!-- commit-method -->
898
+
899
+
900
+ <div id="method-i-config" class="method-detail ">
901
+
902
+ <div class="method-heading">
903
+ <span class="method-name">config</span><span
904
+ class="method-args">(name, options = {}) { |config| ... }</span>
905
+ <span class="method-click-advice">click to toggle source</span>
906
+ </div>
907
+
908
+
909
+ <div class="method-description">
910
+
911
+
912
+
913
+
914
+
915
+ <div class="method-source-code" id="config-source">
916
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 269</span>
917
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">config</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span> = {})
918
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
919
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
920
+ <span class="ruby-identifier">can_persist?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">block_given?</span> <span class="ruby-operator">?</span> <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>) <span class="ruby-operator">:</span> <span class="ruby-keyword">nil</span>
921
+ <span class="ruby-keyword">end</span>
922
+ <span class="ruby-keyword">end</span></pre>
923
+ </div><!-- config-source -->
924
+
925
+ </div>
926
+
927
+
928
+
929
+
930
+ </div><!-- config-method -->
931
+
932
+
933
+ <div id="method-i-delete_config" class="method-detail ">
934
+
935
+ <div class="method-heading">
936
+ <span class="method-name">delete_config</span><span
937
+ class="method-args">(name, options = {}) { |config| ... }</span>
938
+ <span class="method-click-advice">click to toggle source</span>
939
+ </div>
940
+
941
+
942
+ <div class="method-description">
943
+
944
+
945
+
946
+
947
+
948
+ <div class="method-source-code" id="delete_config-source">
949
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 292</span>
950
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">delete_config</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">options</span> = {})
951
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
952
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
953
+
954
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:delete_config</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
955
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Removing project #{self.name} configuration: #{name}&quot;</span>)
956
+
957
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
958
+ <span class="ruby-keyword">end</span>
959
+ <span class="ruby-keyword">end</span>
960
+ <span class="ruby-keyword">end</span></pre>
961
+ </div><!-- delete_config-source -->
962
+
963
+ </div>
964
+
965
+
966
+
967
+
968
+ </div><!-- delete_config-method -->
969
+
970
+
971
+ <div id="method-i-delete_remote" class="method-detail ">
972
+
973
+ <div class="method-heading">
974
+ <span class="method-name">delete_remote</span><span
975
+ class="method-args">(name) { || ... }</span>
976
+ <span class="method-click-advice">click to toggle source</span>
977
+ </div>
978
+
979
+
980
+ <div class="method-description">
981
+
982
+
983
+
984
+
985
+
986
+ <div class="method-source-code" id="delete_remote-source">
987
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 753</span>
988
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">delete_remote</span>(<span class="ruby-identifier">name</span>)
989
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
990
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
991
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:delete_remote</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span> })
992
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Deleting project remote #{name}&quot;</span>)
993
+ <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
994
+ <span class="ruby-keyword">end</span>
995
+ <span class="ruby-keyword">end</span>
996
+ <span class="ruby-keyword">else</span>
997
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{self.name} does not meet the criteria for persistence and can not have remotes&quot;</span>)
998
+ <span class="ruby-keyword">end</span>
999
+ <span class="ruby-keyword">end</span></pre>
1000
+ </div><!-- delete_remote-source -->
1001
+
1002
+ </div>
1003
+
1004
+
1005
+
1006
+
1007
+ </div><!-- delete_remote-method -->
1008
+
1009
+
1010
+ <div id="method-i-delete_subproject" class="method-detail ">
1011
+
1012
+ <div class="method-heading">
1013
+ <span class="method-name">delete_subproject</span><span
1014
+ class="method-args">(path) { |config| ... }</span>
1015
+ <span class="method-click-advice">click to toggle source</span>
1016
+ </div>
1017
+
1018
+
1019
+ <div class="method-description">
1020
+
1021
+
1022
+
1023
+
1024
+
1025
+ <div class="method-source-code" id="delete_subproject-source">
1026
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 572</span>
1027
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">delete_subproject</span>(<span class="ruby-identifier">path</span>)
1028
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">true</span>
1029
+
1030
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
1031
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
1032
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">new</span>({ <span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">path</span> })
1033
+
1034
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:delete_project</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1035
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Deleting a sub project at #{config[:path]}&quot;</span>)
1036
+
1037
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1038
+
1039
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1040
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:delete_project_success</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1041
+
1042
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">init</span>(<span class="ruby-value">:files</span>, <span class="ruby-string">&#39;.&#39;</span>)
1043
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">init</span>(<span class="ruby-value">:message</span>, <span class="ruby-node">&quot;Removing project at #{config[:path]}&quot;</span>)
1044
+
1045
+ <span class="ruby-identifier">commit</span>(<span class="ruby-identifier">config</span>[<span class="ruby-value">:files</span>], { <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span>[<span class="ruby-value">:message</span>] })
1046
+ <span class="ruby-identifier">update_subprojects</span>
1047
+ <span class="ruby-keyword">end</span>
1048
+ <span class="ruby-keyword">end</span>
1049
+ <span class="ruby-keyword">end</span>
1050
+ <span class="ruby-keyword">else</span>
1051
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not have sub projects&quot;</span>)
1052
+ <span class="ruby-keyword">end</span>
1053
+ <span class="ruby-identifier">success</span>
1054
+ <span class="ruby-keyword">end</span></pre>
1055
+ </div><!-- delete_subproject-source -->
1056
+
1057
+ </div>
1058
+
1059
+
1060
+
1061
+
1062
+ </div><!-- delete_subproject-method -->
1063
+
1064
+
1065
+ <div id="method-i-directory" class="method-detail ">
1066
+
1067
+ <div class="method-heading">
1068
+ <span class="method-name">directory</span><span
1069
+ class="method-args">(default = nil)</span>
1070
+ <span class="method-click-advice">click to toggle source</span>
1071
+ </div>
1072
+
1073
+
1074
+ <div class="method-description">
1075
+
1076
+
1077
+
1078
+
1079
+
1080
+ <div class="method-source-code" id="directory-source">
1081
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 206</span>
1082
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">directory</span>(<span class="ruby-identifier">default</span> = <span class="ruby-keyword">nil</span>)
1083
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:directory</span>, <span class="ruby-identifier">default</span>)
1084
+ <span class="ruby-keyword">end</span></pre>
1085
+ </div><!-- directory-source -->
1086
+
1087
+ </div>
1088
+
1089
+
1090
+
1091
+
1092
+ </div><!-- directory-method -->
1093
+
1094
+
1095
+ <div id="method-i-each" class="method-detail ">
1096
+
1097
+ <div class="method-heading">
1098
+ <span class="method-name">each</span><span
1099
+ class="method-args">() { |path, project| ... }</span>
1100
+ <span class="method-click-advice">click to toggle source</span>
1101
+ </div>
1102
+
1103
+
1104
+ <div class="method-description">
1105
+
1106
+
1107
+
1108
+
1109
+
1110
+ <div class="method-source-code" id="each-source">
1111
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 628</span>
1112
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">each</span>
1113
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
1114
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
1115
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Iterating through all sub projects of project #{name}&quot;</span>)
1116
+
1117
+ <span class="ruby-identifier">subprojects</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-identifier">project</span><span class="ruby-operator">|</span>
1118
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:process_project</span>, { <span class="ruby-value">:project</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">project</span> })
1119
+
1120
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Running process on sub project #{path}&quot;</span>)
1121
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">project</span>)
1122
+ <span class="ruby-keyword">end</span>
1123
+ <span class="ruby-keyword">end</span>
1124
+ <span class="ruby-keyword">else</span>
1125
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not have sub projects&quot;</span>)
1126
+ <span class="ruby-keyword">end</span>
1127
+ <span class="ruby-keyword">end</span></pre>
1128
+ </div><!-- each-source -->
1129
+
1130
+ </div>
1131
+
1132
+
1133
+
1134
+
1135
+ </div><!-- each-method -->
1136
+
1137
+
1138
+ <div id="method-i-edit_url" class="method-detail ">
1139
+
1140
+ <div class="method-heading">
1141
+ <span class="method-name">edit_url</span><span
1142
+ class="method-args">(default = nil)</span>
1143
+ <span class="method-click-advice">click to toggle source</span>
1144
+ </div>
1145
+
1146
+
1147
+ <div class="method-description">
1148
+
1149
+
1150
+
1151
+
1152
+
1153
+ <div class="method-source-code" id="edit_url-source">
1154
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 188</span>
1155
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">edit_url</span>(<span class="ruby-identifier">default</span> = <span class="ruby-keyword">nil</span>)
1156
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:edit</span>, <span class="ruby-identifier">default</span>)
1157
+ <span class="ruby-keyword">end</span></pre>
1158
+ </div><!-- edit_url-source -->
1159
+
1160
+ </div>
1161
+
1162
+
1163
+
1164
+
1165
+ </div><!-- edit_url-method -->
1166
+
1167
+
1168
+ <div id="method-i-full_path" class="method-detail ">
1169
+
1170
+ <div class="method-heading">
1171
+ <span class="method-name">full_path</span><span
1172
+ class="method-args">(local_path)</span>
1173
+ <span class="method-click-advice">click to toggle source</span>
1174
+ </div>
1175
+
1176
+
1177
+ <div class="method-description">
1178
+
1179
+
1180
+
1181
+
1182
+
1183
+ <div class="method-source-code" id="full_path-source">
1184
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 991</span>
1185
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">full_path</span>(<span class="ruby-identifier">local_path</span>)
1186
+ <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">directory</span>, <span class="ruby-identifier">local_path</span>)
1187
+ <span class="ruby-keyword">end</span></pre>
1188
+ </div><!-- full_path-source -->
1189
+
1190
+ </div>
1191
+
1192
+
1193
+
1194
+
1195
+ </div><!-- full_path-method -->
1196
+
1197
+
1198
+ <div id="method-i-ignore" class="method-detail ">
1199
+
1200
+ <div class="method-heading">
1201
+ <span class="method-name">ignore</span><span
1202
+ class="method-args">(files) { || ... }</span>
1203
+ <span class="method-click-advice">click to toggle source</span>
1204
+ </div>
1205
+
1206
+
1207
+ <div class="method-description">
1208
+
1209
+
1210
+
1211
+
1212
+
1213
+ <div class="method-source-code" id="ignore-source">
1214
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 486</span>
1215
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">ignore</span>(<span class="ruby-identifier">files</span>)
1216
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">directory</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">manage_ignore?</span>
1217
+
1218
+ <span class="ruby-identifier">@@ignore_lock</span>.<span class="ruby-identifier">synchronize</span> <span class="ruby-keyword">do</span>
1219
+ <span class="ruby-identifier">files</span> = <span class="ruby-keyword">nil</span>
1220
+ <span class="ruby-identifier">files</span> = <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1221
+ <span class="ruby-identifier">commit</span>(<span class="ruby-identifier">files</span>, { <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-string">&quot;Adding project ignores.&quot;</span> }) <span class="ruby-keyword">if</span> <span class="ruby-identifier">files</span>
1222
+ <span class="ruby-keyword">end</span>
1223
+ <span class="ruby-keyword">end</span></pre>
1224
+ </div><!-- ignore-source -->
1225
+
1226
+ </div>
1227
+
1228
+
1229
+
1230
+
1231
+ </div><!-- ignore-method -->
1232
+
1233
+
1234
+ <div id="method-i-init_project" class="method-detail ">
1235
+
1236
+ <div class="method-heading">
1237
+ <span class="method-name">init_project</span><span
1238
+ class="method-args">()</span>
1239
+ <span class="method-click-advice">click to toggle source</span>
1240
+ </div>
1241
+
1242
+
1243
+ <div class="method-description">
1244
+
1245
+
1246
+
1247
+
1248
+
1249
+ <div class="method-source-code" id="init_project-source">
1250
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 76</span>
1251
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">init_project</span>
1252
+ <span class="ruby-identifier">init_auth</span>
1253
+ <span class="ruby-identifier">init_parent</span>
1254
+ <span class="ruby-identifier">init_remotes</span>
1255
+ <span class="ruby-identifier">load_revision</span>
1256
+ <span class="ruby-keyword">end</span></pre>
1257
+ </div><!-- init_project-source -->
1258
+
1259
+ </div>
1260
+
1261
+
1262
+
1263
+
1264
+ </div><!-- init_project-method -->
1265
+
1266
+
1267
+ <div id="method-i-local_path" class="method-detail ">
1268
+
1269
+ <div class="method-heading">
1270
+ <span class="method-name">local_path</span><span
1271
+ class="method-args">(file_path)</span>
1272
+ <span class="method-click-advice">click to toggle source</span>
1273
+ </div>
1274
+
1275
+
1276
+ <div class="method-description">
1277
+
1278
+
1279
+
1280
+
1281
+
1282
+ <div class="method-source-code" id="local_path-source">
1283
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 985</span>
1284
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">local_path</span>(<span class="ruby-identifier">file_path</span>)
1285
+ <span class="ruby-identifier">file_path</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">directory</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">SEPARATOR</span>, <span class="ruby-string">&#39;&#39;</span>)
1286
+ <span class="ruby-keyword">end</span></pre>
1287
+ </div><!-- local_path-source -->
1288
+
1289
+ </div>
1290
+
1291
+
1292
+
1293
+
1294
+ </div><!-- local_path-method -->
1295
+
1296
+
1297
+ <div id="method-i-localize" class="method-detail ">
1298
+
1299
+ <div class="method-heading">
1300
+ <span class="method-name">localize</span><span
1301
+ class="method-args">(path = nil) { || ... }</span>
1302
+ <span class="method-click-advice">click to toggle source</span>
1303
+ </div>
1304
+
1305
+
1306
+ <div class="method-description">
1307
+
1308
+
1309
+
1310
+
1311
+
1312
+ <div class="method-source-code" id="localize-source">
1313
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 969</span>
1314
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">localize</span>(<span class="ruby-identifier">path</span> = <span class="ruby-keyword">nil</span>)
1315
+ <span class="ruby-identifier">prev_directory</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
1316
+ <span class="ruby-identifier">path</span> = <span class="ruby-identifier">directory</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">nil?</span>
1317
+
1318
+ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>(<span class="ruby-identifier">path</span>)
1319
+
1320
+ <span class="ruby-identifier">result</span> = <span class="ruby-identifier">safe_exec</span>(<span class="ruby-keyword">true</span>) <span class="ruby-keyword">do</span>
1321
+ <span class="ruby-keyword">yield</span>
1322
+ <span class="ruby-keyword">end</span>
1323
+
1324
+ <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">chdir</span>(<span class="ruby-identifier">prev_directory</span>)
1325
+ <span class="ruby-identifier">result</span>
1326
+ <span class="ruby-keyword">end</span></pre>
1327
+ </div><!-- localize-source -->
1328
+
1329
+ </div>
1330
+
1331
+
1332
+
1333
+
1334
+ </div><!-- localize-method -->
1335
+
1336
+
1337
+ <div id="method-i-manage_ignore-3D" class="method-detail ">
1338
+
1339
+ <div class="method-heading">
1340
+ <span class="method-name">manage_ignore=</span><span
1341
+ class="method-args">(ignore)</span>
1342
+ <span class="method-click-advice">click to toggle source</span>
1343
+ </div>
1344
+
1345
+
1346
+ <div class="method-description">
1347
+
1348
+
1349
+
1350
+
1351
+
1352
+ <div class="method-source-code" id="manage_ignore-3D-source">
1353
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 128</span>
1354
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">manage_ignore=</span><span class="ruby-identifier">ignore</span>
1355
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:manage_ignore</span>, <span class="ruby-identifier">ignore</span>)
1356
+ <span class="ruby-keyword">end</span></pre>
1357
+ </div><!-- manage_ignore-3D-source -->
1358
+
1359
+ </div>
1360
+
1361
+
1362
+
1363
+
1364
+ </div><!-- manage_ignore-3D-method -->
1365
+
1366
+
1367
+ <div id="method-i-manage_ignore-3F" class="method-detail ">
1368
+
1369
+ <div class="method-heading">
1370
+ <span class="method-name">manage_ignore?</span><span
1371
+ class="method-args">()</span>
1372
+ <span class="method-click-advice">click to toggle source</span>
1373
+ </div>
1374
+
1375
+
1376
+ <div class="method-description">
1377
+
1378
+
1379
+
1380
+
1381
+
1382
+ <div class="method-source-code" id="manage_ignore-3F-source">
1383
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 132</span>
1384
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">manage_ignore?</span>
1385
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:manage_ignore</span>, <span class="ruby-keyword">false</span>)
1386
+ <span class="ruby-keyword">end</span></pre>
1387
+ </div><!-- manage_ignore-3F-source -->
1388
+
1389
+ </div>
1390
+
1391
+
1392
+
1393
+
1394
+ </div><!-- manage_ignore-3F-method -->
1395
+
1396
+
1397
+ <div id="method-i-normalize" class="method-detail ">
1398
+
1399
+ <div class="method-heading">
1400
+ <span class="method-name">normalize</span><span
1401
+ class="method-args">(reload)</span>
1402
+ <span class="method-click-advice">click to toggle source</span>
1403
+ </div>
1404
+
1405
+
1406
+ <div class="method-description">
1407
+
1408
+
1409
+
1410
+
1411
+
1412
+ <div class="method-source-code" id="normalize-source">
1413
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 43</span>
1414
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">normalize</span>(<span class="ruby-identifier">reload</span>)
1415
+ <span class="ruby-keyword">super</span>
1416
+
1417
+ <span class="ruby-identifier">set_directory</span>(<span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Disk</span>.<span class="ruby-identifier">filename</span>(<span class="ruby-identifier">get</span>(<span class="ruby-value">:directory</span>, <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>)))
1418
+ <span class="ruby-identifier">register</span>
1419
+
1420
+ <span class="ruby-identifier">set_url</span>(<span class="ruby-identifier">get</span>(<span class="ruby-value">:url</span>)) <span class="ruby-keyword">if</span> <span class="ruby-identifier">get</span>(<span class="ruby-value">:url</span>, <span class="ruby-keyword">false</span>)
1421
+
1422
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">plugin_name</span> = <span class="ruby-identifier">path</span> <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">plugin_name</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">plugin_name</span> <span class="ruby-operator">==</span> <span class="ruby-identifier">plugin_provider</span>
1423
+
1424
+ <span class="ruby-identifier">ui</span>.<span class="ruby-identifier">resource</span> = <span class="ruby-identifier">plugin_name</span>
1425
+ <span class="ruby-identifier">logger</span> = <span class="ruby-identifier">plugin_name</span>
1426
+
1427
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">keys</span> = <span class="ruby-identifier">delete</span>(<span class="ruby-value">:keys</span>, <span class="ruby-keyword">nil</span>)
1428
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:private_key</span>, <span class="ruby-identifier">keys</span>[<span class="ruby-value">:private_key</span>])
1429
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:public_key</span>, <span class="ruby-identifier">keys</span>[<span class="ruby-value">:public_key</span>])
1430
+ <span class="ruby-keyword">end</span>
1431
+
1432
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:normalize</span>)
1433
+
1434
+ <span class="ruby-identifier">init_project</span>
1435
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:init</span>)
1436
+
1437
+ <span class="ruby-identifier">pull</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">get</span>(<span class="ruby-value">:pull</span>, <span class="ruby-keyword">false</span>)
1438
+
1439
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">reload</span>
1440
+ <span class="ruby-ivar">@cache</span> = <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Cache</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">directory</span>, <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">sha1</span>(<span class="ruby-identifier">plugin_name</span>), <span class="ruby-string">&#39;.project_cache&#39;</span>)
1441
+ <span class="ruby-identifier">init_cache</span>
1442
+ <span class="ruby-keyword">end</span>
1443
+ <span class="ruby-keyword">end</span></pre>
1444
+ </div><!-- normalize-source -->
1445
+
1446
+ </div>
1447
+
1448
+
1449
+
1450
+
1451
+ </div><!-- normalize-method -->
1452
+
1453
+
1454
+ <div id="method-i-parent" class="method-detail ">
1455
+
1456
+ <div class="method-heading">
1457
+ <span class="method-name">parent</span><span
1458
+ class="method-args">(default = nil)</span>
1459
+ <span class="method-click-advice">click to toggle source</span>
1460
+ </div>
1461
+
1462
+
1463
+ <div class="method-description">
1464
+
1465
+
1466
+
1467
+
1468
+
1469
+ <div class="method-source-code" id="parent-source">
1470
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 251</span>
1471
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">parent</span>(<span class="ruby-identifier">default</span> = <span class="ruby-keyword">nil</span>)
1472
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:parent</span>, <span class="ruby-identifier">default</span>)
1473
+ <span class="ruby-keyword">end</span></pre>
1474
+ </div><!-- parent-source -->
1475
+
1476
+ </div>
1477
+
1478
+
1479
+
1480
+
1481
+ </div><!-- parent-method -->
1482
+
1483
+
1484
+ <div id="method-i-path" class="method-detail ">
1485
+
1486
+ <div class="method-heading">
1487
+ <span class="method-name">path</span><span
1488
+ class="method-args">()</span>
1489
+ <span class="method-click-advice">click to toggle source</span>
1490
+ </div>
1491
+
1492
+
1493
+ <div class="method-description">
1494
+
1495
+
1496
+
1497
+
1498
+
1499
+ <div class="method-source-code" id="path-source">
1500
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 212</span>
1501
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">path</span>
1502
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
1503
+ <span class="ruby-keyword">return</span> <span class="ruby-identifier">directory</span>
1504
+ <span class="ruby-keyword">end</span>
1505
+ <span class="ruby-identifier">directory</span>.<span class="ruby-identifier">gsub</span>(<span class="ruby-identifier">parent</span>.<span class="ruby-identifier">directory</span> <span class="ruby-operator">+</span> <span class="ruby-constant">File</span><span class="ruby-operator">::</span><span class="ruby-constant">SEPARATOR</span>, <span class="ruby-string">&#39;&#39;</span>)
1506
+ <span class="ruby-keyword">end</span></pre>
1507
+ </div><!-- path-source -->
1508
+
1509
+ </div>
1510
+
1511
+
1512
+
1513
+
1514
+ </div><!-- path-method -->
1515
+
1516
+
1517
+ <div id="method-i-private_key" class="method-detail ">
1518
+
1519
+ <div class="method-heading">
1520
+ <span class="method-name">private_key</span><span
1521
+ class="method-args">()</span>
1522
+ <span class="method-click-advice">click to toggle source</span>
1523
+ </div>
1524
+
1525
+
1526
+ <div class="method-description">
1527
+
1528
+
1529
+
1530
+
1531
+
1532
+ <div class="method-source-code" id="private_key-source">
1533
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 151</span>
1534
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">private_key</span>
1535
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:private_key</span>, <span class="ruby-keyword">nil</span>)
1536
+ <span class="ruby-keyword">end</span></pre>
1537
+ </div><!-- private_key-source -->
1538
+
1539
+ </div>
1540
+
1541
+
1542
+
1543
+
1544
+ </div><!-- private_key-method -->
1545
+
1546
+
1547
+ <div id="method-i-private_key_str" class="method-detail ">
1548
+
1549
+ <div class="method-heading">
1550
+ <span class="method-name">private_key_str</span><span
1551
+ class="method-args">()</span>
1552
+ <span class="method-click-advice">click to toggle source</span>
1553
+ </div>
1554
+
1555
+
1556
+ <div class="method-description">
1557
+
1558
+
1559
+
1560
+
1561
+
1562
+ <div class="method-source-code" id="private_key_str-source">
1563
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 155</span>
1564
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">private_key_str</span>
1565
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Disk</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">private_key</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">private_key</span>
1566
+ <span class="ruby-keyword">nil</span>
1567
+ <span class="ruby-keyword">end</span></pre>
1568
+ </div><!-- private_key_str-source -->
1569
+
1570
+ </div>
1571
+
1572
+
1573
+
1574
+
1575
+ </div><!-- private_key_str-method -->
1576
+
1577
+
1578
+ <div id="method-i-public_key" class="method-detail ">
1579
+
1580
+ <div class="method-heading">
1581
+ <span class="method-name">public_key</span><span
1582
+ class="method-args">()</span>
1583
+ <span class="method-click-advice">click to toggle source</span>
1584
+ </div>
1585
+
1586
+
1587
+ <div class="method-description">
1588
+
1589
+
1590
+
1591
+
1592
+
1593
+ <div class="method-source-code" id="public_key-source">
1594
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 160</span>
1595
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">public_key</span>
1596
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:public_key</span>, <span class="ruby-keyword">nil</span>)
1597
+ <span class="ruby-keyword">end</span></pre>
1598
+ </div><!-- public_key-source -->
1599
+
1600
+ </div>
1601
+
1602
+
1603
+
1604
+
1605
+ </div><!-- public_key-method -->
1606
+
1607
+
1608
+ <div id="method-i-public_key_str" class="method-detail ">
1609
+
1610
+ <div class="method-heading">
1611
+ <span class="method-name">public_key_str</span><span
1612
+ class="method-args">()</span>
1613
+ <span class="method-click-advice">click to toggle source</span>
1614
+ </div>
1615
+
1616
+
1617
+ <div class="method-description">
1618
+
1619
+
1620
+
1621
+
1622
+
1623
+ <div class="method-source-code" id="public_key_str-source">
1624
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 164</span>
1625
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">public_key_str</span>
1626
+ <span class="ruby-keyword">return</span> <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Disk</span>.<span class="ruby-identifier">read</span>(<span class="ruby-identifier">public_key</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">public_key</span>
1627
+ <span class="ruby-keyword">nil</span>
1628
+ <span class="ruby-keyword">end</span></pre>
1629
+ </div><!-- public_key_str-source -->
1630
+
1631
+ </div>
1632
+
1633
+
1634
+
1635
+
1636
+ </div><!-- public_key_str-method -->
1637
+
1638
+
1639
+ <div id="method-i-pull" class="method-detail ">
1640
+
1641
+ <div class="method-heading">
1642
+ <span class="method-name">pull</span><span
1643
+ class="method-args">(remote = :origin, options = {}) { |config, remote| ... }</span>
1644
+ <span class="method-click-advice">click to toggle source</span>
1645
+ </div>
1646
+
1647
+
1648
+ <div class="method-description">
1649
+
1650
+
1651
+
1652
+
1653
+
1654
+ <div class="method-source-code" id="pull-source">
1655
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 769</span>
1656
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">pull</span>(<span class="ruby-identifier">remote</span> = <span class="ruby-value">:origin</span>, <span class="ruby-identifier">options</span> = {})
1657
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">import</span>({ <span class="ruby-value">:remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">remote</span> })
1658
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
1659
+
1660
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
1661
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
1662
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:pull</span>, { <span class="ruby-value">:directory</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">directory</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1663
+ <span class="ruby-identifier">remote</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:remote</span>)
1664
+
1665
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">remote</span>(<span class="ruby-identifier">remote</span>)
1666
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Pulling from #{remote} into #{directory}&quot;</span>)
1667
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">remote</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1668
+ <span class="ruby-keyword">end</span>
1669
+
1670
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1671
+ <span class="ruby-identifier">update_subprojects</span>
1672
+
1673
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:pull_success</span>, { <span class="ruby-value">:directory</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">directory</span>, <span class="ruby-value">:remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">remote</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1674
+
1675
+ <span class="ruby-keyword">if</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:propogate</span>, <span class="ruby-keyword">true</span>)
1676
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-string">&quot;Commit to parent as parent exists and propogate option was given&quot;</span>)
1677
+
1678
+ <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">commit</span>(<span class="ruby-identifier">directory</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">import</span>({
1679
+ <span class="ruby-value">:message</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-node">&quot;Pulling updates for subproject #{path}&quot;</span>,
1680
+ <span class="ruby-value">:allow_empty</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>
1681
+ }))
1682
+ <span class="ruby-keyword">end</span>
1683
+ <span class="ruby-keyword">end</span>
1684
+ <span class="ruby-keyword">end</span>
1685
+ <span class="ruby-keyword">end</span>
1686
+ <span class="ruby-keyword">else</span>
1687
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not pull from remotes&quot;</span>)
1688
+ <span class="ruby-keyword">end</span>
1689
+ <span class="ruby-identifier">success</span>
1690
+ <span class="ruby-keyword">end</span></pre>
1691
+ </div><!-- pull-source -->
1692
+
1693
+ </div>
1694
+
1695
+
1696
+
1697
+
1698
+ </div><!-- pull-method -->
1699
+
1700
+
1701
+ <div id="method-i-push" class="method-detail ">
1702
+
1703
+ <div class="method-heading">
1704
+ <span class="method-name">push</span><span
1705
+ class="method-args">(remote = :edit, options = {}) { |config, push_remote| ... }</span>
1706
+ <span class="method-click-advice">click to toggle source</span>
1707
+ </div>
1708
+
1709
+
1710
+ <div class="method-description">
1711
+
1712
+
1713
+
1714
+
1715
+
1716
+ <div class="method-source-code" id="push-source">
1717
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 807</span>
1718
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">push</span>(<span class="ruby-identifier">remote</span> = <span class="ruby-value">:edit</span>, <span class="ruby-identifier">options</span> = {})
1719
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">import</span>({ <span class="ruby-value">:remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">remote</span> })
1720
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
1721
+
1722
+ <span class="ruby-identifier">push_project</span> = <span class="ruby-identifier">lambda</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">push_remote</span><span class="ruby-operator">|</span>
1723
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Pushing to #{push_remote} from #{directory}&quot;</span>)
1724
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">push_remote</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">pull</span>(<span class="ruby-identifier">push_remote</span>, <span class="ruby-identifier">config</span>)
1725
+ <span class="ruby-keyword">end</span>
1726
+
1727
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
1728
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
1729
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:push</span>, { <span class="ruby-value">:directory</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">directory</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1730
+ <span class="ruby-identifier">remote</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:remote</span>)
1731
+ <span class="ruby-identifier">tries</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:tries</span>, <span class="ruby-value">5</span>)
1732
+
1733
+ <span class="ruby-comment"># TODO: Figure out a better way through specialized exception handling</span>
1734
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">remote</span>(<span class="ruby-identifier">remote</span>)
1735
+ <span class="ruby-keyword">begin</span>
1736
+ <span class="ruby-identifier">success</span> = <span class="ruby-identifier">push_project</span>.<span class="ruby-identifier">call</span>(<span class="ruby-identifier">remote</span>)
1737
+ <span class="ruby-identifier">raise</span> <span class="ruby-keyword">unless</span> <span class="ruby-identifier">success</span>
1738
+
1739
+ <span class="ruby-keyword">rescue</span>
1740
+ <span class="ruby-identifier">tries</span> <span class="ruby-operator">-=</span> <span class="ruby-value">1</span>
1741
+ <span class="ruby-keyword">retry</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">tries</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
1742
+ <span class="ruby-keyword">end</span>
1743
+ <span class="ruby-keyword">end</span>
1744
+
1745
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
1746
+ <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:revision</span>)
1747
+
1748
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:push_success</span>, { <span class="ruby-value">:directory</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">directory</span>, <span class="ruby-value">:remote</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">remote</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1749
+
1750
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:propogate</span>, <span class="ruby-keyword">true</span>)
1751
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">nil?</span>
1752
+ <span class="ruby-identifier">propogate_up</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:propogate_up</span>, <span class="ruby-keyword">nil</span>)
1753
+
1754
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">propogate_up</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">propogate_up</span>
1755
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-string">&quot;Commit to parent as parent exists and propogate option was given&quot;</span>)
1756
+ <span class="ruby-identifier">parent</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">remote</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-identifier">dup</span>).<span class="ruby-identifier">import</span>({
1757
+ <span class="ruby-value">:propogate_up</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>,
1758
+ <span class="ruby-value">:propogate_down</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>
1759
+ }))
1760
+ <span class="ruby-keyword">end</span>
1761
+ <span class="ruby-keyword">end</span>
1762
+
1763
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-string">&quot;Pushing sub projects&quot;</span>)
1764
+
1765
+ <span class="ruby-identifier">propogate_down</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:propogate_down</span>, <span class="ruby-keyword">nil</span>)
1766
+
1767
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">propogate_down</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">propogate_down</span>
1768
+ <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-identifier">project</span><span class="ruby-operator">|</span>
1769
+ <span class="ruby-identifier">project</span>.<span class="ruby-identifier">push</span>(<span class="ruby-identifier">remote</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-identifier">dup</span>).<span class="ruby-identifier">import</span>({
1770
+ <span class="ruby-value">:propogate_up</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span>,
1771
+ <span class="ruby-value">:propogate_down</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">true</span>
1772
+ }))
1773
+ <span class="ruby-keyword">end</span>
1774
+ <span class="ruby-keyword">end</span>
1775
+ <span class="ruby-keyword">end</span>
1776
+ <span class="ruby-keyword">end</span>
1777
+ <span class="ruby-keyword">end</span>
1778
+ <span class="ruby-keyword">end</span>
1779
+ <span class="ruby-keyword">else</span>
1780
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not push to remotes&quot;</span>)
1781
+ <span class="ruby-keyword">end</span>
1782
+ <span class="ruby-identifier">success</span>
1783
+ <span class="ruby-keyword">end</span></pre>
1784
+ </div><!-- push-source -->
1785
+
1786
+ </div>
1787
+
1788
+
1789
+
1790
+
1791
+ </div><!-- push-method -->
1792
+
1793
+
1794
+ <div id="method-i-reference" class="method-detail ">
1795
+
1796
+ <div class="method-heading">
1797
+ <span class="method-name">reference</span><span
1798
+ class="method-args">()</span>
1799
+ <span class="method-click-advice">click to toggle source</span>
1800
+ </div>
1801
+
1802
+
1803
+ <div class="method-description">
1804
+
1805
+
1806
+
1807
+
1808
+
1809
+ <div class="method-source-code" id="reference-source">
1810
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 145</span>
1811
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">reference</span>
1812
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:reference</span>, <span class="ruby-keyword">nil</span>)
1813
+ <span class="ruby-keyword">end</span></pre>
1814
+ </div><!-- reference-source -->
1815
+
1816
+ </div>
1817
+
1818
+
1819
+
1820
+
1821
+ </div><!-- reference-method -->
1822
+
1823
+
1824
+ <div id="method-i-register" class="method-detail ">
1825
+
1826
+ <div class="method-heading">
1827
+ <span class="method-name">register</span><span
1828
+ class="method-args">()</span>
1829
+ <span class="method-click-advice">click to toggle source</span>
1830
+ </div>
1831
+
1832
+
1833
+ <div class="method-description">
1834
+
1835
+
1836
+
1837
+
1838
+
1839
+ <div class="method-source-code" id="register-source">
1840
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 86</span>
1841
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">register</span>
1842
+ <span class="ruby-keyword">super</span>
1843
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">directory</span>
1844
+ <span class="ruby-identifier">lib_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">directory</span>, <span class="ruby-string">&#39;lib&#39;</span>)
1845
+ <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">lib_path</span>)
1846
+ <span class="ruby-constant">Nucleon</span>.<span class="ruby-identifier">register</span>(<span class="ruby-identifier">lib_path</span>)
1847
+ <span class="ruby-keyword">end</span>
1848
+ <span class="ruby-keyword">end</span>
1849
+ <span class="ruby-keyword">end</span></pre>
1850
+ </div><!-- register-source -->
1851
+
1852
+ </div>
1853
+
1854
+
1855
+
1856
+
1857
+ </div><!-- register-method -->
1858
+
1859
+
1860
+ <div id="method-i-remote" class="method-detail ">
1861
+
1862
+ <div class="method-heading">
1863
+ <span class="method-name">remote</span><span
1864
+ class="method-args">(name) { || ... }</span>
1865
+ <span class="method-click-advice">click to toggle source</span>
1866
+ </div>
1867
+
1868
+
1869
+ <div class="method-description">
1870
+
1871
+
1872
+
1873
+
1874
+
1875
+ <div class="method-source-code" id="remote-source">
1876
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 669</span>
1877
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">remote</span>(<span class="ruby-identifier">name</span>)
1878
+ <span class="ruby-identifier">url</span> = <span class="ruby-keyword">nil</span>
1879
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
1880
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
1881
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Fetching remote url for #{name}&quot;</span>)
1882
+ <span class="ruby-identifier">url</span> = <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1883
+ <span class="ruby-keyword">end</span>
1884
+ <span class="ruby-keyword">end</span>
1885
+ <span class="ruby-identifier">url</span>
1886
+ <span class="ruby-keyword">end</span></pre>
1887
+ </div><!-- remote-source -->
1888
+
1889
+ </div>
1890
+
1891
+
1892
+
1893
+
1894
+ </div><!-- remote-method -->
1895
+
1896
+
1897
+ <div id="method-i-revision" class="method-detail ">
1898
+
1899
+ <div class="method-heading">
1900
+ <span class="method-name">revision</span><span
1901
+ class="method-args">(default = nil)</span>
1902
+ <span class="method-click-advice">click to toggle source</span>
1903
+ </div>
1904
+
1905
+
1906
+ <div class="method-description">
1907
+
1908
+
1909
+
1910
+
1911
+
1912
+ <div class="method-source-code" id="revision-source">
1913
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 263</span>
1914
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">revision</span>(<span class="ruby-identifier">default</span> = <span class="ruby-keyword">nil</span>)
1915
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:revision</span>, <span class="ruby-identifier">default</span>).<span class="ruby-identifier">to_s</span>
1916
+ <span class="ruby-keyword">end</span></pre>
1917
+ </div><!-- revision-source -->
1918
+
1919
+ </div>
1920
+
1921
+
1922
+
1923
+
1924
+ </div><!-- revision-method -->
1925
+
1926
+
1927
+ <div id="method-i-set_config" class="method-detail ">
1928
+
1929
+ <div class="method-heading">
1930
+ <span class="method-name">set_config</span><span
1931
+ class="method-args">(name, value, options = {}) { |config, value| ... }</span>
1932
+ <span class="method-click-advice">click to toggle source</span>
1933
+ </div>
1934
+
1935
+
1936
+ <div class="method-description">
1937
+
1938
+
1939
+
1940
+
1941
+
1942
+ <div class="method-source-code" id="set_config-source">
1943
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 278</span>
1944
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_config</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">value</span>, <span class="ruby-identifier">options</span> = {})
1945
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
1946
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
1947
+
1948
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">value</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:set_config</span>, <span class="ruby-identifier">value</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
1949
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Setting project #{self.name} configuration: #{name} = #{value.inspect}&quot;</span>)
1950
+
1951
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>, <span class="ruby-identifier">value</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
1952
+ <span class="ruby-keyword">end</span>
1953
+ <span class="ruby-keyword">end</span>
1954
+ <span class="ruby-keyword">end</span></pre>
1955
+ </div><!-- set_config-source -->
1956
+
1957
+ </div>
1958
+
1959
+
1960
+
1961
+
1962
+ </div><!-- set_config-method -->
1963
+
1964
+
1965
+ <div id="method-i-set_edit_url" class="method-detail ">
1966
+
1967
+ <div class="method-heading">
1968
+ <span class="method-name">set_edit_url</span><span
1969
+ class="method-args">(url)</span>
1970
+ <span class="method-click-advice">click to toggle source</span>
1971
+ </div>
1972
+
1973
+
1974
+ <div class="method-description">
1975
+
1976
+
1977
+
1978
+
1979
+
1980
+ <div class="method-source-code" id="set_edit_url-source">
1981
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 194</span>
1982
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_edit_url</span>(<span class="ruby-identifier">url</span>)
1983
+ <span class="ruby-identifier">url</span> = <span class="ruby-identifier">url</span>.<span class="ruby-identifier">strip</span>
1984
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">url</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">url</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:set_edit_url</span>, <span class="ruby-identifier">url</span>)
1985
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Setting project #{name} edit url to #{url}&quot;</span>)
1986
+
1987
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:edit</span>, <span class="ruby-identifier">url</span>)
1988
+ <span class="ruby-identifier">set_remote</span>(<span class="ruby-value">:edit</span>, <span class="ruby-identifier">url</span>)
1989
+ <span class="ruby-keyword">end</span>
1990
+ <span class="ruby-keyword">end</span></pre>
1991
+ </div><!-- set_edit_url-source -->
1992
+
1993
+ </div>
1994
+
1995
+
1996
+
1997
+
1998
+ </div><!-- set_edit_url-method -->
1999
+
2000
+
2001
+ <div id="method-i-set_host_remote" class="method-detail ">
2002
+
2003
+ <div class="method-heading">
2004
+ <span class="method-name">set_host_remote</span><span
2005
+ class="method-args">(name, hosts, path, options = {})</span>
2006
+ <span class="method-click-advice">click to toggle source</span>
2007
+ </div>
2008
+
2009
+
2010
+ <div class="method-description">
2011
+
2012
+
2013
+
2014
+
2015
+
2016
+ <div class="method-source-code" id="set_host_remote-source">
2017
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 724</span>
2018
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_host_remote</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">hosts</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">options</span> = {})
2019
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
2020
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
2021
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>).<span class="ruby-identifier">import</span>({ <span class="ruby-value">:path</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">path</span>, <span class="ruby-value">:translate</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-keyword">false</span> })
2022
+ <span class="ruby-identifier">hosts</span> = <span class="ruby-identifier">array</span>(<span class="ruby-identifier">hosts</span>)
2023
+
2024
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">hosts</span>.<span class="ruby-identifier">empty?</span>
2025
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">hosts</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:set_host_remote</span>, <span class="ruby-identifier">hosts</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span>, <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">config</span> })
2026
+ <span class="ruby-keyword">unless</span> <span class="ruby-operator">!</span> <span class="ruby-identifier">hosts</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">hosts</span>.<span class="ruby-identifier">empty?</span>
2027
+ <span class="ruby-identifier">path</span> = <span class="ruby-identifier">config</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-value">:path</span>)
2028
+
2029
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Setting host remote #{name} for #{hosts.inspect} at #{path}&quot;</span>)
2030
+ <span class="ruby-identifier">set_remote</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">translate_url</span>(<span class="ruby-identifier">hosts</span>.<span class="ruby-identifier">shift</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>), <span class="ruby-identifier">config</span>)
2031
+
2032
+ <span class="ruby-identifier">hosts</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">host</span><span class="ruby-operator">|</span>
2033
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Adding remote url to #{host}&quot;</span>)
2034
+ <span class="ruby-identifier">add_remote_url</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">translate_url</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">config</span>.<span class="ruby-identifier">export</span>), <span class="ruby-identifier">config</span>)
2035
+ <span class="ruby-keyword">end</span>
2036
+ <span class="ruby-keyword">end</span>
2037
+ <span class="ruby-keyword">end</span>
2038
+ <span class="ruby-keyword">end</span>
2039
+ <span class="ruby-keyword">end</span>
2040
+ <span class="ruby-keyword">else</span>
2041
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{self.name} does not meet the criteria for persistence and can not have remotes&quot;</span>)
2042
+ <span class="ruby-keyword">end</span>
2043
+ <span class="ruby-keyword">end</span></pre>
2044
+ </div><!-- set_host_remote-source -->
2045
+
2046
+ </div>
2047
+
2048
+
2049
+
2050
+
2051
+ </div><!-- set_host_remote-method -->
2052
+
2053
+
2054
+ <div id="method-i-set_location" class="method-detail ">
2055
+
2056
+ <div class="method-heading">
2057
+ <span class="method-name">set_location</span><span
2058
+ class="method-args">(directory) { || ... }</span>
2059
+ <span class="method-click-advice">click to toggle source</span>
2060
+ </div>
2061
+
2062
+
2063
+ <div class="method-description">
2064
+
2065
+
2066
+
2067
+
2068
+
2069
+ <div class="method-source-code" id="set_location-source">
2070
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 241</span>
2071
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_location</span>(<span class="ruby-identifier">directory</span>)
2072
+ <span class="ruby-identifier">set_directory</span>(<span class="ruby-identifier">directory</span>)
2073
+
2074
+ <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2075
+
2076
+ <span class="ruby-identifier">init_project</span>
2077
+ <span class="ruby-keyword">end</span></pre>
2078
+ </div><!-- set_location-source -->
2079
+
2080
+ </div>
2081
+
2082
+
2083
+
2084
+
2085
+ </div><!-- set_location-method -->
2086
+
2087
+
2088
+ <div id="method-i-set_remote" class="method-detail ">
2089
+
2090
+ <div class="method-heading">
2091
+ <span class="method-name">set_remote</span><span
2092
+ class="method-args">(name, url, options = {}) { |url| ... }</span>
2093
+ <span class="method-click-advice">click to toggle source</span>
2094
+ </div>
2095
+
2096
+
2097
+ <div class="method-description">
2098
+
2099
+
2100
+
2101
+
2102
+
2103
+ <div class="method-source-code" id="set_remote-source">
2104
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 682</span>
2105
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_remote</span>(<span class="ruby-identifier">name</span>, <span class="ruby-identifier">url</span>, <span class="ruby-identifier">options</span> = {})
2106
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
2107
+
2108
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
2109
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
2110
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">url</span>.<span class="ruby-identifier">strip</span>.<span class="ruby-identifier">empty?</span>
2111
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">url</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:set_remote</span>, <span class="ruby-identifier">url</span>, { <span class="ruby-value">:name</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">name</span> })
2112
+ <span class="ruby-identifier">delete_remote</span>(<span class="ruby-identifier">name</span>)
2113
+
2114
+ <span class="ruby-identifier">url</span> = <span class="ruby-identifier">translate_edit_url</span>(<span class="ruby-identifier">url</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">name</span> <span class="ruby-operator">==</span> <span class="ruby-value">:edit</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">config</span>.<span class="ruby-identifier">get</span>(<span class="ruby-value">:translate</span>, <span class="ruby-keyword">true</span>)
2115
+
2116
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Setting project remote #{name} to #{url}&quot;</span>)
2117
+ <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">url</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2118
+ <span class="ruby-keyword">end</span>
2119
+ <span class="ruby-keyword">end</span>
2120
+ <span class="ruby-keyword">end</span>
2121
+ <span class="ruby-keyword">else</span>
2122
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{self.name} does not meet the criteria for persistence and can not have remotes&quot;</span>)
2123
+ <span class="ruby-keyword">end</span>
2124
+ <span class="ruby-keyword">end</span></pre>
2125
+ </div><!-- set_remote-source -->
2126
+
2127
+ </div>
2128
+
2129
+
2130
+
2131
+
2132
+ </div><!-- set_remote-method -->
2133
+
2134
+
2135
+ <div id="method-i-set_url" class="method-detail ">
2136
+
2137
+ <div class="method-heading">
2138
+ <span class="method-name">set_url</span><span
2139
+ class="method-args">(url)</span>
2140
+ <span class="method-click-advice">click to toggle source</span>
2141
+ </div>
2142
+
2143
+
2144
+ <div class="method-description">
2145
+
2146
+
2147
+
2148
+
2149
+
2150
+ <div class="method-source-code" id="set_url-source">
2151
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 177</span>
2152
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_url</span>(<span class="ruby-identifier">url</span>)
2153
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">url</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">url</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:set_url</span>, <span class="ruby-identifier">url</span>.<span class="ruby-identifier">strip</span>)
2154
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Setting project #{name} url to #{url}&quot;</span>)
2155
+
2156
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:url</span>, <span class="ruby-identifier">url</span>)
2157
+ <span class="ruby-identifier">set_remote</span>(<span class="ruby-value">:origin</span>, <span class="ruby-identifier">url</span>)
2158
+ <span class="ruby-keyword">end</span>
2159
+ <span class="ruby-keyword">end</span></pre>
2160
+ </div><!-- set_url-source -->
2161
+
2162
+ </div>
2163
+
2164
+
2165
+
2166
+
2167
+ </div><!-- set_url-method -->
2168
+
2169
+
2170
+ <div id="method-i-subproject-3F" class="method-detail ">
2171
+
2172
+ <div class="method-heading">
2173
+ <span class="method-name">subproject?</span><span
2174
+ class="method-args">(path)</span>
2175
+ <span class="method-click-advice">click to toggle source</span>
2176
+ </div>
2177
+
2178
+
2179
+ <div class="method-description">
2180
+
2181
+
2182
+
2183
+
2184
+
2185
+ <div class="method-source-code" id="subproject-3F-source">
2186
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 113</span>
2187
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">subproject?</span>(<span class="ruby-identifier">path</span>)
2188
+ <span class="ruby-keyword">false</span>
2189
+ <span class="ruby-keyword">end</span></pre>
2190
+ </div><!-- subproject-3F-source -->
2191
+
2192
+ </div>
2193
+
2194
+
2195
+
2196
+
2197
+ </div><!-- subproject-3F-method -->
2198
+
2199
+
2200
+ <div id="method-i-subprojects" class="method-detail ">
2201
+
2202
+ <div class="method-heading">
2203
+ <span class="method-name">subprojects</span><span
2204
+ class="method-args">(default = nil)</span>
2205
+ <span class="method-click-advice">click to toggle source</span>
2206
+ </div>
2207
+
2208
+
2209
+ <div class="method-description">
2210
+
2211
+
2212
+
2213
+
2214
+
2215
+ <div class="method-source-code" id="subprojects-source">
2216
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 257</span>
2217
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">subprojects</span>(<span class="ruby-identifier">default</span> = <span class="ruby-keyword">nil</span>)
2218
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:subprojects</span>, <span class="ruby-identifier">default</span>)
2219
+ <span class="ruby-keyword">end</span></pre>
2220
+ </div><!-- subprojects-source -->
2221
+
2222
+ </div>
2223
+
2224
+
2225
+
2226
+
2227
+ </div><!-- subprojects-method -->
2228
+
2229
+
2230
+ <div id="method-i-top-3F" class="method-detail ">
2231
+
2232
+ <div class="method-heading">
2233
+ <span class="method-name">top?</span><span
2234
+ class="method-args">(path)</span>
2235
+ <span class="method-click-advice">click to toggle source</span>
2236
+ </div>
2237
+
2238
+
2239
+ <div class="method-description">
2240
+
2241
+
2242
+
2243
+
2244
+
2245
+ <div class="method-source-code" id="top-3F-source">
2246
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 106</span>
2247
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">top?</span>(<span class="ruby-identifier">path</span>)
2248
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">path</span>)
2249
+ <span class="ruby-keyword">false</span>
2250
+ <span class="ruby-keyword">end</span></pre>
2251
+ </div><!-- top-3F-source -->
2252
+
2253
+ </div>
2254
+
2255
+
2256
+
2257
+
2258
+ </div><!-- top-3F-method -->
2259
+
2260
+
2261
+ <div id="method-i-translate_edit_url" class="method-detail ">
2262
+
2263
+ <div class="method-heading">
2264
+ <span class="method-name">translate_edit_url</span><span
2265
+ class="method-args">(url, options = {}) { |config| ... }</span>
2266
+ <span class="method-click-advice">click to toggle source</span>
2267
+ </div>
2268
+
2269
+
2270
+ <div class="method-description">
2271
+
2272
+
2273
+
2274
+
2275
+
2276
+ <div class="method-source-code" id="translate_edit_url-source">
2277
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 957</span>
2278
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">translate_edit_url</span>(<span class="ruby-identifier">url</span>, <span class="ruby-identifier">options</span> = {})
2279
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
2280
+
2281
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2282
+ <span class="ruby-identifier">temp_url</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>)
2283
+ <span class="ruby-identifier">url</span> = <span class="ruby-identifier">temp_url</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">temp_url</span>
2284
+ <span class="ruby-keyword">end</span>
2285
+ <span class="ruby-identifier">url</span>
2286
+ <span class="ruby-keyword">end</span></pre>
2287
+ </div><!-- translate_edit_url-source -->
2288
+
2289
+ </div>
2290
+
2291
+
2292
+
2293
+
2294
+ </div><!-- translate_edit_url-method -->
2295
+
2296
+
2297
+ <div id="method-i-translate_reference" class="method-detail ">
2298
+
2299
+ <div class="method-heading">
2300
+ <span class="method-name">translate_reference</span><span
2301
+ class="method-args">(reference, editable = false)</span>
2302
+ <span class="method-click-advice">click to toggle source</span>
2303
+ </div>
2304
+
2305
+
2306
+ <div class="method-description">
2307
+
2308
+
2309
+
2310
+
2311
+
2312
+ <div class="method-source-code" id="translate_reference-source">
2313
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 938</span>
2314
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">reference</span>, <span class="ruby-identifier">editable</span> = <span class="ruby-keyword">false</span>)
2315
+ <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">translate_reference</span>(<span class="ruby-identifier">reference</span>, <span class="ruby-identifier">editable</span>)
2316
+ <span class="ruby-keyword">end</span></pre>
2317
+ </div><!-- translate_reference-source -->
2318
+
2319
+ </div>
2320
+
2321
+
2322
+
2323
+
2324
+ </div><!-- translate_reference-method -->
2325
+
2326
+
2327
+ <div id="method-i-translate_url" class="method-detail ">
2328
+
2329
+ <div class="method-heading">
2330
+ <span class="method-name">translate_url</span><span
2331
+ class="method-args">(host, path, options = {}) { |config| ... }</span>
2332
+ <span class="method-click-advice">click to toggle source</span>
2333
+ </div>
2334
+
2335
+
2336
+ <div class="method-description">
2337
+
2338
+
2339
+
2340
+
2341
+
2342
+ <div class="method-source-code" id="translate_url-source">
2343
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 944</span>
2344
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">translate_url</span>(<span class="ruby-identifier">host</span>, <span class="ruby-identifier">path</span>, <span class="ruby-identifier">options</span> = {})
2345
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
2346
+ <span class="ruby-identifier">url</span> = <span class="ruby-node">&quot;#{host}/#{path}&quot;</span>
2347
+
2348
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2349
+ <span class="ruby-identifier">temp_url</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>)
2350
+ <span class="ruby-identifier">url</span> = <span class="ruby-identifier">temp_url</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">temp_url</span>
2351
+ <span class="ruby-keyword">end</span>
2352
+ <span class="ruby-identifier">url</span>
2353
+ <span class="ruby-keyword">end</span></pre>
2354
+ </div><!-- translate_url-source -->
2355
+
2356
+ </div>
2357
+
2358
+
2359
+
2360
+
2361
+ </div><!-- translate_url-method -->
2362
+
2363
+
2364
+ <div id="method-i-url" class="method-detail ">
2365
+
2366
+ <div class="method-heading">
2367
+ <span class="method-name">url</span><span
2368
+ class="method-args">(default = nil)</span>
2369
+ <span class="method-click-advice">click to toggle source</span>
2370
+ </div>
2371
+
2372
+
2373
+ <div class="method-description">
2374
+
2375
+
2376
+
2377
+
2378
+
2379
+ <div class="method-source-code" id="url-source">
2380
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 171</span>
2381
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">url</span>(<span class="ruby-identifier">default</span> = <span class="ruby-keyword">nil</span>)
2382
+ <span class="ruby-identifier">get</span>(<span class="ruby-value">:url</span>, <span class="ruby-identifier">default</span>)
2383
+ <span class="ruby-keyword">end</span></pre>
2384
+ </div><!-- url-source -->
2385
+
2386
+ </div>
2387
+
2388
+
2389
+
2390
+
2391
+ </div><!-- url-method -->
2392
+
2393
+
2394
+ </section><!-- public-instance-method-details -->
2395
+
2396
+ <section id="protected-instance-5Buntitled-5D-method-details" class="method-section section">
2397
+ <h3 class="section-header">Protected Instance Methods</h3>
2398
+
2399
+
2400
+ <div id="method-i-init_auth" class="method-detail ">
2401
+
2402
+ <div class="method-heading">
2403
+ <span class="method-name">init_auth</span><span
2404
+ class="method-args">() { || ... }</span>
2405
+ <span class="method-click-advice">click to toggle source</span>
2406
+ </div>
2407
+
2408
+
2409
+ <div class="method-description">
2410
+
2411
+
2412
+
2413
+
2414
+
2415
+ <div class="method-source-code" id="init_auth-source">
2416
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 333</span>
2417
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">init_auth</span>
2418
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
2419
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
2420
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Initializing project #{name} authorization&quot;</span>)
2421
+ <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2422
+ <span class="ruby-keyword">end</span>
2423
+ <span class="ruby-keyword">else</span>
2424
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence can not be authorized&quot;</span>)
2425
+ <span class="ruby-keyword">end</span>
2426
+ <span class="ruby-keyword">end</span></pre>
2427
+ </div><!-- init_auth-source -->
2428
+
2429
+ </div>
2430
+
2431
+
2432
+
2433
+
2434
+ </div><!-- init_auth-method -->
2435
+
2436
+
2437
+ <div id="method-i-init_cache" class="method-detail ">
2438
+
2439
+ <div class="method-heading">
2440
+ <span class="method-name">init_cache</span><span
2441
+ class="method-args">()</span>
2442
+ <span class="method-click-advice">click to toggle source</span>
2443
+ </div>
2444
+
2445
+
2446
+ <div class="method-description">
2447
+
2448
+
2449
+
2450
+
2451
+
2452
+ <div class="method-source-code" id="init_cache-source">
2453
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 326</span>
2454
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">init_cache</span>
2455
+ <span class="ruby-comment"># Override in providers if needed</span>
2456
+ <span class="ruby-keyword">end</span></pre>
2457
+ </div><!-- init_cache-source -->
2458
+
2459
+ </div>
2460
+
2461
+
2462
+
2463
+
2464
+ </div><!-- init_cache-method -->
2465
+
2466
+
2467
+ <div id="method-i-init_parent" class="method-detail ">
2468
+
2469
+ <div class="method-heading">
2470
+ <span class="method-name">init_parent</span><span
2471
+ class="method-args">()</span>
2472
+ <span class="method-click-advice">click to toggle source</span>
2473
+ </div>
2474
+
2475
+
2476
+ <div class="method-description">
2477
+
2478
+
2479
+
2480
+
2481
+
2482
+ <div class="method-source-code" id="init_parent-source">
2483
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 347</span>
2484
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">init_parent</span>
2485
+ <span class="ruby-identifier">delete</span>(<span class="ruby-value">:parent</span>)
2486
+
2487
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Initializing project #{name} parents&quot;</span>)
2488
+
2489
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">top?</span>(<span class="ruby-identifier">directory</span>)
2490
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Project #{name} has no parents to initialize&quot;</span>)
2491
+ <span class="ruby-keyword">else</span>
2492
+ <span class="ruby-identifier">search_dir</span> = <span class="ruby-identifier">directory</span>
2493
+ <span class="ruby-identifier">last_dir</span> = <span class="ruby-keyword">nil</span>
2494
+
2495
+ <span class="ruby-keyword">while</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>((<span class="ruby-identifier">search_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-string">&#39;..&#39;</span>, <span class="ruby-identifier">search_dir</span>)))
2496
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Scanning directory #{search_dir} for parent project&quot;</span>)
2497
+
2498
+ <span class="ruby-keyword">unless</span> <span class="ruby-identifier">last_dir</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">last_dir</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">search_dir</span>
2499
+ <span class="ruby-keyword">break</span>
2500
+ <span class="ruby-keyword">end</span>
2501
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">project_directory?</span>(<span class="ruby-identifier">search_dir</span>)
2502
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Directory #{search_dir} is a valid parent for this #{plugin_provider} project&quot;</span>)
2503
+
2504
+ <span class="ruby-identifier">project</span> = <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">search_dir</span>, <span class="ruby-identifier">plugin_provider</span>)
2505
+
2506
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:init_parent</span>, { <span class="ruby-value">:parent</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">project</span> })
2507
+
2508
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:parent</span>, <span class="ruby-identifier">project</span>)
2509
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Setting parent to #{parent.inspect}&quot;</span>)
2510
+ <span class="ruby-keyword">break</span>;
2511
+ <span class="ruby-keyword">end</span>
2512
+ <span class="ruby-identifier">last_dir</span> = <span class="ruby-identifier">search_dir</span>
2513
+ <span class="ruby-keyword">end</span>
2514
+ <span class="ruby-keyword">end</span>
2515
+ <span class="ruby-keyword">end</span></pre>
2516
+ </div><!-- init_parent-source -->
2517
+
2518
+ </div>
2519
+
2520
+
2521
+
2522
+
2523
+ </div><!-- init_parent-method -->
2524
+
2525
+
2526
+ <div id="method-i-init_remotes" class="method-detail ">
2527
+
2528
+ <div class="method-heading">
2529
+ <span class="method-name">init_remotes</span><span
2530
+ class="method-args">() { || ... }</span>
2531
+ <span class="method-click-advice">click to toggle source</span>
2532
+ </div>
2533
+
2534
+
2535
+ <div class="method-description">
2536
+
2537
+
2538
+
2539
+
2540
+
2541
+ <div class="method-source-code" id="init_remotes-source">
2542
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 648</span>
2543
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">init_remotes</span>
2544
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
2545
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
2546
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Initializing project #{name} remotes&quot;</span>)
2547
+
2548
+ <span class="ruby-identifier">origin_url</span> = <span class="ruby-identifier">url</span>
2549
+ <span class="ruby-identifier">origin_url</span> = <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2550
+
2551
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">origin_url</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">origin_url</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:init_remotes</span>, <span class="ruby-identifier">origin_url</span>).<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
2552
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:url</span>, <span class="ruby-identifier">origin_url</span>)
2553
+ <span class="ruby-identifier">set_edit_url</span>(<span class="ruby-identifier">translate_edit_url</span>(<span class="ruby-identifier">url</span>))
2554
+ <span class="ruby-keyword">end</span>
2555
+ <span class="ruby-keyword">end</span>
2556
+ <span class="ruby-keyword">else</span>
2557
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not have remotes&quot;</span>)
2558
+ <span class="ruby-keyword">end</span>
2559
+ <span class="ruby-keyword">end</span></pre>
2560
+ </div><!-- init_remotes-source -->
2561
+
2562
+ </div>
2563
+
2564
+
2565
+
2566
+
2567
+ </div><!-- init_remotes-method -->
2568
+
2569
+
2570
+ <div id="method-i-load_revision" class="method-detail ">
2571
+
2572
+ <div class="method-heading">
2573
+ <span class="method-name">load_revision</span><span
2574
+ class="method-args">() { || ... }</span>
2575
+ <span class="method-click-advice">click to toggle source</span>
2576
+ </div>
2577
+
2578
+
2579
+ <div class="method-description">
2580
+
2581
+
2582
+
2583
+
2584
+
2585
+ <div class="method-source-code" id="load_revision-source">
2586
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 383</span>
2587
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">load_revision</span>
2588
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
2589
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
2590
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Loading project #{plugin_name} revision&quot;</span>)
2591
+
2592
+ <span class="ruby-identifier">specified_revision</span> = <span class="ruby-identifier">get</span>(<span class="ruby-value">:revision</span>, <span class="ruby-keyword">nil</span>)
2593
+
2594
+ <span class="ruby-identifier">current_revision</span> = <span class="ruby-identifier">revision</span>.<span class="ruby-identifier">to_s</span>
2595
+ <span class="ruby-identifier">current_revision</span> = <span class="ruby-keyword">yield</span> <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2596
+
2597
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">current_revision</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">extended_revision</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:load_revision</span>, <span class="ruby-identifier">specified_revision</span>).<span class="ruby-identifier">to_s</span>.<span class="ruby-identifier">strip</span>
2598
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extended_revision</span>.<span class="ruby-identifier">empty?</span>
2599
+ <span class="ruby-identifier">extended_revision</span> = <span class="ruby-identifier">current_revision</span>
2600
+ <span class="ruby-keyword">end</span>
2601
+
2602
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:revision</span>, <span class="ruby-identifier">extended_revision</span>)
2603
+ <span class="ruby-identifier">checkout</span>(<span class="ruby-identifier">extended_revision</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">current_revision</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">extended_revision</span>
2604
+
2605
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Loaded revision: #{revision}&quot;</span>)
2606
+
2607
+ <span class="ruby-identifier">load_subprojects</span>
2608
+ <span class="ruby-keyword">end</span>
2609
+ <span class="ruby-keyword">end</span>
2610
+ <span class="ruby-keyword">else</span>
2611
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and has no revision&quot;</span>)
2612
+ <span class="ruby-keyword">end</span>
2613
+ <span class="ruby-keyword">end</span></pre>
2614
+ </div><!-- load_revision-source -->
2615
+
2616
+ </div>
2617
+
2618
+
2619
+
2620
+
2621
+ </div><!-- load_revision-method -->
2622
+
2623
+
2624
+ <div id="method-i-load_subprojects" class="method-detail ">
2625
+
2626
+ <div class="method-heading">
2627
+ <span class="method-name">load_subprojects</span><span
2628
+ class="method-args">(options = {}) { |project_path, data| ... }</span>
2629
+ <span class="method-click-advice">click to toggle source</span>
2630
+ </div>
2631
+
2632
+
2633
+ <div class="method-description">
2634
+
2635
+
2636
+
2637
+
2638
+
2639
+ <div class="method-source-code" id="load_subprojects-source">
2640
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 499</span>
2641
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">load_subprojects</span>(<span class="ruby-identifier">options</span> = {})
2642
+ <span class="ruby-identifier">subprojects</span> = {}
2643
+
2644
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
2645
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
2646
+
2647
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Loading sub projects for project #{name}&quot;</span>)
2648
+
2649
+ <span class="ruby-identifier">subproject_config</span>(<span class="ruby-identifier">config</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-identifier">data</span><span class="ruby-operator">|</span>
2650
+ <span class="ruby-identifier">project_path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">directory</span>, <span class="ruby-identifier">path</span>)
2651
+
2652
+ <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">project_path</span>)
2653
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Checking if project path #{project_path} is a valid sub project&quot;</span>)
2654
+
2655
+ <span class="ruby-identifier">add_project</span> = <span class="ruby-keyword">true</span>
2656
+ <span class="ruby-identifier">add_project</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">project_path</span>, <span class="ruby-identifier">data</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2657
+
2658
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">add_project</span>
2659
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Directory #{project_path} is a valid sub project for this #{plugin_provider} project&quot;</span>)
2660
+
2661
+ <span class="ruby-identifier">project</span> = <span class="ruby-identifier">myself</span>.<span class="ruby-identifier">class</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">project_path</span>, <span class="ruby-identifier">plugin_provider</span>)
2662
+
2663
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:load_project</span>, { <span class="ruby-value">:project</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">project</span> })
2664
+ <span class="ruby-identifier">subprojects</span>[<span class="ruby-identifier">path</span>] = <span class="ruby-identifier">project</span>
2665
+ <span class="ruby-keyword">else</span>
2666
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Directory #{project_path} is not a valid sub project for this #{plugin_provider} project&quot;</span>)
2667
+ <span class="ruby-keyword">end</span>
2668
+ <span class="ruby-keyword">else</span>
2669
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Sub project configuration points to a location that is not a directory: #{project_path}&quot;</span>)
2670
+ <span class="ruby-keyword">end</span>
2671
+ <span class="ruby-keyword">end</span>
2672
+ <span class="ruby-keyword">else</span>
2673
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not have sub projects&quot;</span>)
2674
+ <span class="ruby-keyword">end</span>
2675
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:subprojects</span>, <span class="ruby-identifier">subprojects</span>)
2676
+ <span class="ruby-keyword">end</span></pre>
2677
+ </div><!-- load_subprojects-source -->
2678
+
2679
+ </div>
2680
+
2681
+
2682
+
2683
+
2684
+ </div><!-- load_subprojects-method -->
2685
+
2686
+
2687
+ <div id="method-i-project_directory-3F" class="method-detail ">
2688
+
2689
+ <div class="method-heading">
2690
+ <span class="method-name">project_directory?</span><span
2691
+ class="method-args">(path, require_top_level = false)</span>
2692
+ <span class="method-click-advice">click to toggle source</span>
2693
+ </div>
2694
+
2695
+
2696
+ <div class="method-description">
2697
+
2698
+
2699
+
2700
+
2701
+
2702
+ <div class="method-source-code" id="project_directory-3F-source">
2703
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 119</span>
2704
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">project_directory?</span>(<span class="ruby-identifier">path</span>, <span class="ruby-identifier">require_top_level</span> = <span class="ruby-keyword">false</span>)
2705
+ <span class="ruby-identifier">path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-identifier">path</span>)
2706
+ <span class="ruby-keyword">return</span> <span class="ruby-keyword">true</span> <span class="ruby-keyword">if</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">directory?</span>(<span class="ruby-identifier">path</span>) <span class="ruby-operator">&amp;&amp;</span> (<span class="ruby-operator">!</span> <span class="ruby-identifier">require_top_level</span> <span class="ruby-operator">||</span> <span class="ruby-identifier">top?</span>(<span class="ruby-identifier">path</span>))
2707
+ <span class="ruby-keyword">false</span>
2708
+ <span class="ruby-keyword">end</span></pre>
2709
+ </div><!-- project_directory-3F-source -->
2710
+
2711
+ </div>
2712
+
2713
+
2714
+
2715
+
2716
+ </div><!-- project_directory-3F-method -->
2717
+
2718
+
2719
+ <div id="method-i-set_directory" class="method-detail ">
2720
+
2721
+ <div class="method-heading">
2722
+ <span class="method-name">set_directory</span><span
2723
+ class="method-args">(directory)</span>
2724
+ <span class="method-click-advice">click to toggle source</span>
2725
+ </div>
2726
+
2727
+
2728
+ <div class="method-description">
2729
+
2730
+
2731
+
2732
+
2733
+
2734
+ <div class="method-source-code" id="set_directory-source">
2735
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 221</span>
2736
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">set_directory</span>(<span class="ruby-identifier">directory</span>)
2737
+ <span class="ruby-keyword">if</span> <span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Data</span>.<span class="ruby-identifier">empty?</span>(<span class="ruby-identifier">directory</span>)
2738
+ <span class="ruby-identifier">current_directory</span> = <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">pwd</span>
2739
+ <span class="ruby-keyword">else</span>
2740
+ <span class="ruby-identifier">current_directory</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>(<span class="ruby-constant">Util</span><span class="ruby-operator">::</span><span class="ruby-constant">Disk</span>.<span class="ruby-identifier">filename</span>(<span class="ruby-identifier">directory</span>))
2741
+ <span class="ruby-keyword">end</span>
2742
+
2743
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">current_directory</span> = <span class="ruby-identifier">extension_set</span>(<span class="ruby-value">:set_directory</span>, <span class="ruby-identifier">current_directory</span>)
2744
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Setting project #{name} directory to #{current_directory}&quot;</span>)
2745
+
2746
+ <span class="ruby-identifier">@@projects</span>.<span class="ruby-identifier">delete</span>(<span class="ruby-identifier">get</span>(<span class="ruby-value">:directory</span>)) <span class="ruby-keyword">if</span> <span class="ruby-identifier">get</span>(<span class="ruby-value">:directory</span>)
2747
+ <span class="ruby-identifier">@@projects</span>[<span class="ruby-identifier">current_directory</span>] = <span class="ruby-identifier">myself</span>
2748
+
2749
+ <span class="ruby-identifier">set</span>(<span class="ruby-value">:directory</span>, <span class="ruby-identifier">current_directory</span>)
2750
+ <span class="ruby-keyword">end</span>
2751
+ <span class="ruby-keyword">end</span></pre>
2752
+ </div><!-- set_directory-source -->
2753
+
2754
+ </div>
2755
+
2756
+
2757
+
2758
+
2759
+ </div><!-- set_directory-method -->
2760
+
2761
+
2762
+ <div id="method-i-subproject_config" class="method-detail ">
2763
+
2764
+ <div class="method-heading">
2765
+ <span class="method-name">subproject_config</span><span
2766
+ class="method-args">(options = {}) { |config| ... }</span>
2767
+ <span class="method-click-advice">click to toggle source</span>
2768
+ </div>
2769
+
2770
+
2771
+ <div class="method-description">
2772
+
2773
+
2774
+
2775
+
2776
+
2777
+ <div class="method-source-code" id="subproject_config-source">
2778
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 306</span>
2779
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">subproject_config</span>(<span class="ruby-identifier">options</span> = {})
2780
+ <span class="ruby-identifier">result</span> = {}
2781
+
2782
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
2783
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
2784
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
2785
+ <span class="ruby-identifier">result</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2786
+
2787
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:subproject_config</span>, { <span class="ruby-value">:config</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">result</span> })
2788
+
2789
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">debug</span>(<span class="ruby-node">&quot;Subproject configuration: #{result.inspect}&quot;</span>)
2790
+ <span class="ruby-keyword">end</span>
2791
+ <span class="ruby-keyword">end</span>
2792
+ <span class="ruby-identifier">result</span>
2793
+ <span class="ruby-keyword">end</span></pre>
2794
+ </div><!-- subproject_config-source -->
2795
+
2796
+ </div>
2797
+
2798
+
2799
+
2800
+
2801
+ </div><!-- subproject_config-method -->
2802
+
2803
+
2804
+ <div id="method-i-update_subprojects" class="method-detail ">
2805
+
2806
+ <div class="method-heading">
2807
+ <span class="method-name">update_subprojects</span><span
2808
+ class="method-args">(options = {}) { |config| ... }</span>
2809
+ <span class="method-click-advice">click to toggle source</span>
2810
+ </div>
2811
+
2812
+
2813
+ <div class="method-description">
2814
+
2815
+
2816
+
2817
+
2818
+
2819
+ <div class="method-source-code" id="update_subprojects-source">
2820
+ <pre><span class="ruby-comment"># File lib/core/plugin/project.rb, line 603</span>
2821
+ <span class="ruby-keyword">def</span> <span class="ruby-identifier">update_subprojects</span>(<span class="ruby-identifier">options</span> = {})
2822
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">can_persist?</span>
2823
+ <span class="ruby-identifier">localize</span> <span class="ruby-keyword">do</span>
2824
+ <span class="ruby-identifier">config</span> = <span class="ruby-constant">Config</span>.<span class="ruby-identifier">ensure</span>(<span class="ruby-identifier">options</span>)
2825
+
2826
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">extension_check</span>(<span class="ruby-value">:update_projects</span>)
2827
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">info</span>(<span class="ruby-node">&quot;Updating sub projects in project #{name}&quot;</span>)
2828
+
2829
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">false</span>
2830
+ <span class="ruby-identifier">success</span> = <span class="ruby-keyword">yield</span>(<span class="ruby-identifier">config</span>) <span class="ruby-keyword">if</span> <span class="ruby-identifier">block_given?</span>
2831
+
2832
+ <span class="ruby-keyword">if</span> <span class="ruby-identifier">success</span>
2833
+ <span class="ruby-identifier">extension</span>(<span class="ruby-value">:update_projects_success</span>)
2834
+ <span class="ruby-identifier">load_subprojects</span>
2835
+ <span class="ruby-keyword">end</span>
2836
+ <span class="ruby-keyword">end</span>
2837
+ <span class="ruby-keyword">end</span>
2838
+ <span class="ruby-keyword">else</span>
2839
+ <span class="ruby-identifier">logger</span>.<span class="ruby-identifier">warn</span>(<span class="ruby-node">&quot;Project #{name} does not meet the criteria for persistence and can not have sub projects&quot;</span>)
2840
+ <span class="ruby-keyword">end</span>
2841
+ <span class="ruby-keyword">end</span></pre>
2842
+ </div><!-- update_subprojects-source -->
2843
+
2844
+ </div>
2845
+
2846
+
2847
+
2848
+
2849
+ </div><!-- update_subprojects-method -->
2850
+
2851
+
2852
+ </section><!-- protected-instance-method-details -->
2853
+
2854
+ </section><!-- 5Buntitled-5D -->
2855
+
2856
+ </div><!-- documentation -->
2857
+
2858
+
2859
+ <footer id="validator-badges">
2860
+ <p><a href="http://validator.w3.org/check/referer">[Validate]</a>
2861
+ <p>Generated by <a href="https://github.com/rdoc/rdoc">RDoc</a> 3.12.2.
2862
+ <p>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish Rdoc Generator</a> 3.
2863
+ </footer>
2864
+