Methods

Included Modules

Attributes

[RW] glob

Class Public methods

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

📝 Source code
# 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
🔎 See on GitHub

Instance Public methods

<<(path)

Also aliased as: push
📝 Source code
# File railties/lib/rails/paths.rb, line 166
      def <<(path)
        @paths << path
      end
🔎 See on GitHub

children()

📝 Source code
# 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
🔎 See on GitHub

concat(paths)

📝 Source code
# File railties/lib/rails/paths.rb, line 171
      def concat(paths)
        @paths.concat paths
      end
🔎 See on GitHub

each(&block)

📝 Source code
# File railties/lib/rails/paths.rb, line 162
      def each(&block)
        @paths.each(&block)
      end
🔎 See on GitHub

existent()

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

📝 Source code
# 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
🔎 See on GitHub

existent_directories()

📝 Source code
# File railties/lib/rails/paths.rb, line 220
      def existent_directories
        expanded.select { |d| File.directory?(d) }
      end
🔎 See on GitHub

expanded()

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

Also aliased as: to_a
📝 Source code
# 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
🔎 See on GitHub

first()

📝 Source code
# File railties/lib/rails/paths.rb, line 138
      def first
        expanded.first
      end
🔎 See on GitHub

last()

📝 Source code
# File railties/lib/rails/paths.rb, line 142
      def last
        expanded.last
      end
🔎 See on GitHub

push(path)

Alias for: <<

to_a()

Alias for: expanded

to_ary()

📝 Source code
# File railties/lib/rails/paths.rb, line 179
      def to_ary
        @paths
      end
🔎 See on GitHub

unshift(*paths)

📝 Source code
# File railties/lib/rails/paths.rb, line 175
      def unshift(*paths)
        @paths.unshift(*paths)
      end
🔎 See on GitHub