Class: Rails::Paths::Path
- Includes:
- PathParent
- Defined in:
- railties/lib/rails/paths.rb
Instance Attribute Summary collapse
-
#glob ⇒ Object
Returns the value of attribute glob.
-
#path ⇒ Object
readonly
Returns the value of attribute path.
Instance Method Summary collapse
- #children ⇒ Object
-
#existent ⇒ Object
Returns all expanded paths but only if they exist in the filesystem.
- #existent_directories ⇒ Object
-
#expanded ⇒ Object
(also: #to_a)
Expands all paths against the root and return all unique values.
- #first ⇒ Object
-
#initialize(root, current, *paths) ⇒ Path
constructor
A new instance of Path.
- #last ⇒ Object
- #paths ⇒ Object
Methods included from PathParent
Methods inherited from Array
#as_json, #encode_json, #extract_options!, #fifth, #forty_two, #fourth, #from, #in_groups, #in_groups_of, #sample, #second, #split, #third, #to, #to_formatted_s, #to_param, #to_query, #to_sentence, #to_xml, #uniq_by, #uniq_by!, wrap
Constructor Details
#initialize(root, current, *paths) ⇒ Path
Returns a new instance of Path.
129 130 131 132 133 134 135 136 137 138 139 140 141 |
# File 'railties/lib/rails/paths.rb', line 129 def initialize(root, current, *paths) = paths.last.is_a?(::Hash) ? paths.pop : {} super(paths.flatten) @current = current @root = root @glob = [:glob] [:autoload_once] ? autoload_once! : skip_autoload_once! [:eager_load] ? eager_load! : skip_eager_load! [:autoload] ? autoload! : skip_autoload! [:load_path] ? load_path! : skip_load_path! end |
Dynamic Method Handling
This class handles dynamic methods through the method_missing method in the class Rails::Paths::PathParent
Instance Attribute Details
#glob ⇒ Object
Returns the value of attribute glob
127 128 129 |
# File 'railties/lib/rails/paths.rb', line 127 def glob @glob end |
#path ⇒ Object (readonly)
Returns the value of attribute path
126 127 128 |
# File 'railties/lib/rails/paths.rb', line 126 def path @path end |
Instance Method Details
#children ⇒ Object
143 144 145 146 147 |
# File 'railties/lib/rails/paths.rb', line 143 def children keys = @root.keys.select { |k| k.include?(@current) } keys.delete(@current) @root.values_at(*keys.sort) end |
#existent ⇒ Object
Returns all expanded paths but only if they exist in the filesystem.
193 194 195 |
# File 'railties/lib/rails/paths.rb', line 193 def existent .select { |f| File.exists?(f) } end |
#existent_directories ⇒ Object
197 198 199 |
# File 'railties/lib/rails/paths.rb', line 197 def existent_directories .select { |d| File.directory?(d) } end |
#expanded ⇒ Object Also known as: to_a
Expands all paths against the root and return all unique values.
174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 |
# File 'railties/lib/rails/paths.rb', line 174 def raise "You need to set a path root" unless @root.path result = [] each do |p| path = File.(p, @root.path) if @glob result.concat Dir[File.join(path, @glob)].sort else result << path end end result.uniq! result end |
#first ⇒ Object
149 150 151 |
# File 'railties/lib/rails/paths.rb', line 149 def first .first end |
#last ⇒ Object
153 154 155 |
# File 'railties/lib/rails/paths.rb', line 153 def last .last end |
#paths ⇒ Object
201 202 203 204 |
# File 'railties/lib/rails/paths.rb', line 201 def paths ActiveSupport::Deprecation.warn "paths is deprecated. Please call expand instead." end |