класс Rails::Paths::Path
Атрибуты
glob[RW]
Публичные методы класса
# File railties/lib/rails/paths.rb, line 114
def initialize(root, current, paths, options = {})
@paths = paths
@current = current
@root = root
@glob = options[:glob]
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 Публичные методы экземпляра
# File railties/lib/rails/paths.rb, line 165 def <<(path) @paths << path end
Также алиас: push
# File railties/lib/rails/paths.rb, line 130
def children
keys = @root.keys.find_all { |k|
k.start_with?(@current) && k != @current
}
@root.values_at(*keys.sort)
end # File railties/lib/rails/paths.rb, line 170 def concat(paths) @paths.concat paths end
# File railties/lib/rails/paths.rb, line 161 def each(&block) @paths.each(&block) end
# File railties/lib/rails/paths.rb, line 208
def existent
expanded.select { |f| File.exist?(f) }
end Возвращает все расширенные пути, но только если они существуют в файловой системе.
# File railties/lib/rails/paths.rb, line 212
def existent_directories
expanded.select { |d| File.directory?(d) }
end # File railties/lib/rails/paths.rb, line 187
def expanded
raise "You need to set a path root" unless @root.path
result = []
each do |p|
path = File.expand_path(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 Расширяет все пути относительно корня и возвращает все уникальные значения.
Также алиас: to_a
# File railties/lib/rails/paths.rb, line 137 def first expanded.first end
# File railties/lib/rails/paths.rb, line 141 def last expanded.last end
push(path)
Алиас для: <<
to_a()
Алиас для: expanded
# File railties/lib/rails/paths.rb, line 178 def to_ary @paths end
# File railties/lib/rails/paths.rb, line 174 def unshift(*paths) @paths.unshift(*paths) end
© 2004–2018 David Heinemeier Hansson
Licensed under the MIT License.