Spec-Zone.ru › Ruby on Rails 4.1

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

Родитель:
Объект
Включенные модули:
Enumerable

Атрибуты

glob[RW]

Публичные методы класса

new(root, current, paths, options = {}) Показать исходный код
# 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

Публичные методы экземпляра

<<(path) Показать исходный код
# File railties/lib/rails/paths.rb, line 161
def <<(path)
  @paths << path
end
Также алиас: push
children() Показать исходный код
# File railties/lib/rails/paths.rb, line 126
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 166
def concat(paths)
  @paths.concat paths
end
each(&block) Показать исходный код
# File railties/lib/rails/paths.rb, line 157
def each(&block)
  @paths.each(&block)
end
existent() Показать исходный код

Возвращает все расширенные пути, но только если они существуют в файловой системе.

# File railties/lib/rails/paths.rb, line 200
def existent
  expanded.select { |f| File.exist?(f) }
end
existent_directories() Показать исходный код
# File railties/lib/rails/paths.rb, line 204
def existent_directories
  expanded.select { |d| File.directory?(d) }
end
expanded() Показать исходный код

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

# File railties/lib/rails/paths.rb, line 179
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
first() Показать исходный код
# File railties/lib/rails/paths.rb, line 133
def first
  expanded.first
end
last() Показать исходный код
# File railties/lib/rails/paths.rb, line 137
def last
  expanded.last
end
push(path)
Псевдоним для: <<
to_a()
Псевдоним для: expanded
to_ary() Показать исходный код
# File railties/lib/rails/paths.rb, line 174
def to_ary
  @paths
end
unshift(path) Показать исходный код
# File railties/lib/rails/paths.rb, line 170
def unshift(path)
  @paths.unshift path
end

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

Spec-Zone.ru

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