Module: Rack::Reloader::Stat

### Home Classes Methods

### In Files

- lib/rack/reloader.rb

### Methods

- #figure_path
- #rotation
- #safe_stat

### Files

- KNOWN-ISSUES

### Class/Module Index

Quicksearch

- Rack
- Rack::Auth
- Rack::Auth::AbstractHandler
- Rack::Auth::AbstractRequest
- Rack::Auth::Basic
- Rack::Auth::Basic::Request
- Rack::Auth::Digest
- Rack::Auth::Digest::MD5
- Rack::Auth::Digest::Nonce
- Rack::Auth::Digest::Params
- Rack::Auth::Digest::Request
- Rack::BodyProxy
- Rack::Builder
- Rack::Cascade
- Rack::Chunked
- Rack::Chunked::Body
- Rack::CommonLogger
- Rack::ConditionalGet
- Rack::Config
- Rack::ContentLength
- Rack::ContentType
- Rack::Deflater
- Rack::Deflater::DeflateStream
- Rack::Deflater::GzipStream
- Rack::Directory
- Rack::ETag
- Rack::File
- Rack::ForwardRequest
- Rack::Handler
- Rack::Handler::CGI
- Rack::Handler::EventedMongrel
- Rack::Handler::FastCGI
- Rack::Handler::LSWS
- Rack::Handler::Mongrel
- Rack::Handler::SCGI
- Rack::Handler::SwiftipliedMongrel
- Rack::Handler::Thin
- Rack::Handler::WEBrick
- Rack::Head
- Rack::Lint
- Rack::Lobster
- Rack::Lock
- Rack::Logger
- Rack::MethodOverride
- Rack::Mime
- Rack::MockRequest
- Rack::MockRequest::FatalWarner
- Rack::MockRequest::FatalWarning
- Rack::MockResponse
- Rack::Multipart
- Rack::Multipart::Generator
- Rack::Multipart::MultipartLimitError
- Rack::Multipart::Parser
- Rack::Multipart::UploadedFile
- Rack::NullLogger
- Rack::Recursive
- Rack::Reloader
- Rack::Reloader::Stat
- Rack::Request
- Rack::Response
- Rack::Response::Helpers
- Rack::RewindableInput
- Rack::RewindableInput::Tempfile
- Rack::Runtime
- Rack::Sendfile
- Rack::Server
- Rack::Server::Options
- Rack::Session
- Rack::Session::Abstract
- Rack::Session::Abstract::ID
- Rack::Session::Abstract::SessionHash
- Rack::Session::Cookie
- Rack::Session::Cookie::Base64
- Rack::Session::Cookie::Base64::Marshal
- Rack::Session::Cookie::Identity
- Rack::Session::Cookie::Reverse
- Rack::Session::Memcache
- Rack::Session::Pool
- Rack::ShowExceptions
- Rack::ShowStatus
- Rack::Static
- Rack::URLMap
- Rack::Utils
- Rack::Utils::Context
- Rack::Utils::HeaderHash
- Rack::Utils::KeySpaceConstrainedParams
- Rack::Utils::Multipart
- FCGI
- FCGI::Stream
- Object

No matching classes.

# Rack::Reloader::Stat

### Public Instance Methods

figure_path(file, paths) click to toggle source

Takes a relative or absolute `file` name, a couple possible `paths` that the `file` might reside in. Returns the full path and File::Stat for the path.

    # File lib/rack/reloader.rb, line 85
    def figure_path(file, paths)
      found = @cache[file]
      found = file if !found and Pathname.new(file).absolute?
      found, stat = safe_stat(found)
      return found, stat if found

      paths.find do |possible_path|
        path = ::File.join(possible_path, file)
        found, stat = safe_stat(path)
        return ::File.expand_path(found), stat if found
      end

      return false, false
    end

rotation() click to toggle source

    # File lib/rack/reloader.rb, line 66
    def rotation
      files = [$0, *$LOADED_FEATURES].uniq
      paths = ['./', *$LOAD_PATH].uniq

      files.map{|file|
        next if file =~ /\.(so|bundle)$/ # cannot reload compiled files

        found, stat = figure_path(file, paths)
        next unless found && stat && mtime = stat.mtime

        @cache[file] = found

        yield(found, mtime)
      }.compact
    end

safe_stat(file) click to toggle source

    # File lib/rack/reloader.rb, line 100
    def safe_stat(file)
      return unless file
      stat = ::File.stat(file)
      return file, stat if stat.file?
    rescue Errno::ENOENT, Errno::ENOTDIR, Errno::ESRCH
      @cache.delete(file) and false
    end

[Validate]

Generated with the Darkfish Rdoc Generator 2.