Class: Toys::SourceInfo
- Inherits:
-
Object
- Object
- Toys::SourceInfo
- Defined in:
- lib/toys/source_info.rb
Overview
Information about source toys directories and files.
Instance Attribute Summary collapse
-
#context_directory ⇒ String?
readonly
The context directory path (normally the directory containing the toplevel toys file or directory).
-
#parent ⇒ Toys::SourceInfo?
readonly
The parent of this SourceInfo.
-
#source ⇒ String, Proc
readonly
The source, which may be a path or a proc.
-
#source_name ⇒ String
(also: #to_s)
readonly
The user-visible name of this source.
-
#source_path ⇒ String?
readonly
The path of the current source file or directory.
-
#source_proc ⇒ Proc?
readonly
The source proc.
-
#source_type ⇒ :file, ...
readonly
Return the type of source.
Instance Method Summary collapse
-
#apply_lib_paths ⇒ self
Apply all lib paths in order from high to low priority.
-
#find_data(path, type: nil) ⇒ String?
Locate the given data file or directory and return an absolute path.
Instance Attribute Details
#context_directory ⇒ String? (readonly)
The context directory path (normally the directory containing the toplevel toys file or directory).
41 42 43 |
# File 'lib/toys/source_info.rb', line 41 def context_directory @context_directory end |
#parent ⇒ Toys::SourceInfo? (readonly)
The parent of this SourceInfo.
31 32 33 |
# File 'lib/toys/source_info.rb', line 31 def parent @parent end |
#source ⇒ String, Proc (readonly)
The source, which may be a path or a proc.
49 50 51 |
# File 'lib/toys/source_info.rb', line 49 def source @source end |
#source_name ⇒ String (readonly) Also known as: to_s
The user-visible name of this source.
79 80 81 |
# File 'lib/toys/source_info.rb', line 79 def source_name @source_name end |
#source_path ⇒ String? (readonly)
The path of the current source file or directory.
64 65 66 |
# File 'lib/toys/source_info.rb', line 64 def source_path @source_path end |
#source_proc ⇒ Proc? (readonly)
The source proc.
72 73 74 |
# File 'lib/toys/source_info.rb', line 72 def source_proc @source_proc end |
#source_type ⇒ :file, ... (readonly)
Return the type of source.
56 57 58 |
# File 'lib/toys/source_info.rb', line 56 def source_type @source_type end |
Instance Method Details
#apply_lib_paths ⇒ self
Apply all lib paths in order from high to low priority
111 112 113 114 115 |
# File 'lib/toys/source_info.rb', line 111 def apply_lib_paths parent&.apply_lib_paths $LOAD_PATH.unshift(@lib_dir) if @lib_dir && !$LOAD_PATH.include?(@lib_dir) self end |
#find_data(path, type: nil) ⇒ String?
Locate the given data file or directory and return an absolute path.
91 92 93 94 95 96 97 98 99 100 101 102 103 104 |
# File 'lib/toys/source_info.rb', line 91 def find_data(path, type: nil) if @data_dir full_path = ::File.join(@data_dir, path) case type when :file return full_path if ::File.file?(full_path) when :directory return full_path if ::File.directory?(full_path) else return full_path if ::File.readable?(full_path) end end parent&.find_data(path, type: type) end |