Module: Hitimes::Paths

Defined in:
lib/hitimes/paths.rb

Overview

Access to various paths inside the project programatically

Class Method Summary collapse

Class Method Details

.lib_path(*args) ⇒ Object

:call-seq:

Hitimes::Paths.lib_path( *args ) -> String

Returns The full expanded path of the lib directory below root_dir. All parameters passed in are joined onto the result. A trailing File::SEPARATOR is guaranteed if args are not present.



38
39
40
# File 'lib/hitimes/paths.rb', line 38

def self.lib_path(*args)
  sub_path("lib", *args)
end

.root_dirObject

:call-seq:

Hitimes::Paths.root_dir -> String

Returns The full expanded path of the parent directory of lib going up the path from the current file. A trailing File::SEPARATOR is guaranteed.



21
22
23
24
25
26
27
# File 'lib/hitimes/paths.rb', line 21

def self.root_dir
  @root_dir ||= begin
    path_parts = ::File.expand_path(__FILE__).split(::File::SEPARATOR)
    lib_index  = path_parts.rindex("lib")
    @root_dir = path_parts[0...lib_index].join(::File::SEPARATOR) + ::File::SEPARATOR
  end
end

.sub_path(sub, *args) ⇒ Object

:call-seq:

Hitimes::Paths.sub_path( sub, *args ) -> String

Returns the full expanded path of the sub directory below _root_dir. All arg parameters passed in are joined onto the result. A trailing File::SEPARATOR is guaranteed if args are not present.



50
51
52
53
# File 'lib/hitimes/paths.rb', line 50

def self.sub_path(sub, *args)
  sp = ::File.join(root_dir, sub) + File::SEPARATOR
  ::File.join(sp, *args) if args
end