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).
43 44 45 |
# File 'lib/toys/source_info.rb', line 43 def context_directory @context_directory end |
#parent ⇒ Toys::SourceInfo? (readonly)
The parent of this SourceInfo.
33 34 35 |
# File 'lib/toys/source_info.rb', line 33 def parent @parent end |
#source ⇒ String, Proc (readonly)
The source, which may be a path or a proc.
51 52 53 |
# File 'lib/toys/source_info.rb', line 51 def source @source end |
#source_name ⇒ String (readonly) Also known as: to_s
The user-visible name of this source.
81 82 83 |
# File 'lib/toys/source_info.rb', line 81 def source_name @source_name end |
#source_path ⇒ String? (readonly)
The path of the current source file or directory.
66 67 68 |
# File 'lib/toys/source_info.rb', line 66 def source_path @source_path end |
#source_proc ⇒ Proc? (readonly)
The source proc.
74 75 76 |
# File 'lib/toys/source_info.rb', line 74 def source_proc @source_proc end |
#source_type ⇒ :file, ... (readonly)
Return the type of source.
58 59 60 |
# File 'lib/toys/source_info.rb', line 58 def source_type @source_type end |
Instance Method Details
#apply_lib_paths ⇒ self
Apply all lib paths in order from high to low priority
113 114 115 116 117 |
# File 'lib/toys/source_info.rb', line 113 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.
93 94 95 96 97 98 99 100 101 102 103 104 105 106 |
# File 'lib/toys/source_info.rb', line 93 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 |