Module: DirectoryWatcher::Paths
Overview
Paths contains helpful methods to determine paths of files inside the DirectoryWatcher library
Instance Method Summary collapse
-
#lib_path(*args, &block) ⇒ Object
Return a path relative to the ‘lib’ directory in this project.
-
#path(*args, &block) ⇒ Object
Return a path relative to the ‘root’ directory in the project.
-
#root_dir ⇒ Object
The root directory of the project is considered the parent directory of the ‘lib’ directory.
-
#sub_path(sub, *args, &block) ⇒ Object
Calculate the full expanded path of the item with respect to a sub path of ‘root_dir’.
-
#with_load_path(path, &block) ⇒ Object
Execute a block in the context of a path added to $LOAD_PATH.
Instance Method Details
#lib_path(*args, &block) ⇒ Object
Return a path relative to the ‘lib’ directory in this project
20 21 22 |
# File 'lib/directory_watcher/paths.rb', line 20 def lib_path(*args,&block) sub_path('lib', *args, &block) end |
#path(*args, &block) ⇒ Object
Return a path relative to the ‘root’ directory in the project
26 27 28 |
# File 'lib/directory_watcher/paths.rb', line 26 def path(*args,&block) sub_path('', *args, &block) end |
#root_dir ⇒ Object
The root directory of the project is considered the parent directory of the ‘lib’ directory.
Returns The full expanded path of the parent directory of ‘lib’ going up the path from the current file. Trailing File::SEPARATOR is guaranteed
12 13 14 15 16 |
# File 'lib/directory_watcher/paths.rb', line 12 def root_dir path_parts = ::File.(__FILE__).split(::File::SEPARATOR) lib_index = path_parts.rindex("lib") return path_parts[0...lib_index].join(::File::SEPARATOR) + ::File::SEPARATOR end |
#sub_path(sub, *args, &block) ⇒ Object
Calculate the full expanded path of the item with respect to a sub path of ‘root_dir’
33 34 35 36 37 38 39 40 41 42 |
# File 'lib/directory_watcher/paths.rb', line 33 def sub_path(sub,*args,&block) rv = ::File.join(root_dir, sub) + ::File::SEPARATOR rv = ::File.join(rv, *args) if args if block with_load_path( rv ) do rv = block.call end end return rv end |
#with_load_path(path, &block) ⇒ Object
Execute a block in the context of a path added to $LOAD_PATH
46 47 48 49 50 51 |
# File 'lib/directory_watcher/paths.rb', line 46 def with_load_path(path, &block) $LOAD_PATH.unshift path block.call ensure $LOAD_PATH.shift end |