Class: Fig::WorkingDirectoryMaintainer
- Inherits:
-
Object
- Object
- Fig::WorkingDirectoryMaintainer
- Defined in:
- lib/fig/workingdirectorymaintainer.rb
Overview
Copies files from the project directories in FIG_HOME to the user’s working directory. It keeps track of which files have already been copied, and which package/versions they came from, and deletes files as necessary to ensure that we never have files from two different versions of the same package in the user’s working directory.
Instance Method Summary collapse
-
#initialize(base_dir) ⇒ WorkingDirectoryMaintainer
constructor
A new instance of WorkingDirectoryMaintainer.
- #prepare_for_shutdown(purged_unused_packages) ⇒ Object
- #retrieve(source, relpath) ⇒ Object
- #switch_to_package_version(name, version) ⇒ Object
Constructor Details
#initialize(base_dir) ⇒ WorkingDirectoryMaintainer
Returns a new instance of WorkingDirectoryMaintainer.
16 17 18 19 20 21 22 23 24 25 |
# File 'lib/fig/workingdirectorymaintainer.rb', line 16 def initialize(base_dir) @base_dir = base_dir @package_metadata_by_name = {} @local_fig_data_directory = File.join(@base_dir, '.fig') @metadata_file = File.join(@local_fig_data_directory, 'retrieve') if File.exist?(@metadata_file) () end end |
Instance Method Details
#prepare_for_shutdown(purged_unused_packages) ⇒ Object
46 47 48 49 50 51 52 53 54 |
# File 'lib/fig/workingdirectorymaintainer.rb', line 46 def prepare_for_shutdown(purged_unused_packages) if purged_unused_packages clean_up_unused_packages() end () return end |
#retrieve(source, relpath) ⇒ Object
40 41 42 43 44 |
# File 'lib/fig/workingdirectorymaintainer.rb', line 40 def retrieve(source, relpath) copy(source, relpath) return end |
#switch_to_package_version(name, version) ⇒ Object
27 28 29 30 31 32 33 34 35 36 37 38 |
# File 'lib/fig/workingdirectorymaintainer.rb', line 27 def switch_to_package_version(name, version) @package_meta = @package_metadata_by_name[name] if @package_meta && @package_meta.current_version != version clean_up_package_files() @package_meta = nil end if not @package_meta @package_meta = (name, version) end return end |