sprout 1.0.11.pre → 1.0.13.pre

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of sprout might be problematic. Click here for more details.

Files changed (149) hide show
  1. data/lib/sprout/executable.rb +37 -10
  2. data/lib/sprout/generator/base.rb +17 -0
  3. data/lib/sprout/ruby_feature.rb +1 -1
  4. data/lib/sprout/version.rb +1 -1
  5. data/rdoc/<.html +274 -0
  6. data/rdoc/Dir.html +387 -0
  7. data/rdoc/Object.html +344 -0
  8. data/rdoc/Sprout.html +440 -0
  9. data/rdoc/Sprout/ArchiveUnpacker.html +1045 -0
  10. data/rdoc/Sprout/Base.html +283 -0
  11. data/rdoc/Sprout/Base/ClassMethods.html +474 -0
  12. data/rdoc/Sprout/Concern.html +415 -0
  13. data/rdoc/Sprout/Errors.html +324 -0
  14. data/rdoc/Sprout/Errors/ArchiveUnpackerError.html +284 -0
  15. data/rdoc/Sprout/Errors/DestinationExistsError.html +286 -0
  16. data/rdoc/Sprout/Errors/DuplicateMemberError.html +284 -0
  17. data/rdoc/Sprout/Errors/ExecutableError.html +285 -0
  18. data/rdoc/Sprout/Errors/ExecutableRegistrationError.html +284 -0
  19. data/rdoc/Sprout/Errors/ExecutionError.html +284 -0
  20. data/rdoc/Sprout/Errors/GeneratorError.html +284 -0
  21. data/rdoc/Sprout/Errors/InvalidArgumentError.html +284 -0
  22. data/rdoc/Sprout/Errors/LoadError.html +284 -0
  23. data/rdoc/Sprout/Errors/MissingArgumentError.html +284 -0
  24. data/rdoc/Sprout/Errors/MissingExecutableError.html +284 -0
  25. data/rdoc/Sprout/Errors/MissingGeneratorError.html +285 -0
  26. data/rdoc/Sprout/Errors/MissingTemplateError.html +285 -0
  27. data/rdoc/Sprout/Errors/ProcessRunnerError.html +284 -0
  28. data/rdoc/Sprout/Errors/RemoteFileLoaderError.html +284 -0
  29. data/rdoc/Sprout/Errors/SproutError.html +284 -0
  30. data/rdoc/Sprout/Errors/UnknownArchiveType.html +285 -0
  31. data/rdoc/Sprout/Errors/UsageError.html +284 -0
  32. data/rdoc/Sprout/Errors/ValidationError.html +284 -0
  33. data/rdoc/Sprout/Errors/VersionRequirementNotMetError.html +284 -0
  34. data/rdoc/Sprout/Executable.html +549 -0
  35. data/rdoc/Sprout/Executable/Boolean.html +445 -0
  36. data/rdoc/Sprout/Executable/ClassMethods.html +713 -0
  37. data/rdoc/Sprout/Executable/CollectionParam.html +501 -0
  38. data/rdoc/Sprout/Executable/FileParam.html +512 -0
  39. data/rdoc/Sprout/Executable/Files.html +385 -0
  40. data/rdoc/Sprout/Executable/InstanceMethods.html +1597 -0
  41. data/rdoc/Sprout/Executable/Number.html +284 -0
  42. data/rdoc/Sprout/Executable/Param.html +1660 -0
  43. data/rdoc/Sprout/Executable/ParameterFactory.html +345 -0
  44. data/rdoc/Sprout/Executable/Path.html +339 -0
  45. data/rdoc/Sprout/Executable/Paths.html +339 -0
  46. data/rdoc/Sprout/Executable/StringParam.html +333 -0
  47. data/rdoc/Sprout/Executable/Strings.html +295 -0
  48. data/rdoc/Sprout/Executable/Url.html +284 -0
  49. data/rdoc/Sprout/Executable/Urls.html +284 -0
  50. data/rdoc/Sprout/FileTarget.html +660 -0
  51. data/rdoc/Sprout/Generator.html +643 -0
  52. data/rdoc/Sprout/Generator/Base.html +1143 -0
  53. data/rdoc/Sprout/Generator/Command.html +604 -0
  54. data/rdoc/Sprout/Generator/DirectoryManifest.html +561 -0
  55. data/rdoc/Sprout/Generator/FileManifest.html +545 -0
  56. data/rdoc/Sprout/Generator/Manifest.html +387 -0
  57. data/rdoc/Sprout/Generator/TemplateManifest.html +331 -0
  58. data/rdoc/Sprout/GeneratorGenerator.html +358 -0
  59. data/rdoc/Sprout/Library.html +646 -0
  60. data/rdoc/Sprout/LibraryGenerator.html +368 -0
  61. data/rdoc/Sprout/Log.html +281 -0
  62. data/rdoc/Sprout/Platform.html +610 -0
  63. data/rdoc/Sprout/ProcessRunner.html +1145 -0
  64. data/rdoc/Sprout/ProgressBar.html +281 -0
  65. data/rdoc/Sprout/ProgressBarImpl.html +281 -0
  66. data/rdoc/Sprout/ProgressBarManager.html +281 -0
  67. data/rdoc/Sprout/ProgressBarOutputStream.html +281 -0
  68. data/rdoc/Sprout/RDocParser.html +702 -0
  69. data/rdoc/Sprout/RemoteFileLoader.html +537 -0
  70. data/rdoc/Sprout/RemoteFileTarget.html +741 -0
  71. data/rdoc/Sprout/ReversedProgressBar.html +281 -0
  72. data/rdoc/Sprout/RubyFeature.html +324 -0
  73. data/rdoc/Sprout/RubyFeature/ClassMethods.html +821 -0
  74. data/rdoc/Sprout/RubyGenerator.html +576 -0
  75. data/rdoc/Sprout/Specification.html +915 -0
  76. data/rdoc/Sprout/System.html +383 -0
  77. data/rdoc/Sprout/System/BaseSystem.html +1173 -0
  78. data/rdoc/Sprout/System/JavaSystem.html +284 -0
  79. data/rdoc/Sprout/System/OSXSystem.html +419 -0
  80. data/rdoc/Sprout/System/ThreadMock.html +281 -0
  81. data/rdoc/Sprout/System/UnixSystem.html +583 -0
  82. data/rdoc/Sprout/System/VistaSystem.html +367 -0
  83. data/rdoc/Sprout/System/WinNixSystem.html +417 -0
  84. data/rdoc/Sprout/System/WinSystem.html +672 -0
  85. data/rdoc/Sprout/ToolGenerator.html +376 -0
  86. data/rdoc/Sprout/VERSION.html +274 -0
  87. data/rdoc/SproutTestCase.html +279 -0
  88. data/rdoc/String.html +411 -0
  89. data/rdoc/created.rid +61 -0
  90. data/rdoc/index.html +795 -0
  91. data/rdoc/lib/sprout/archive_unpacker_rb.html +56 -0
  92. data/rdoc/lib/sprout/base_rb.html +111 -0
  93. data/rdoc/lib/sprout/concern_rb.html +52 -0
  94. data/rdoc/lib/sprout/dir_rb.html +52 -0
  95. data/rdoc/lib/sprout/errors_rb.html +52 -0
  96. data/rdoc/lib/sprout/executable/boolean_rb.html +52 -0
  97. data/rdoc/lib/sprout/executable/collection_param_rb.html +52 -0
  98. data/rdoc/lib/sprout/executable/file_param_rb.html +52 -0
  99. data/rdoc/lib/sprout/executable/files_rb.html +52 -0
  100. data/rdoc/lib/sprout/executable/number_rb.html +52 -0
  101. data/rdoc/lib/sprout/executable/param_rb.html +52 -0
  102. data/rdoc/lib/sprout/executable/parameter_factory_rb.html +52 -0
  103. data/rdoc/lib/sprout/executable/path_rb.html +52 -0
  104. data/rdoc/lib/sprout/executable/paths_rb.html +52 -0
  105. data/rdoc/lib/sprout/executable/string_param_rb.html +52 -0
  106. data/rdoc/lib/sprout/executable/strings_rb.html +52 -0
  107. data/rdoc/lib/sprout/executable/url_rb.html +52 -0
  108. data/rdoc/lib/sprout/executable/urls_rb.html +52 -0
  109. data/rdoc/lib/sprout/executable_rb.html +78 -0
  110. data/rdoc/lib/sprout/file_target_rb.html +52 -0
  111. data/rdoc/lib/sprout/generator/base_rb.html +54 -0
  112. data/rdoc/lib/sprout/generator/command_rb.html +52 -0
  113. data/rdoc/lib/sprout/generator/directory_manifest_rb.html +52 -0
  114. data/rdoc/lib/sprout/generator/file_manifest_rb.html +52 -0
  115. data/rdoc/lib/sprout/generator/manifest_rb.html +52 -0
  116. data/rdoc/lib/sprout/generator/template_manifest_rb.html +52 -0
  117. data/rdoc/lib/sprout/generators/generator/generator_generator_rb.html +52 -0
  118. data/rdoc/lib/sprout/generators/generator/templates/generator_test_helper_rb.html +64 -0
  119. data/rdoc/lib/sprout/generators/library/library_generator_rb.html +52 -0
  120. data/rdoc/lib/sprout/generators/ruby/ruby_generator_rb.html +52 -0
  121. data/rdoc/lib/sprout/generators/ruby/templates/ruby_base_rb.html +54 -0
  122. data/rdoc/lib/sprout/generators/tool/tool_generator_rb.html +52 -0
  123. data/rdoc/lib/sprout/library_rb.html +52 -0
  124. data/rdoc/lib/sprout/log_rb.html +52 -0
  125. data/rdoc/lib/sprout/platform_rb.html +52 -0
  126. data/rdoc/lib/sprout/process_runner_rb.html +58 -0
  127. data/rdoc/lib/sprout/progress_bar_rb.html +72 -0
  128. data/rdoc/lib/sprout/rdoc_parser_rb.html +54 -0
  129. data/rdoc/lib/sprout/remote_file_loader_rb.html +54 -0
  130. data/rdoc/lib/sprout/remote_file_target_rb.html +52 -0
  131. data/rdoc/lib/sprout/ruby_feature_rb.html +52 -0
  132. data/rdoc/lib/sprout/specification_rb.html +52 -0
  133. data/rdoc/lib/sprout/string_rb.html +52 -0
  134. data/rdoc/lib/sprout/system/base_system_rb.html +52 -0
  135. data/rdoc/lib/sprout/system/java_system_rb.html +52 -0
  136. data/rdoc/lib/sprout/system/osx_system_rb.html +52 -0
  137. data/rdoc/lib/sprout/system/unix_system_rb.html +52 -0
  138. data/rdoc/lib/sprout/system/vista_system_rb.html +52 -0
  139. data/rdoc/lib/sprout/system/win_nix_system_rb.html +52 -0
  140. data/rdoc/lib/sprout/system/win_system_rb.html +52 -0
  141. data/rdoc/lib/sprout/system_rb.html +66 -0
  142. data/rdoc/lib/sprout/test/sprout_test_case_rb.html +57 -0
  143. data/rdoc/lib/sprout/version_rb.html +52 -0
  144. data/rdoc/lib/sprout_rb.html +54 -0
  145. data/rdoc/rdoc.css +706 -0
  146. data/test/fixtures/executable/mxmlc.rb +2 -2
  147. data/test/unit/executable_test.rb +13 -0
  148. data/test/unit/generator_test.rb +25 -2
  149. metadata +144 -3
