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