nucleon 0.2.0 → 0.2.1

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