Module: Garcon::Pathref
Overview
Expand a path with late-evaluated segments. Calls expand_path – ‘~’ becomes $HOME, ‘..’ is expanded, etc.
Constant Summary collapse
- ROOT_PATHS =
Hash.new
Instance Method Summary collapse
-
#of(*pathsegs) ⇒ Pathname
(also: #path_to)
A single expanded Pathname.
- #register_default_paths(handle_paths = {}) ⇒ Object
- #register_path(handle, *pathsegs) ⇒ Object
- #register_paths(handle_paths = {}) ⇒ Object
-
#relpath_to(*pathsegs) ⇒ Object
(also: #relative_path_to)
Expand a path with late-evaluated segments @see ‘.path_to`.
- #unregister_path(handle) ⇒ Object
Instance Method Details
#of(*pathsegs) ⇒ Pathname Also known as: path_to
Returns A single expanded Pathname.
60 61 62 |
# File 'lib/garcon/core_ext/pathname.rb', line 60 def of(*pathsegs) relpath_to(*pathsegs). end |
#register_default_paths(handle_paths = {}) ⇒ Object
79 80 81 82 83 84 85 |
# File 'lib/garcon/core_ext/pathname.rb', line 79 def register_default_paths(handle_paths = {}) handle_paths.each_pair do |handle, pathsegs| unless ROOT_PATHS.has_key?(handle.to_sym) register_path(handle, *pathsegs) end end end |
#register_path(handle, *pathsegs) ⇒ Object
66 67 68 69 |
# File 'lib/garcon/core_ext/pathname.rb', line 66 def register_path(handle, *pathsegs) ArgumentError.arity_at_least!(pathsegs, 1) ROOT_PATHS[handle.to_sym] = pathsegs end |
#register_paths(handle_paths = {}) ⇒ Object
72 73 74 75 76 |
# File 'lib/garcon/core_ext/pathname.rb', line 72 def register_paths(handle_paths = {}) handle_paths.each_pair do |handle, pathsegs| register_path(handle, *pathsegs) end end |
#relpath_to(*pathsegs) ⇒ Object Also known as: relative_path_to
Expand a path with late-evaluated segments @see ‘.path_to`. Calls cleanpath (removing `//` double slashes and useless `..`s), but does not reference the filesystem or make paths absolute.
97 98 99 100 101 |
# File 'lib/garcon/core_ext/pathname.rb', line 97 def relpath_to(*pathsegs) ArgumentError.arity_at_least!(pathsegs, 1) pathsegs = pathsegs.flatten.map { |ps| (ps) }.flatten self.new(File.join(*pathsegs)).cleanpath(true) end |
#unregister_path(handle) ⇒ Object
88 89 90 |
# File 'lib/garcon/core_ext/pathname.rb', line 88 def unregister_path(handle) ROOT_PATHS.delete handle.to_sym end |