Rails::Paths::Path (original) (raw)
Methods
C
E
F
L
N
P
T
U
Included Modules
Attributes
Class Public methods
new(root, current, paths, options = {})Link
def initialize(root, current, paths, options = {}) @paths = paths @current = current @root = root @glob = options[:glob] @exclude = options[:exclude]
options[:autoload_once] ? autoload_once! : skip_autoload_once! options[:eager_load] ? eager_load! : skip_eager_load! options[:autoload] ? autoload! : skip_autoload! options[:load_path] ? load_path! : skip_load_path! end
Instance Public methods
children()Link
def children keys = @root.keys.find_all { |k| k.start_with?(@current) && k != @current } @root.values_at(*keys.sort) end
concat(paths)Link
def concat(paths) @paths.concat paths end
existent()Link
Returns all expanded paths but only if they exist in the filesystem.
def existent expanded.select do |f| does_exist = File.exist?(f)
if !does_exist && File.symlink?(f)
raise "File #{f.inspect} is a symlink that does not point to a valid file"
end
does_exist
end end
existent_directories()Link
def existent_directories expanded.select { |d| File.directory?(d) } end
expanded()Link
Expands all paths against the root and return all unique values.
Also aliased as: to_a
def expanded raise "You need to set a path root" unless @root.path result = []
each do |path| path = File.expand_path(path, @root.path)
if @glob && File.directory?(path)
result.concat files_in(path)
else
result << path
end
end
result.uniq! result end
paths()Link
def paths raise "You need to set a path root" unless @root.path
map do |p| Pathname.new(@root.path).join(p) end end
unshift(*paths)Link
def unshift(*paths) @paths.unshift(*paths) end