class Kamaze::Project::Tools::Packager::Filesystem::Operator
Filesystem operator (manipulator)
This class is intended to manipulate a “Filesystem“.
Attributes
fs[R]
@return [Kamaze::Project::Tools::Packager::Filesystem]
options[R]
@return [Hash{Symbol => Object}]
Public Class Methods
new(filesystem, options = {})
click to toggle source
@param [Kamaze::Project::Tools::Packager::Filesystem] filesystem @param [Hash] options @see fs
# File lib/kamaze/project/tools/packager/filesystem/operator.rb, line 31 def initialize(filesystem, options = {}) @fs = filesystem @options = { verbose: true }.merge(options.to_h) # Pass included methods to protected utils_methods.each do |m| next unless self.public_methods.include?(m) # rubocop:disable Style/AccessModifierDeclarations self.singleton_class.class_eval { protected m } # rubocop:enable Style/AccessModifierDeclarations end end
Public Instance Methods
prepare()
click to toggle source
Prepare package
@return [self]
# File lib/kamaze/project/tools/packager/filesystem/operator.rb, line 48 def prepare fs.package_dirs.each_value { |dir| mkdir_p(dir, **options) } self.purge_purgeables.prepare_srcdir end
prepare_srcdir()
click to toggle source
Prepare “src“ dir
Source files are refreshed (deleted and copied again)
@return [self]
# File lib/kamaze/project/tools/packager/filesystem/operator.rb, line 68 def prepare_srcdir src_dir = Pathname.new(fs.package_dirs.fetch(:src)) purge(src_dir, options) skel_dirs(src_dir, fs.source_files, options) fs.source_files.map do |path| origin = path.realpath # resolves symlinks cp(origin, src_dir.join(path), **options.merge(preserve: true)) end self end
purge_purgeables()
click to toggle source
Purge purgeables elements
@return [self]
# File lib/kamaze/project/tools/packager/filesystem/operator.rb, line 57 def purge_purgeables fs.purgeable_dirs.each_value { |dir| purge(dir, **options) } self end
verbose?()
click to toggle source
# File lib/kamaze/project/tools/packager/filesystem/operator.rb, line 83 def verbose? options[:verbose] == true end