Methods

Included Modules

Attributes

[RW] glob

Class Public methods

new(root, current, paths, options = {})

# File railties/lib/rails/paths.rb, line 115
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

Instance Public methods

<<(path)

Also aliased as: push
# File railties/lib/rails/paths.rb, line 166
def <<(path)
  @paths << path
end

children()

# File railties/lib/rails/paths.rb, line 131
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 171
def concat(paths)
  @paths.concat paths
end

each(&block)

# File railties/lib/rails/paths.rb, line 162
def each(&block)
  @paths.each(&block)
end

existent()

Returns all expanded paths but only if they exist in the filesystem.

# File railties/lib/rails/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()

# File railties/lib/rails/paths.rb, line 220
def existent_directories
  expanded.select { |d| File.directory?(d) }
end

expanded()

Expands all paths against the root and return all unique values.

Also aliased as: to_a
# File railties/lib/rails/paths.rb, line 188
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

first()

# File railties/lib/rails/paths.rb, line 138
def first
  expanded.first
end

last()

# File railties/lib/rails/paths.rb, line 142
def last
  expanded.last
end

push(path)

Alias for: <<

to_a()

Alias for: expanded

to_ary()

# File railties/lib/rails/paths.rb, line 179
def to_ary
  @paths
end

unshift(*paths)

# File railties/lib/rails/paths.rb, line 175
def unshift(*paths)
  @paths.unshift(*paths)
end