Module: PathMapper

Extended by:
Helpers
Defined in:
lib/path_mapper.rb,
lib/path_mapper/helpers.rb,
lib/path_mapper/version.rb,
lib/path_mapper/node/dir.rb,
lib/path_mapper/reloader.rb,
lib/path_mapper/node/base.rb,
lib/path_mapper/node/file.rb,
lib/path_mapper/node/null.rb,
lib/path_mapper/helper/debug.rb,
lib/path_mapper/node/dir/erb.rb,
lib/path_mapper/helper/logger.rb,
lib/path_mapper/node/dir/file.rb,
lib/path_mapper/node/dir/grep.rb,
lib/path_mapper/node/file/erb.rb,
lib/path_mapper/helper/storage.rb,
lib/path_mapper/node/base/file.rb,
lib/path_mapper/node/base/grep.rb,
lib/path_mapper/node/file/file.rb,
lib/path_mapper/node/null/file.rb,
lib/path_mapper/patch/pathname.rb,
lib/path_mapper/node/dir/inheritance.rb,
lib/path_mapper/node/dir/representation.rb,
lib/path_mapper/node/base/representation.rb,
lib/path_mapper/node/file/representation.rb,
lib/path_mapper/node/null/representation.rb,
lib/path_mapper/node/dir/inheritance/base.rb,
lib/path_mapper/node/dir/inheritance/grep.rb

Defined Under Namespace

Modules: Helper, Helpers, Node, Patch, Reloader Classes: DirNode, FileNode, NullNode

Constant Summary collapse

VERSION =
'0.0.3'

Class Method Summary collapse

Methods included from Helpers

kwargs, with_line_separator

Methods included from Helper::Storage

#delete_storage_branch, #deleted_files, #storage, #storage_file_delete, #storage_file_tree, #storage_tree

Methods included from Helper::Logger

#logger, #logger=, #with_logger

Methods included from Helper::Debug

#dry_run, #dry_run=, #with_dry_run

Class Method Details

.new(path, **kwargs) ⇒ Object



41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
# File 'lib/path_mapper.rb', line 41

def self.new(path, **kwargs)
  path = Pathname(path) unless path.is_a? Pathname

  if File.exists? path
    if File.directory? path
      self.with_dry_run {|dry_run| self.storage_tree(path) if !self.storage.key?(path) and dry_run }
      return DirNode.new(path, **kwargs)
    elsif !File.read(path).strip.empty?
      self.with_dry_run {|dry_run| self.storage_file_tree(path) if !self.storage.key?(path) and dry_run }
      return FileNode.new(path, **kwargs)
    end
  end

  self.with_dry_run do |dry_run|
    if self.storage.key? path and !self.deleted_files.include? path
      if self.storage[path].nil?
        return DirNode.new(path, **kwargs)
      elsif !self.storage[path].strip.empty?
        return FileNode.new(path, **kwargs)
      end
    end if dry_run
  end

  NullNode.new(path, **kwargs)
end