Class: Rails::Paths::Path
Relationships & Source Files | |
Super Chains via Extension / Inclusion / Inheritance | |
Instance Chain:
self,
::Enumerable
|
|
Inherits: | Object |
Defined in: | railties/lib/rails/paths.rb |
Class Method Summary
- .new(root, current, paths, options = {}) ⇒ Path constructor
Instance Attribute Summary
Instance Method Summary
- #<<(path) (also: #push)
- #children
- #concat(paths)
- #each(&block)
-
#existent
Returns all expanded paths but only if they exist in the filesystem.
- #existent_directories
-
#expanded
(also: #to_a)
Expands all paths against the root and return all unique values.
- #first
- #last
-
#push(path)
Alias for #<<.
-
#to_a
Alias for #expanded.
- #to_ary
- #unshift(*paths)
::Enumerable
- Included
Constructor Details
.new(root, current, paths, options = {}) ⇒ Path
# File 'railties/lib/rails/paths.rb', line 115
def initialize(root, current, paths, = {}) @paths = paths @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
Instance Attribute Details
#glob (rw)
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 113
attr_accessor :glob
Instance Method Details
#<<(path) Also known as: #push
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 166
def <<(path) @paths << path end
#children
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 131
def children keys = @root.keys.find_all { |k| k.start_with?(@current) && k != @current } @root.values_at(*keys.sort) end
#concat(paths)
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 171
def concat(paths) @paths.concat paths end
#each(&block)
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 162
def each(&block) @paths.each(&block) end
#existent
Returns all expanded paths but only if they exist in the filesystem.
#existent_directories
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 220
def existent_directories .select { |d| File.directory?(d) } end
#expanded Also known as: #to_a
Expands all paths against the root and return all unique values.
# File 'railties/lib/rails/paths.rb', line 188
def raise "You need to set a path root" unless @root.path result = [] each do |p| path = File. (p, @root.path) if @glob && File.directory?(path) Dir.chdir(path) do result.concat(Dir.glob(@glob).map { |file| File.join path, file }.sort) end else result << path end end result.uniq! result end
#first
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 138
def first .first end
#last
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 142
def last .last end
#push(path)
Alias for #<<.
# File 'railties/lib/rails/paths.rb', line 169
alias :push :<<
#to_a
Alias for #expanded.
# File 'railties/lib/rails/paths.rb', line 224
alias to_a
#to_ary
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 179
def to_ary @paths end
#unshift(*paths)
[ GitHub ]# File 'railties/lib/rails/paths.rb', line 175
def unshift(*paths) @paths.unshift(*paths) end