Module: Rails::DSL::Commands::EXT

Included in:
Rails::DSL
Defined in:
lib/rails-dsl/kill_server.rb

Instance Method Summary collapse

Instance Method Details

#kill?Boolean

Returns:

  • (Boolean)


34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
# File 'lib/rails-dsl/kill_server.rb', line 34

def kill?

  unless %W[ --kill kill k ].select{|sym| ARGV.include?(sym) }.empty?

    previous_stderr, $stderr = $stderr, StringIO.new
    previous_stdout, $stdout = $stdout, StringIO.new

    ::Kernel.at_exit do

      $stderr= previous_stderr
      $stdout= previous_stdout

      Rails::Server.new.tap { |server|
        
        # We need to require application after the server sets environment,
        # otherwise the --environment option given to the server won't propagate.
        require APP_PATH
        Dir.chdir(Rails.application.root)
        Commands::Helpers.kill(server.options[:pid])
        
      }

      Process.exit!

    end


  end

end