Module: Amalgalite::Paths

Defined in:
lib/amalgalite/paths.rb

Overview

Paths contains helpful methods to determine paths of files inside the Amalgalite library

Class Method Summary collapse

Class Method Details

.config_path(*args) ⇒ Object

returns
String

The full expanded path of the config directory

below root_dir. All parameters passed in are joined onto the result. Trailing File::SEPARATOR is guaranteed if args are not present.



33
34
35
# File 'lib/amalgalite/paths.rb', line 33

def self.config_path(*args)
  self.sub_path("config", *args)
end

.data_path(*args) ⇒ Object

returns
String

The full expanded path of the data directory below

root_dir. All parameters passed in are joined onto the result. Trailing File::SEPARATOR is guaranteed if _*args_ are not present.



42
43
44
# File 'lib/amalgalite/paths.rb', line 42

def self.data_path(*args)
  self.sub_path("data", *args)
end

.ext_path(*args) ⇒ Object

returns
String

The full expanded path of the ext directory below

root_dir. All parameters passed in are joined onto the result. Trailing File::SEPARATOR is guaranteed if _*args_ are not present.



60
61
62
# File 'lib/amalgalite/paths.rb', line 60

def self.ext_path(*args)
  self.sub_path("ext", *args)
end

.lib_path(*args) ⇒ Object

returns
String

The full expanded path of the lib directory below

root_dir. All parameters passed in are joined onto the result. Trailing File::SEPARATOR is guaranteed if _*args_ are not present.



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

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

.root_dirObject

The root directory of the project is considered to be the parent directory of the ‘lib’ directory.

returns
String

The full expanded path of the parent directory of ‘lib’

going up the path from the current file. Trailing File::SEPARATOR is guaranteed.



19
20
21
22
23
24
25
26
# File 'lib/amalgalite/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")
    path_parts[0...lib_index].join(::File::SEPARATOR) + ::File::SEPARATOR
  )
  return @root_dir
end

.spec_path(*args) ⇒ Object

returns
String

The full expanded path of the spec directory below

root_dir. All parameters passed in are joined onto the result. Trailing File::SEPARATOR is guaranteed if _*args_ are not present.



69
70
71
# File 'lib/amalgalite/paths.rb', line 69

def self.spec_path(*args)
  self.sub_path("spec", *args)
end

.sub_path(sub, *args) ⇒ Object



74
75
76
77
# File 'lib/amalgalite/paths.rb', line 74

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