Module: Stickler::Paths

Defined in:
lib/stickler/paths.rb

Overview

Access to various paths inside the project programatically

Class Method Summary collapse

Class Method Details

.lib_path(*args) ⇒ Object

:call-seq:

Stickler::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.



36
37
38
# File 'lib/stickler/paths.rb', line 36

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

.root_dirObject

:call-seq:

Stickler::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.



19
20
21
22
23
24
25
# File 'lib/stickler/paths.rb', line 19

def self.root_dir
  @root_dir ||=(
    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

.sub_path(sub, *args) ⇒ Object

:call-seq:

Stickler::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.



48
49
50
51
# File 'lib/stickler/paths.rb', line 48

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