@@ -0,0 +1,1045 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
3
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
4
+ <html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en">
5
+ <head>
6
+ <meta content="text/html; charset=utf-8" http-equiv="Content-Type" />
7
+
8
+ <title>Class: Sprout::ArchiveUnpacker</title>
9
+
10
+ <link rel="stylesheet" href="../rdoc.css" type="text/css" media="screen" />
11
+
12
+ <script src="../js/jquery.js" type="text/javascript"
13
+ charset="utf-8"></script>
14
+ <script src="../js/thickbox-compressed.js" type="text/javascript"
15
+ charset="utf-8"></script>
16
+ <script src="../js/quicksearch.js" type="text/javascript"
17
+ charset="utf-8"></script>
18
+ <script src="../js/darkfish.js" type="text/javascript"
19
+ charset="utf-8"></script>
20
+
21
+ </head>
22
+ <body class="class">
23
+
24
+ <div id="metadata">
25
+ <div id="home-metadata">
26
+ <div id="home-section" class="section">
27
+ <h3 class="section-header">
28
+ <a href="../index.html">Home</a>
29
+ <a href="../index.html#classes">Classes</a>
30
+ <a href="../index.html#methods">Methods</a>
31
+ </h3>
32
+ </div>
33
+ </div>
34
+
35
+ <div id="file-metadata">
36
+ <div id="file-list-section" class="section">
37
+ <h3 class="section-header">In Files</h3>
38
+ <div class="section-body">
39
+ <ul>
40
+
41
+ <li><a href="../lib/sprout/archive_unpacker_rb.html?TB_iframe=true&amp;height=550&amp;width=785"
42
+ class="thickbox" title="lib/sprout/archive_unpacker.rb">lib/sprout/archive_unpacker.rb</a></li>
43
+
44
+ </ul>
45
+ </div>
46
+ </div>
47
+
48
+
49
+ </div>
50
+
51
+ <div id="class-metadata">
52
+
53
+ <!-- Parent Class -->
54
+
55
+ <div id="parent-class-section" class="section">
56
+ <h3 class="section-header">Parent</h3>
57
+
58
+ <p class="link"><a href="../Object.html">Object</a></p>
59
+
60
+ </div>
61
+
62
+
63
+ <!-- Namespace Contents -->
64
+
65
+
66
+ <!-- Method Quickref -->
67
+
68
+ <div id="method-list-section" class="section">
69
+ <h3 class="section-header">Methods</h3>
70
+ <ul class="link-list">
71
+
72
+ <li><a href="#method-i-copy_file">#copy_file</a></li>
73
+
74
+ <li><a href="#method-i-directory_has_children%3F">#directory_has_children?</a></li>
75
+
76
+ <li><a href="#method-i-is_copyable%3F">#is_copyable?</a></li>
77
+
78
+ <li><a href="#method-i-is_darwin%3F">#is_darwin?</a></li>
79
+
80
+ <li><a href="#method-i-is_exe%3F">#is_exe?</a></li>
81
+
82
+ <li><a href="#method-i-is_rb%3F">#is_rb?</a></li>
83
+
84
+ <li><a href="#method-i-is_swc%3F">#is_swc?</a></li>
85
+
86
+ <li><a href="#method-i-is_tgz%3F">#is_tgz?</a></li>
87
+
88
+ <li><a href="#method-i-is_zip%3F">#is_zip?</a></li>
89
+
90
+ <li><a href="#method-i-should_unpack_tgz%3F">#should_unpack_tgz?</a></li>
91
+
92
+ <li><a href="#method-i-unpack">#unpack</a></li>
93
+
94
+ <li><a href="#method-i-unpack_tgz">#unpack_tgz</a></li>
95
+
96
+ <li><a href="#method-i-unpack_zip">#unpack_zip</a></li>
97
+
98
+ <li><a href="#method-i-unpack_zip_entry">#unpack_zip_entry</a></li>
99
+
100
+ <li><a href="#method-i-unpack_zip_on_darwin">#unpack_zip_on_darwin</a></li>
101
+
102
+ <li><a href="#method-i-validate">#validate</a></li>
103
+
104
+ <li><a href="#method-i-validate_archive">#validate_archive</a></li>
105
+
106
+ <li><a href="#method-i-validate_destination">#validate_destination</a></li>
107
+
108
+ </ul>
109
+ </div>
110
+
111
+
112
+ <!-- Included Modules -->
113
+
114
+ </div>
115
+
116
+ <div id="project-metadata">
117
+
118
+
119
+
120
+ <div id="classindex-section" class="section project-section">
121
+ <h3 class="section-header">Class Index
122
+ <span class="search-toggle"><img src="../images/find.png"
123
+ height="16" width="16" alt="[+]"
124
+ title="show/hide quicksearch" /></span></h3>
125
+ <form action="#" method="get" accept-charset="utf-8" class="initially-hidden">
126
+ <fieldset>
127
+ <legend>Quicksearch</legend>
128
+ <input type="text" name="quicksearch" value=""
129
+ class="quicksearch-field" />
130
+ </fieldset>
131
+ </form>
132
+
133
+ <ul class="link-list">
134
+
135
+ <li><a href="../Sprout/ArchiveUnpacker.html">Sprout::ArchiveUnpacker</a></li>
136
+
137
+ <li><a href="../Sprout/Base.html">Sprout::Base</a></li>
138
+
139
+ <li><a href="../Sprout/Base/ClassMethods.html">Sprout::Base::ClassMethods</a></li>
140
+
141
+ <li><a href="../Sprout/Concern.html">Sprout::Concern</a></li>
142
+
143
+ <li><a href="../Sprout/Errors.html">Sprout::Errors</a></li>
144
+
145
+ <li><a href="../Sprout/Errors/ArchiveUnpackerError.html">Sprout::Errors::ArchiveUnpackerError</a></li>
146
+
147
+ <li><a href="../Sprout/Errors/DestinationExistsError.html">Sprout::Errors::DestinationExistsError</a></li>
148
+
149
+ <li><a href="../Sprout/Errors/DuplicateMemberError.html">Sprout::Errors::DuplicateMemberError</a></li>
150
+
151
+ <li><a href="../Sprout/Errors/ExecutableError.html">Sprout::Errors::ExecutableError</a></li>
152
+
153
+ <li><a href="../Sprout/Errors/ExecutableRegistrationError.html">Sprout::Errors::ExecutableRegistrationError</a></li>
154
+
155
+ <li><a href="../Sprout/Errors/ExecutionError.html">Sprout::Errors::ExecutionError</a></li>
156
+
157
+ <li><a href="../Sprout/Errors/GeneratorError.html">Sprout::Errors::GeneratorError</a></li>
158
+
159
+ <li><a href="../Sprout/Errors/InvalidArgumentError.html">Sprout::Errors::InvalidArgumentError</a></li>
160
+
161
+ <li><a href="../Sprout/Errors/LoadError.html">Sprout::Errors::LoadError</a></li>
162
+
163
+ <li><a href="../Sprout/Errors/MissingArgumentError.html">Sprout::Errors::MissingArgumentError</a></li>
164
+
165
+ <li><a href="../Sprout/Errors/MissingExecutableError.html">Sprout::Errors::MissingExecutableError</a></li>
166
+
167
+ <li><a href="../Sprout/Errors/MissingGeneratorError.html">Sprout::Errors::MissingGeneratorError</a></li>
168
+
169
+ <li><a href="../Sprout/Errors/MissingTemplateError.html">Sprout::Errors::MissingTemplateError</a></li>
170
+
171
+ <li><a href="../Sprout/Errors/ProcessRunnerError.html">Sprout::Errors::ProcessRunnerError</a></li>
172
+
173
+ <li><a href="../Sprout/Errors/RemoteFileLoaderError.html">Sprout::Errors::RemoteFileLoaderError</a></li>
174
+
175
+ <li><a href="../Sprout/Errors/SproutError.html">Sprout::Errors::SproutError</a></li>
176
+
177
+ <li><a href="../Sprout/Errors/UnknownArchiveType.html">Sprout::Errors::UnknownArchiveType</a></li>
178
+
179
+ <li><a href="../Sprout/Errors/UsageError.html">Sprout::Errors::UsageError</a></li>
180
+
181
+ <li><a href="../Sprout/Errors/ValidationError.html">Sprout::Errors::ValidationError</a></li>
182
+
183
+ <li><a href="../Sprout/Errors/VersionRequirementNotMetError.html">Sprout::Errors::VersionRequirementNotMetError</a></li>
184
+
185
+ <li><a href="../Sprout/Executable.html">Sprout::Executable</a></li>
186
+
187
+ <li><a href="../Sprout/Executable/Boolean.html">Sprout::Executable::Boolean</a></li>
188
+
189
+ <li><a href="../Sprout/Executable/ClassMethods.html">Sprout::Executable::ClassMethods</a></li>
190
+
191
+ <li><a href="../Sprout/Executable/CollectionParam.html">Sprout::Executable::CollectionParam</a></li>
192
+
193
+ <li><a href="../Sprout/Executable/FileParam.html">Sprout::Executable::FileParam</a></li>
194
+
195
+ <li><a href="../Sprout/Executable/Files.html">Sprout::Executable::Files</a></li>
196
+
197
+ <li><a href="../Sprout/Executable/InstanceMethods.html">Sprout::Executable::InstanceMethods</a></li>
198
+
199
+ <li><a href="../Sprout/Executable/Number.html">Sprout::Executable::Number</a></li>
200
+
201
+ <li><a href="../Sprout/Executable/Param.html">Sprout::Executable::Param</a></li>
202
+
203
+ <li><a href="../Sprout/Executable/ParameterFactory.html">Sprout::Executable::ParameterFactory</a></li>
204
+
205
+ <li><a href="../Sprout/Executable/Path.html">Sprout::Executable::Path</a></li>
206
+
207
+ <li><a href="../Sprout/Executable/Paths.html">Sprout::Executable::Paths</a></li>
208
+
209
+ <li><a href="../Sprout/Executable/StringParam.html">Sprout::Executable::StringParam</a></li>
210
+
211
+ <li><a href="../Sprout/Executable/Strings.html">Sprout::Executable::Strings</a></li>
212
+
213
+ <li><a href="../Sprout/Executable/Url.html">Sprout::Executable::Url</a></li>
214
+
215
+ <li><a href="../Sprout/Executable/Urls.html">Sprout::Executable::Urls</a></li>
216
+
217
+ <li><a href="../Sprout/FileTarget.html">Sprout::FileTarget</a></li>
218
+
219
+ <li><a href="../Sprout/Generator.html">Sprout::Generator</a></li>
220
+
221
+ <li><a href="../Sprout/Generator/Base.html">Sprout::Generator::Base</a></li>
222
+
223
+ <li><a href="../Sprout/Generator/Command.html">Sprout::Generator::Command</a></li>
224
+
225
+ <li><a href="../Sprout/Generator/DirectoryManifest.html">Sprout::Generator::DirectoryManifest</a></li>
226
+
227
+ <li><a href="../Sprout/Generator/FileManifest.html">Sprout::Generator::FileManifest</a></li>
228
+
229
+ <li><a href="../Sprout/Generator/Manifest.html">Sprout::Generator::Manifest</a></li>
230
+
231
+ <li><a href="../Sprout/Generator/TemplateManifest.html">Sprout::Generator::TemplateManifest</a></li>
232
+
233
+ <li><a href="../Sprout/GeneratorGenerator.html">Sprout::GeneratorGenerator</a></li>
234
+
235
+ <li><a href="../Sprout/Library.html">Sprout::Library</a></li>
236
+
237
+ <li><a href="../Sprout/LibraryGenerator.html">Sprout::LibraryGenerator</a></li>
238
+
239
+ <li><a href="../Sprout/Platform.html">Sprout::Platform</a></li>
240
+
241
+ <li><a href="../Sprout/ProcessRunner.html">Sprout::ProcessRunner</a></li>
242
+
243
+ <li><a href="../Sprout/RDocParser.html">Sprout::RDocParser</a></li>
244
+
245
+ <li><a href="../Sprout/RemoteFileLoader.html">Sprout::RemoteFileLoader</a></li>
246
+
247
+ <li><a href="../Sprout/RemoteFileTarget.html">Sprout::RemoteFileTarget</a></li>
248
+
249
+ <li><a href="../Sprout/RubyFeature.html">Sprout::RubyFeature</a></li>
250
+
251
+ <li><a href="../Sprout/RubyFeature/ClassMethods.html">Sprout::RubyFeature::ClassMethods</a></li>
252
+
253
+ <li><a href="../Sprout/RubyGenerator.html">Sprout::RubyGenerator</a></li>
254
+
255
+ <li><a href="../Sprout/Specification.html">Sprout::Specification</a></li>
256
+
257
+ <li><a href="../Sprout/System.html">Sprout::System</a></li>
258
+
259
+ <li><a href="../Sprout/System/BaseSystem.html">Sprout::System::BaseSystem</a></li>
260
+
261
+ <li><a href="../Sprout/System/JavaSystem.html">Sprout::System::JavaSystem</a></li>
262
+
263
+ <li><a href="../Sprout/System/OSXSystem.html">Sprout::System::OSXSystem</a></li>
264
+
265
+ <li><a href="../Sprout/System/UnixSystem.html">Sprout::System::UnixSystem</a></li>
266
+
267
+ <li><a href="../Sprout/System/VistaSystem.html">Sprout::System::VistaSystem</a></li>
268
+
269
+ <li><a href="../Sprout/System/WinNixSystem.html">Sprout::System::WinNixSystem</a></li>
270
+
271
+ <li><a href="../Sprout/System/WinSystem.html">Sprout::System::WinSystem</a></li>
272
+
273
+ <li><a href="../Sprout/ToolGenerator.html">Sprout::ToolGenerator</a></li>
274
+
275
+ <li><a href="../<.html"><</a></li>
276
+
277
+ <li><a href="../Dir.html">Dir</a></li>
278
+
279
+ <li><a href="../Object.html">Object</a></li>
280
+
281
+ <li><a href="../String.html">String</a></li>
282
+
283
+ </ul>
284
+ <div id="no-class-search-results" style="display: none;">No matching classes.</div>
285
+ </div>
286
+
287
+
288
+ </div>
289
+ </div>
290
+
291
+ <div id="documentation">
292
+ <h1 class="class">Sprout::ArchiveUnpacker</h1>
293
+
294
+ <div id="description">
295
+ <p>
296
+ Given a source, destination and type (or ability to infer it), unpack
297
+ downloaded archives.
298
+ </p>
299
+
300
+ </div>
301
+
302
+ <!-- Constants -->
303
+
304
+
305
+ <!-- Attributes -->
306
+
307
+
308
+ <!-- Methods -->
309
+
310
+ <div id="public-instance-method-details" class="method-section section">
311
+ <h3 class="section-header">Public Instance Methods</h3>
312
+
313
+
314
+ <div id="copy-file-method" class="method-detail ">
315
+ <a name="method-i-copy_file"></a>
316
+
317
+ <div class="method-heading">
318
+
319
+ <span class="method-name">copy_file</span><span
320
+ class="method-args">(file, destination, clobber=nil)</span>
321
+ <span class="method-click-advice">click to toggle source</span>
322
+
323
+ </div>
324
+
325
+ <div class="method-description">
326
+
327
+ <p>
328
+ Rather than unpacking, safely copy the file from one location to another.
329
+ </p>
330
+
331
+
332
+
333
+ <div class="method-source-code"
334
+ id="copy-file-source">
335
+ <pre>
336
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 85</span>
337
+ 85: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">copy_file</span> <span class="ruby-identifier">file</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>=<span class="ruby-keyword kw">nil</span>
338
+ 86: <span class="ruby-identifier">validate</span> <span class="ruby-identifier">file</span>, <span class="ruby-identifier">destination</span>
339
+ 87: <span class="ruby-identifier">target</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span>( <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span>(<span class="ruby-identifier">destination</span>, <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span>(<span class="ruby-identifier">file</span>)) )
340
+ 88: <span class="ruby-keyword kw">if</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">target</span>) <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">clobber</span> <span class="ruby-operator">!=</span> <span class="ruby-value">:clobber</span>)
341
+ 89: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Sprout</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">DestinationExistsError</span>.<span class="ruby-identifier">new</span> <span class="ruby-node">&quot;Unable to copy #{file} to #{target} because target already exists and we were not asked to :clobber it&quot;</span>
342
+ 90: <span class="ruby-keyword kw">end</span>
343
+ 91: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span> <span class="ruby-identifier">destination</span>
344
+ 92: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">cp_r</span> <span class="ruby-identifier">file</span>, <span class="ruby-identifier">destination</span>
345
+ 93:
346
+ 94: <span class="ruby-identifier">destination</span>
347
+ 95: <span class="ruby-keyword kw">end</span></pre>
348
+ </div>
349
+
350
+ </div>
351
+
352
+
353
+
354
+
355
+ </div>
356
+
357
+
358
+ <div id="is-darwin--method" class="method-detail ">
359
+ <a name="method-i-is_darwin%3F"></a>
360
+
361
+ <div class="method-heading">
362
+
363
+ <span class="method-name">is_darwin?</span><span
364
+ class="method-args">()</span>
365
+ <span class="method-click-advice">click to toggle source</span>
366
+
367
+ </div>
368
+
369
+ <div class="method-description">
370
+
371
+
372
+
373
+
374
+
375
+ <div class="method-source-code"
376
+ id="is-darwin--source">
377
+ <pre>
378
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 47</span>
379
+ 47: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_darwin?</span>
380
+ 48: <span class="ruby-constant">Sprout</span>.<span class="ruby-identifier">current_system</span>.<span class="ruby-identifier">is_a?</span>(<span class="ruby-constant">Sprout</span><span class="ruby-operator">::</span><span class="ruby-constant">System</span><span class="ruby-operator">::</span><span class="ruby-constant">OSXSystem</span>)
381
+ 49: <span class="ruby-keyword kw">end</span></pre>
382
+ </div>
383
+
384
+ </div>
385
+
386
+
387
+
388
+
389
+ </div>
390
+
391
+
392
+ <div id="is-exe--method" class="method-detail ">
393
+ <a name="method-i-is_exe%3F"></a>
394
+
395
+ <div class="method-heading">
396
+
397
+ <span class="method-name">is_exe?</span><span
398
+ class="method-args">(archive, type=nil)</span>
399
+ <span class="method-click-advice">click to toggle source</span>
400
+
401
+ </div>
402
+
403
+ <div class="method-description">
404
+
405
+
406
+
407
+
408
+
409
+ <div class="method-source-code"
410
+ id="is-exe--source">
411
+ <pre>
412
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 107</span>
413
+ 107: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_exe?</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>
414
+ 108: <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:exe</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">archive</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/\.exe$/</span>).<span class="ruby-identifier">nil?</span>
415
+ 109: <span class="ruby-keyword kw">end</span></pre>
416
+ </div>
417
+
418
+ </div>
419
+
420
+
421
+
422
+
423
+ </div>
424
+
425
+
426
+ <div id="is-rb--method" class="method-detail ">
427
+ <a name="method-i-is_rb%3F"></a>
428
+
429
+ <div class="method-heading">
430
+
431
+ <span class="method-name">is_rb?</span><span
432
+ class="method-args">(archive, type=nil)</span>
433
+ <span class="method-click-advice">click to toggle source</span>
434
+
435
+ </div>
436
+
437
+ <div class="method-description">
438
+
439
+
440
+
441
+
442
+
443
+ <div class="method-source-code"
444
+ id="is-rb--source">
445
+ <pre>
446
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 115</span>
447
+ 115: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_rb?</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>
448
+ 116: <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:rb</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">archive</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/\.rb$/</span>).<span class="ruby-identifier">nil?</span>
449
+ 117: <span class="ruby-keyword kw">end</span></pre>
450
+ </div>
451
+
452
+ </div>
453
+
454
+
455
+
456
+
457
+ </div>
458
+
459
+
460
+ <div id="is-swc--method" class="method-detail ">
461
+ <a name="method-i-is_swc%3F"></a>
462
+
463
+ <div class="method-heading">
464
+
465
+ <span class="method-name">is_swc?</span><span
466
+ class="method-args">(archive, type=nil)</span>
467
+ <span class="method-click-advice">click to toggle source</span>
468
+
469
+ </div>
470
+
471
+ <div class="method-description">
472
+
473
+
474
+
475
+
476
+
477
+ <div class="method-source-code"
478
+ id="is-swc--source">
479
+ <pre>
480
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 111</span>
481
+ 111: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_swc?</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>
482
+ 112: <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:swc</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">archive</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/\.swc$/</span>).<span class="ruby-identifier">nil?</span>
483
+ 113: <span class="ruby-keyword kw">end</span></pre>
484
+ </div>
485
+
486
+ </div>
487
+
488
+
489
+
490
+
491
+ </div>
492
+
493
+
494
+ <div id="is-tgz--method" class="method-detail ">
495
+ <a name="method-i-is_tgz%3F"></a>
496
+
497
+ <div class="method-heading">
498
+
499
+ <span class="method-name">is_tgz?</span><span
500
+ class="method-args">(archive, type=nil)</span>
501
+ <span class="method-click-advice">click to toggle source</span>
502
+
503
+ </div>
504
+
505
+ <div class="method-description">
506
+
507
+ <p>
508
+ Return true if the provided file name looks like a tar.gz file.
509
+ </p>
510
+
511
+
512
+
513
+ <div class="method-source-code"
514
+ id="is-tgz--source">
515
+ <pre>
516
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 103</span>
517
+ 103: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_tgz?</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>
518
+ 104: <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:tgz</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">archive</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/\.tgz$/</span>).<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">archive</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/\.tar.gz$/</span>).<span class="ruby-identifier">nil?</span>
519
+ 105: <span class="ruby-keyword kw">end</span></pre>
520
+ </div>
521
+
522
+ </div>
523
+
524
+
525
+
526
+
527
+ </div>
528
+
529
+
530
+ <div id="is-zip--method" class="method-detail ">
531
+ <a name="method-i-is_zip%3F"></a>
532
+
533
+ <div class="method-heading">
534
+
535
+ <span class="method-name">is_zip?</span><span
536
+ class="method-args">(archive, type=nil)</span>
537
+ <span class="method-click-advice">click to toggle source</span>
538
+
539
+ </div>
540
+
541
+ <div class="method-description">
542
+
543
+ <p>
544
+ Return true if the provided file name looks like a zip file.
545
+ </p>
546
+
547
+
548
+
549
+ <div class="method-source-code"
550
+ id="is-zip--source">
551
+ <pre>
552
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 98</span>
553
+ 98: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_zip?</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>
554
+ 99: <span class="ruby-identifier">type</span> <span class="ruby-operator">==</span> <span class="ruby-value">:zip</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-identifier">archive</span>.<span class="ruby-identifier">match</span>(<span class="ruby-regexp re">/\.zip$/</span>).<span class="ruby-identifier">nil?</span>
555
+ 100: <span class="ruby-keyword kw">end</span></pre>
556
+ </div>
557
+
558
+ </div>
559
+
560
+
561
+
562
+
563
+ </div>
564
+
565
+
566
+ <div id="unpack-method" class="method-detail ">
567
+ <a name="method-i-unpack"></a>
568
+
569
+ <div class="method-heading">
570
+
571
+ <span class="method-name">unpack</span><span
572
+ class="method-args">(archive, destination, type=nil, clobber=nil)</span>
573
+ <span class="method-click-advice">click to toggle source</span>
574
+
575
+ </div>
576
+
577
+ <div class="method-description">
578
+
579
+ <p>
580
+ Figure out what kind of archive you have from the file name, and unpack it
581
+ using the appropriate scheme.
582
+ </p>
583
+
584
+
585
+
586
+ <div class="method-source-code"
587
+ id="unpack-source">
588
+ <pre>
589
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 12</span>
590
+ 12: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unpack</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">type</span>=<span class="ruby-keyword kw">nil</span>, <span class="ruby-identifier">clobber</span>=<span class="ruby-keyword kw">nil</span>
591
+ 13: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">unpack_zip</span>(<span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_zip?</span>(<span class="ruby-identifier">archive</span>, <span class="ruby-identifier">type</span>)
592
+ 14: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">unpack_tgz</span>(<span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_tgz?</span>(<span class="ruby-identifier">archive</span>, <span class="ruby-identifier">type</span>)
593
+ 15:
594
+ 16: <span class="ruby-comment cmt"># This is definitely debatable, should we copy the file even if it's</span>
595
+ 17: <span class="ruby-comment cmt"># not an archive that we're about to unpack?</span>
596
+ 18: <span class="ruby-comment cmt"># If so, why would we only do this with some subset of file types?</span>
597
+ 19: <span class="ruby-comment cmt"># Opinions welcome here...</span>
598
+ 20: <span class="ruby-keyword kw">return</span> <span class="ruby-identifier">copy_file</span>(<span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_copyable?</span>(<span class="ruby-identifier">archive</span>)
599
+ 21:
600
+ 22: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Sprout</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">UnknownArchiveType</span>.<span class="ruby-identifier">new</span>(<span class="ruby-node">&quot;Unsupported or unknown archive type encountered with: #{archive}&quot;</span>)
601
+ 23: <span class="ruby-keyword kw">end</span></pre>
602
+ </div>
603
+
604
+ </div>
605
+
606
+
607
+
608
+
609
+ </div>
610
+
611
+
612
+ <div id="unpack-tgz-method" class="method-detail ">
613
+ <a name="method-i-unpack_tgz"></a>
614
+
615
+ <div class="method-heading">
616
+
617
+ <span class="method-name">unpack_tgz</span><span
618
+ class="method-args">(archive, destination, clobber=nil)</span>
619
+ <span class="method-click-advice">click to toggle source</span>
620
+
621
+ </div>
622
+
623
+ <div class="method-description">
624
+
625
+ <p>
626
+ Unpack tar.gz or .tgz files on any platform.
627
+ </p>
628
+
629
+
630
+
631
+ <div class="method-source-code"
632
+ id="unpack-tgz-source">
633
+ <pre>
634
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 62</span>
635
+ 62: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unpack_tgz</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>=<span class="ruby-keyword kw">nil</span>
636
+ 63: <span class="ruby-identifier">validate</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>
637
+ 64:
638
+ 65: <span class="ruby-identifier">tar</span> = <span class="ruby-constant">Zlib</span><span class="ruby-operator">::</span><span class="ruby-constant">GzipReader</span>.<span class="ruby-identifier">new</span>(<span class="ruby-constant">File</span>.<span class="ruby-identifier">open</span>(<span class="ruby-identifier">archive</span>, <span class="ruby-value str">'rb'</span>))
639
+ 66: <span class="ruby-keyword kw">if</span>(<span class="ruby-operator">!</span><span class="ruby-identifier">should_unpack_tgz?</span>(<span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>))
640
+ 67: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Sprout</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">DestinationExistsError</span>.<span class="ruby-identifier">new</span> <span class="ruby-node">&quot;Unable to unpack #{archive} into #{destination} without explicit :clobber argument&quot;</span>
641
+ 68: <span class="ruby-keyword kw">end</span>
642
+ 69:
643
+ 70: <span class="ruby-constant">Archive</span><span class="ruby-operator">::</span><span class="ruby-constant">Tar</span><span class="ruby-operator">::</span><span class="ruby-constant">Minitar</span>.<span class="ruby-identifier">unpack</span>(<span class="ruby-identifier">tar</span>, <span class="ruby-identifier">destination</span>)
644
+ 71:
645
+ 72: <span class="ruby-comment cmt"># Recurse and unpack gzipped children (Adobe did this double </span>
646
+ 73: <span class="ruby-comment cmt"># gzip with the Linux FlashPlayer for some weird reason)</span>
647
+ 74: [<span class="ruby-node">&quot;#{destination}/**/*.tgz&quot;</span>, <span class="ruby-node">&quot;#{destination}/**/*.tar.gz&quot;</span>].<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">pattern</span><span class="ruby-operator">|</span>
648
+ 75: <span class="ruby-constant">Dir</span>.<span class="ruby-identifier">glob</span>(<span class="ruby-identifier">pattern</span>).<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">child</span><span class="ruby-operator">|</span>
649
+ 76: <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">child</span> <span class="ruby-operator">!=</span> <span class="ruby-identifier">archive</span> <span class="ruby-operator">&amp;&amp;</span> <span class="ruby-identifier">dir</span> <span class="ruby-operator">!=</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">child</span>))
650
+ 77: <span class="ruby-identifier">unpack_tgz</span>(<span class="ruby-identifier">child</span>, <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">child</span>))
651
+ 78: <span class="ruby-keyword kw">end</span>
652
+ 79: <span class="ruby-keyword kw">end</span>
653
+ 80: <span class="ruby-keyword kw">end</span>
654
+ 81: <span class="ruby-keyword kw">end</span></pre>
655
+ </div>
656
+
657
+ </div>
658
+
659
+
660
+
661
+
662
+ </div>
663
+
664
+
665
+ <div id="unpack-zip-method" class="method-detail ">
666
+ <a name="method-i-unpack_zip"></a>
667
+
668
+ <div class="method-heading">
669
+
670
+ <span class="method-name">unpack_zip</span><span
671
+ class="method-args">(archive, destination, clobber=nil)</span>
672
+ <span class="method-click-advice">click to toggle source</span>
673
+
674
+ </div>
675
+
676
+ <div class="method-description">
677
+
678
+ <p>
679
+ Unpack zip archives on any platform.
680
+ </p>
681
+ <p>
682
+ In case you&#8217;re wondering... Ruby sucks... This code corrupts the
683
+ FlashPlayer executable on OSX but if the file is manually unpacked, it
684
+ works fine.
685
+ </p>
686
+
687
+
688
+
689
+ <div class="method-source-code"
690
+ id="unpack-zip-source">
691
+ <pre>
692
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 32</span>
693
+ 32: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unpack_zip</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>=<span class="ruby-keyword kw">nil</span>
694
+ 33: <span class="ruby-identifier">validate</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>
695
+ 34:
696
+ 35: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">is_darwin?</span>
697
+ 36: <span class="ruby-identifier">unpack_zip_on_darwin</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>
698
+ 37: <span class="ruby-keyword kw">else</span>
699
+ 38: <span class="ruby-constant">Zip</span><span class="ruby-operator">::</span><span class="ruby-constant">ZipFile</span>.<span class="ruby-identifier">open</span> <span class="ruby-identifier">archive</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">zipfile</span><span class="ruby-operator">|</span>
700
+ 39: <span class="ruby-identifier">zipfile</span>.<span class="ruby-identifier">each</span> <span class="ruby-keyword kw">do</span> <span class="ruby-operator">|</span><span class="ruby-identifier">entry</span><span class="ruby-operator">|</span>
701
+ 40: <span class="ruby-keyword kw">next</span> <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/__MACOSX/</span> <span class="ruby-keyword kw">or</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">name</span> <span class="ruby-operator">=~</span> <span class="ruby-regexp re">/\.DS_Store/</span>
702
+ 41: <span class="ruby-identifier">unpack_zip_entry</span> <span class="ruby-identifier">entry</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>
703
+ 42: <span class="ruby-keyword kw">end</span>
704
+ 43: <span class="ruby-keyword kw">end</span>
705
+ 44: <span class="ruby-keyword kw">end</span>
706
+ 45: <span class="ruby-keyword kw">end</span></pre>
707
+ </div>
708
+
709
+ </div>
710
+
711
+
712
+
713
+
714
+ </div>
715
+
716
+
717
+ <div id="unpack-zip-on-darwin-method" class="method-detail ">
718
+ <a name="method-i-unpack_zip_on_darwin"></a>
719
+
720
+ <div class="method-heading">
721
+
722
+ <span class="method-name">unpack_zip_on_darwin</span><span
723
+ class="method-args">(archive, destination, clobber)</span>
724
+ <span class="method-click-advice">click to toggle source</span>
725
+
726
+ </div>
727
+
728
+ <div class="method-description">
729
+
730
+
731
+
732
+
733
+
734
+ <div class="method-source-code"
735
+ id="unpack-zip-on-darwin-source">
736
+ <pre>
737
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 51</span>
738
+ 51: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unpack_zip_on_darwin</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>
739
+ 52: <span class="ruby-comment cmt"># Unzipping on OS X</span>
740
+ 53: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">makedirs</span> <span class="ruby-identifier">destination</span>
741
+ 54: <span class="ruby-identifier">zip_dir</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">archive</span>)
742
+ 55: <span class="ruby-identifier">zip_name</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">basename</span> <span class="ruby-identifier">archive</span>
743
+ 56: <span class="ruby-identifier">output</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">expand_path</span> <span class="ruby-identifier">destination</span>
744
+ 57: <span class="ruby-comment cmt"># puts &quot;&gt;&gt; zip_dir: #{zip_dir} zip_name: #{zip_name} output: #{output}&quot;</span>
745
+ 58: <span class="ruby-node">%(cd #{zip_dir};unzip #{zip_name} -d #{output})</span>
746
+ 59: <span class="ruby-keyword kw">end</span></pre>
747
+ </div>
748
+
749
+ </div>
750
+
751
+
752
+
753
+
754
+ </div>
755
+
756
+
757
+ </div>
758
+
759
+ <div id="private-instance-method-details" class="method-section section">
760
+ <h3 class="section-header">Private Instance Methods</h3>
761
+
762
+
763
+ <div id="directory-has-children--method" class="method-detail ">
764
+ <a name="method-i-directory_has_children%3F"></a>
765
+
766
+ <div class="method-heading">
767
+
768
+ <span class="method-name">directory_has_children?</span><span
769
+ class="method-args">(dir)</span>
770
+ <span class="method-click-advice">click to toggle source</span>
771
+
772
+ </div>
773
+
774
+ <div class="method-description">
775
+
776
+
777
+
778
+
779
+
780
+ <div class="method-source-code"
781
+ id="directory-has-children--source">
782
+ <pre>
783
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 130</span>
784
+ 130: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">directory_has_children?</span> <span class="ruby-identifier">dir</span>
785
+ 131: (<span class="ruby-constant">Dir</span>.<span class="ruby-identifier">entries</span>(<span class="ruby-identifier">dir</span>) <span class="ruby-operator">-</span> [<span class="ruby-value str">'.'</span>, <span class="ruby-value str">'..'</span>]).<span class="ruby-identifier">size</span> <span class="ruby-operator">&gt;</span> <span class="ruby-value">0</span>
786
+ 132: <span class="ruby-keyword kw">end</span></pre>
787
+ </div>
788
+
789
+ </div>
790
+
791
+
792
+
793
+
794
+ </div>
795
+
796
+
797
+ <div id="is-copyable--method" class="method-detail ">
798
+ <a name="method-i-is_copyable%3F"></a>
799
+
800
+ <div class="method-heading">
801
+
802
+ <span class="method-name">is_copyable?</span><span
803
+ class="method-args">(archive)</span>
804
+ <span class="method-click-advice">click to toggle source</span>
805
+
806
+ </div>
807
+
808
+ <div class="method-description">
809
+
810
+
811
+
812
+
813
+
814
+ <div class="method-source-code"
815
+ id="is-copyable--source">
816
+ <pre>
817
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 121</span>
818
+ 121: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">is_copyable?</span> <span class="ruby-identifier">archive</span>
819
+ 122: (<span class="ruby-identifier">is_exe?</span>(<span class="ruby-identifier">archive</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">is_swc?</span>(<span class="ruby-identifier">archive</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">is_rb?</span>(<span class="ruby-identifier">archive</span>))
820
+ 123: <span class="ruby-keyword kw">end</span></pre>
821
+ </div>
822
+
823
+ </div>
824
+
825
+
826
+
827
+
828
+ </div>
829
+
830
+
831
+ <div id="should-unpack-tgz--method" class="method-detail ">
832
+ <a name="method-i-should_unpack_tgz%3F"></a>
833
+
834
+ <div class="method-heading">
835
+
836
+ <span class="method-name">should_unpack_tgz?</span><span
837
+ class="method-args">(dir, clobber=nil)</span>
838
+ <span class="method-click-advice">click to toggle source</span>
839
+
840
+ </div>
841
+
842
+ <div class="method-description">
843
+
844
+
845
+
846
+
847
+
848
+ <div class="method-source-code"
849
+ id="should-unpack-tgz--source">
850
+ <pre>
851
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 125</span>
852
+ 125: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">should_unpack_tgz?</span> <span class="ruby-identifier">dir</span>, <span class="ruby-identifier">clobber</span>=<span class="ruby-keyword kw">nil</span>
853
+ 126: <span class="ruby-keyword kw">return</span> <span class="ruby-operator">!</span><span class="ruby-identifier">directory_has_children?</span>(<span class="ruby-identifier">dir</span>) <span class="ruby-operator">||</span> <span class="ruby-identifier">clobber</span> <span class="ruby-operator">==</span> <span class="ruby-value">:clobber</span>
854
+ 127:
855
+ 128: <span class="ruby-keyword kw">end</span></pre>
856
+ </div>
857
+
858
+ </div>
859
+
860
+
861
+
862
+
863
+ </div>
864
+
865
+
866
+ <div id="unpack-zip-entry-method" class="method-detail ">
867
+ <a name="method-i-unpack_zip_entry"></a>
868
+
869
+ <div class="method-heading">
870
+
871
+ <span class="method-name">unpack_zip_entry</span><span
872
+ class="method-args">(entry, destination, clobber)</span>
873
+ <span class="method-click-advice">click to toggle source</span>
874
+
875
+ </div>
876
+
877
+ <div class="method-description">
878
+
879
+
880
+
881
+
882
+
883
+ <div class="method-source-code"
884
+ id="unpack-zip-entry-source">
885
+ <pre>
886
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 149</span>
887
+ 149: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">unpack_zip_entry</span> <span class="ruby-identifier">entry</span>, <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">clobber</span>
888
+ 150: <span class="ruby-comment cmt"># Ensure hidden mac files don't get written to disk:</span>
889
+ 151: <span class="ruby-identifier">path</span> = <span class="ruby-constant">File</span>.<span class="ruby-identifier">join</span> <span class="ruby-identifier">destination</span>, <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">name</span>
890
+ 152:
891
+ 153: <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">directory?</span>
892
+ 154: <span class="ruby-comment cmt"># If an archive has empty directories:</span>
893
+ 155: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span> <span class="ruby-identifier">path</span>
894
+ 156: <span class="ruby-keyword kw">elsif</span> <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">file?</span>
895
+ 157: <span class="ruby-comment cmt"># On Windows, we don't get the entry for</span>
896
+ 158: <span class="ruby-comment cmt"># each parent directory:</span>
897
+ 159: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">mkdir_p</span> <span class="ruby-constant">File</span>.<span class="ruby-identifier">dirname</span>(<span class="ruby-identifier">path</span>)
898
+ 160: <span class="ruby-keyword kw">begin</span>
899
+ 161: <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">extract</span> <span class="ruby-identifier">path</span>
900
+ 162: <span class="ruby-keyword kw">rescue</span> <span class="ruby-constant">Zip</span><span class="ruby-operator">::</span><span class="ruby-constant">ZipDestinationFileExistsError</span> =<span class="ruby-operator">&gt;</span> <span class="ruby-identifier">zip_dest_error</span>
901
+ 163: <span class="ruby-keyword kw">if</span>(<span class="ruby-identifier">clobber</span> <span class="ruby-operator">==</span> <span class="ruby-value">:clobber</span>)
902
+ 164: <span class="ruby-constant">FileUtils</span>.<span class="ruby-identifier">rm_rf</span> <span class="ruby-identifier">path</span>
903
+ 165: <span class="ruby-identifier">entry</span>.<span class="ruby-identifier">extract</span> <span class="ruby-identifier">path</span>
904
+ 166: <span class="ruby-keyword kw">else</span>
905
+ 167: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Sprout</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">DestinationExistsError</span>.<span class="ruby-identifier">new</span> <span class="ruby-identifier">zip_dest_error</span>.<span class="ruby-identifier">message</span>
906
+ 168: <span class="ruby-keyword kw">end</span>
907
+ 169: <span class="ruby-keyword kw">end</span>
908
+ 170: <span class="ruby-keyword kw">end</span>
909
+ 171: <span class="ruby-keyword kw">end</span></pre>
910
+ </div>
911
+
912
+ </div>
913
+
914
+
915
+
916
+
917
+ </div>
918
+
919
+
920
+ <div id="validate-method" class="method-detail ">
921
+ <a name="method-i-validate"></a>
922
+
923
+ <div class="method-heading">
924
+
925
+ <span class="method-name">validate</span><span
926
+ class="method-args">(archive, destination)</span>
927
+ <span class="method-click-advice">click to toggle source</span>
928
+
929
+ </div>
930
+
931
+ <div class="method-description">
932
+
933
+
934
+
935
+
936
+
937
+ <div class="method-source-code"
938
+ id="validate-source">
939
+ <pre>
940
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 134</span>
941
+ 134: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">validate</span> <span class="ruby-identifier">archive</span>, <span class="ruby-identifier">destination</span>
942
+ 135: <span class="ruby-identifier">validate_archive</span> <span class="ruby-identifier">archive</span>
943
+ 136: <span class="ruby-identifier">validate_destination</span> <span class="ruby-identifier">destination</span>
944
+ 137: <span class="ruby-keyword kw">end</span></pre>
945
+ </div>
946
+
947
+ </div>
948
+
949
+
950
+
951
+
952
+ </div>
953
+
954
+
955
+ <div id="validate-archive-method" class="method-detail ">
956
+ <a name="method-i-validate_archive"></a>
957
+
958
+ <div class="method-heading">
959
+
960
+ <span class="method-name">validate_archive</span><span
961
+ class="method-args">(archive)</span>
962
+ <span class="method-click-advice">click to toggle source</span>
963
+
964
+ </div>
965
+
966
+ <div class="method-description">
967
+
968
+
969
+
970
+
971
+
972
+ <div class="method-source-code"
973
+ id="validate-archive-source">
974
+ <pre>
975
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 139</span>
976
+ 139: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">validate_archive</span> <span class="ruby-identifier">archive</span>
977
+ 140: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Archive could not be found at: #{archive}&quot;</span>
978
+ 141: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Sprout</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">ArchiveUnpackerError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">message</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">archive</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">archive</span>)
979
+ 142: <span class="ruby-keyword kw">end</span></pre>
980
+ </div>
981
+
982
+ </div>
983
+
984
+
985
+
986
+
987
+ </div>
988
+
989
+
990
+ <div id="validate-destination-method" class="method-detail ">
991
+ <a name="method-i-validate_destination"></a>
992
+
993
+ <div class="method-heading">
994
+
995
+ <span class="method-name">validate_destination</span><span
996
+ class="method-args">(path)</span>
997
+ <span class="method-click-advice">click to toggle source</span>
998
+
999
+ </div>
1000
+
1001
+ <div class="method-description">
1002
+
1003
+
1004
+
1005
+
1006
+
1007
+ <div class="method-source-code"
1008
+ id="validate-destination-source">
1009
+ <pre>
1010
+ <span class="ruby-comment cmt"># File lib/sprout/archive_unpacker.rb, line 144</span>
1011
+ 144: <span class="ruby-keyword kw">def</span> <span class="ruby-identifier">validate_destination</span> <span class="ruby-identifier">path</span>
1012
+ 145: <span class="ruby-identifier">message</span> = <span class="ruby-node">&quot;Archive destination could not be found at: #{path}&quot;</span>
1013
+ 146: <span class="ruby-identifier">raise</span> <span class="ruby-constant">Sprout</span><span class="ruby-operator">::</span><span class="ruby-constant">Errors</span><span class="ruby-operator">::</span><span class="ruby-constant">ArchiveUnpackerError</span>.<span class="ruby-identifier">new</span>(<span class="ruby-identifier">message</span>) <span class="ruby-keyword kw">if</span> <span class="ruby-identifier">path</span>.<span class="ruby-identifier">nil?</span> <span class="ruby-operator">||</span> <span class="ruby-operator">!</span><span class="ruby-constant">File</span>.<span class="ruby-identifier">exists?</span>(<span class="ruby-identifier">path</span>)
1014
+ 147: <span class="ruby-keyword kw">end</span></pre>
1015
+ </div>
1016
+
1017
+ </div>
1018
+
1019
+
1020
+
1021
+
1022
+ </div>
1023
+
1024
+
1025
+ </div>
1026
+
1027
+
1028
+ </div>
1029
+
1030
+
1031
+ <div id="rdoc-debugging-section-dump" class="debugging-section">
1032
+
1033
+ <p>Disabled; run with --debug to generate this.</p>
1034
+
1035
+ </div>
1036
+
1037
+ <div id="validator-badges">
1038
+ <p><small><a href="http://validator.w3.org/check/referer">[Validate]</a></small></p>
1039
+ <p><small>Generated with the <a href="http://deveiate.org/projects/Darkfish-Rdoc/">Darkfish
1040
+ Rdoc Generator</a> 1.1.6</small>.</p>
1041
+ </div>
1042
+
1043
+ </body>
1044
+ </html>
1045
+