module Spring

Some parts adapted from golang.org/src/pkg/json/decode.go and golang.org/src/pkg/utf8/utf8.go

Constants

IGNORE_SIGNALS
ORIGINAL_ENV
STOP_TIMEOUT
VERSION

Attributes

application_root[RW]
commands[R]
quiet[RW]
watch_interval[RW]
watch_method[R]
watcher[W]

Public Class Methods

after_fork(&block) click to toggle source
# File lib/spring/configuration.rb, line 15
def after_fork(&block)
  after_fork_callbacks << block
end
after_fork_callbacks() click to toggle source
# File lib/spring/configuration.rb, line 11
def after_fork_callbacks
  @after_fork_callbacks ||= []
end
application_root_path() click to toggle source
# File lib/spring/configuration.rb, line 23
def application_root_path
  @application_root_path ||= begin
    if application_root
      path = Pathname.new(File.expand_path(application_root))
    else
      path = project_root_path
    end

    raise MissingApplication.new(path) unless path.join("config/application.rb").exist?
    path
  end
end
command(name) click to toggle source
# File lib/spring/commands.rb, line 19
def self.command(name)
  commands.fetch name
end
command?(name) click to toggle source
# File lib/spring/commands.rb, line 15
def self.command?(name)
  commands.include? name
end
failsafe_thread() { || ... } click to toggle source
# File lib/spring/failsafe_thread.rb, line 5
def failsafe_thread
  Thread.new {
    begin
      yield
    rescue
    end
  }
end
gemfile() click to toggle source
# File lib/spring/configuration.rb, line 7
def gemfile
  ENV['BUNDLE_GEMFILE'] || "Gemfile"
end
project_root_path() click to toggle source
# File lib/spring/configuration.rb, line 36
def project_root_path
  @project_root_path ||= find_project_root(Pathname.new(File.expand_path(Dir.pwd)))
end
register_command(name, command = nil) click to toggle source
# File lib/spring/commands.rb, line 11
def self.register_command(name, command = nil)
  commands[name] = CommandWrapper.new(name, command)
end
verify_environment() click to toggle source
# File lib/spring/configuration.rb, line 19
def verify_environment
  application_root_path
end
watch(*items) click to toggle source
# File lib/spring/watcher.rb, line 27
def self.watch(*items)
  watcher.add(*items)
end
watch_method=(method) click to toggle source
# File lib/spring/watcher.rb, line 11
def self.watch_method=(method)
  if method.is_a?(Class)
    @watch_method = method
  else
    require "spring/watcher/#{method}"
    @watch_method = Watcher.const_get(method.to_s.gsub(/(^.|_.)/) { $1[-1].upcase })
  end
end
watcher() click to toggle source
# File lib/spring/watcher.rb, line 23
def self.watcher
  @watcher ||= watch_method.new(Spring.application_root_path, watch_interval)
end

Private Class Methods

find_project_root(current_dir) click to toggle source
# File lib/spring/configuration.rb, line 42
def find_project_root(current_dir)
  if current_dir.join(gemfile).exist?
    current_dir
  elsif current_dir.root?
    raise UnknownProject.new(Dir.pwd)
  else
    find_project_root(current_dir.parent)
  end
end