Class: Excavate::Archive
- Inherits:
-
Object
- Object
- Excavate::Archive
- Defined in:
- lib/excavate/archive.rb
Instance Method Summary collapse
- #extract(target = nil, recursive_packages: false, files: [], filter: nil) ⇒ Object
- #files(recursive_packages: false, files: [], filter: nil, &block) ⇒ Object
-
#initialize(archive) ⇒ Archive
constructor
A new instance of Archive.
Constructor Details
#initialize(archive) ⇒ Archive
Returns a new instance of Archive.
5 6 7 |
# File 'lib/excavate/archive.rb', line 5 def initialize(archive) @archive = archive end |
Instance Method Details
#extract(target = nil, recursive_packages: false, files: [], filter: nil) ⇒ Object
26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 |
# File 'lib/excavate/archive.rb', line 26 def extract(target = nil, recursive_packages: false, files: [], filter: nil) recursive_packages = true if files.any? if files.size.positive? extract_selection(target, Selection.from_files(files), recursive_packages: recursive_packages) elsif filter extract_selection(target, Selection.from_filter(filter), recursive_packages: recursive_packages) else extract_all(target, recursive_packages: recursive_packages) end end |
#files(recursive_packages: false, files: [], filter: nil, &block) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 |
# File 'lib/excavate/archive.rb', line 9 def files(recursive_packages: false, files: [], filter: nil, &block) unless block return enum_for(:files, recursive_packages: recursive_packages, files: files, filter: filter) end recursive_packages = true if files.any? target = Dir.mktmpdir extract(target, recursive_packages: recursive_packages, files: files, filter: filter) all_files_in(target).each(&block) ensure Filesystem.remove_recursive(target) if target end |