Spec-Zone.ru › Ruby on Rails 8.1

класс Rails::Paths::Path

Родительский класс:
Object
Подключённые модули:
Enumerable

Атрибуты

glob [RW]

Открытые методы класса

new (root, current, paths, options = {}) Показать исходный код
# File railties/lib/rails/paths.rb, line 119
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

Открытые методы экземпляра

<< (path) Показать исходный код
# File railties/lib/rails/paths.rb, line 171
def <<(path)
  @paths << path
end
Также имеет псевдоним: push
children () Показать исходный код
# File railties/lib/rails/paths.rb, line 136
def children
  keys = @root.keys.find_all { |k|
    k.start_with?(@current) && k != @current
  }
  @root.values_at(*keys.sort)
end
concat (paths) Показать исходный код
# File railties/lib/rails/paths.rb, line 176
def concat(paths)
  @paths.concat paths
end
each (&block) Показать исходный код
# File railties/lib/rails/paths.rb, line 167
def each(&block)
  @paths.each(&block)
end
existent () Показать исходный код
# File railties/lib/rails/paths.rb, line 220
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 () Показать исходный код
# File railties/lib/rails/paths.rb, line 231
def existent_directories
  expanded.select { |d| File.directory?(d) }
end
expanded () Показать исходный код
# File railties/lib/rails/paths.rb, line 201
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

Разворачивает все пути относительно корневого каталога и возвращает все уникальные значения.

Также имеет псевдоним: to_a
first () Показать исходный код
# File railties/lib/rails/paths.rb, line 143
def first
  expanded.first
end
last () Показать исходный код
# File railties/lib/rails/paths.rb, line 147
def last
  expanded.last
end
paths () Показать исходный код
# File railties/lib/rails/paths.rb, line 188
def paths
  raise "You need to set a path root" unless @root.path

  map do |p|
    Pathname.new(@root.path).join(p)
  end
end
push (path)
Псевдоним для: <<
to_a ()
Псевдоним для: expanded
to_ary () Показать исходный код
# File railties/lib/rails/paths.rb, line 184
def to_ary
  @paths
end
unshift (*paths) Показать исходный код
# File railties/lib/rails/paths.rb, line 180
def unshift(*paths)
  @paths.unshift(*paths)
end

© 2004–2021 David Heinemeier Hansson
Licensed under the MIT License.

Spec-Zone.ru

Настройки Оффлайн Что нового Помощь О нас
Spec-Zone .ru
спецификации, руководства, описания, API