class SigtermExtensions::Paths::Path
Attributes
glob[RW]
Public Class Methods
new(root, current, paths, options = {})
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 116 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
Public Instance Methods
<<(path)
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 168 def <<(path) @paths << path end
Also aliased as: push
children()
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 133 def children keys = @root.keys.find_all { |k| k.start_with?(@current) && k != @current } @root.values_at(*keys.sort) end
concat(paths)
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 173 def concat(paths) @paths.concat paths end
each(&block)
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 164 def each(&block) @paths.each(&block) end
existent()
click to toggle source
Returns all expanded paths but only if they exist in the filesystem.
# File lib/sigterm_extensions/paths.rb, line 209 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()
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 220 def existent_directories expanded.select { |d| File.directory?(d) } end
expanded()
click to toggle source
Expands all paths against the root and return all unique values.
# File lib/sigterm_extensions/paths.rb, line 190 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
Also aliased as: to_a
first()
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 140 def first expanded.first end
last()
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 144 def last expanded.last end
to_ary()
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 181 def to_ary @paths end
unshift(*paths)
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 177 def unshift(*paths) @paths.unshift(*paths) end
Private Instance Methods
files_in(path)
click to toggle source
# File lib/sigterm_extensions/paths.rb, line 227 def files_in(path) files = Dir.glob(@glob, base: path) files -= @exclude if @exclude files.map! { |file| File.join(path, file) } files.sort end