Remove debugger support

bebugger doesn't work with Ruby 2.2 so we don't need to support it
anymore
上级 cf01d01b
......@@ -68,8 +68,8 @@ group :test do
gem 'stackprof'
end
# platforms :mri_19, :mri_20 do
# gem 'debugger'
# platforms :mri do
# gem 'byebug'
# end
gem 'benchmark-ips'
......
require 'active_support/core_ext/kernel/agnostics'
require 'active_support/core_ext/kernel/concern'
require 'active_support/core_ext/kernel/debugger' if RUBY_VERSION < '2.0.0'
require 'active_support/core_ext/kernel/reporting'
require 'active_support/core_ext/kernel/singleton_class'
module Kernel
unless respond_to?(:debugger)
# Starts a debugging session if the +debugger+ gem has been loaded (call rails server --debugger to load it).
def debugger
message = "\n***** Debugger requested, but was not available (ensure the debugger gem is listed in Gemfile/installed as gem): Start server with --debugger to enable *****\n"
defined?(Rails.logger) ? Rails.logger.info(message) : $stderr.puts(message)
end
alias breakpoint debugger unless respond_to?(:breakpoint)
end
end
require 'active_support/deprecation'
ActiveSupport::Deprecation.warn("This file is deprecated and will be removed in Rails 5.1 with no replacement.")
......@@ -65,27 +65,3 @@ def write(message)
puts(message)
end
end
class KernelDebuggerTest < ActiveSupport::TestCase
def test_debugger_not_available_message_to_stderr
old_stderr = $stderr
$stderr = MockStdErr.new
debugger
assert_match(/Debugger requested/, $stderr.output.first)
ensure
$stderr = old_stderr
end
def test_debugger_not_available_message_to_rails_logger
rails = Class.new do
def self.logger
@logger ||= MockStdErr.new
end
end
Object.const_set(:Rails, rails)
debugger
assert_match(/Debugger requested/, rails.logger.output.first)
ensure
Object.send(:remove_const, :Rails)
end
end if RUBY_VERSION < '2.0.0'
......@@ -63,7 +63,6 @@ Here's how it loads the middlewares:
```ruby
def middleware
middlewares = []
middlewares << [Rails::Rack::Debugger] if options[:debugger]
middlewares << [::Rack::ContentLength]
Hash.new(middlewares)
end
......
......@@ -18,14 +18,6 @@ def parse_arguments(arguments)
opt.on("-e", "--environment=name", String,
"Specifies the environment to run this console under (test/development/production).",
"Default: development") { |v| options[:environment] = v.strip }
opt.on("--debugger", 'Enables the debugger.') do |v|
if RUBY_VERSION < '2.0.0'
options[:debugger] = v
else
puts "=> Notice: debugger option is ignored since Ruby 2.0 and " \
"it will be removed in future versions."
end
end
opt.parse!(arguments)
end
......@@ -76,25 +68,7 @@ def set_environment!
Rails.env = environment
end
if RUBY_VERSION < '2.0.0'
def debugger?
options[:debugger]
end
def require_debugger
require 'debugger'
puts "=> Debugger enabled"
rescue LoadError
puts "You're missing the 'debugger' gem. Add it to your Gemfile, bundle it and try again."
exit(1)
end
end
def start
if RUBY_VERSION < '2.0.0'
require_debugger if debugger?
end
set_environment! if environment?
if sandbox?
......
......@@ -28,14 +28,6 @@ def option_parser(options)
opts.on("-c", "--config=file", String,
"Uses a custom rackup configuration.") { |v| options[:config] = v }
opts.on("-d", "--daemon", "Runs server as a Daemon.") { options[:daemonize] = true }
opts.on("-u", "--debugger", "Enables the debugger.") do
if RUBY_VERSION < '2.0.0'
options[:debugger] = true
else
puts "=> Notice: debugger option is ignored since Ruby 2.0 and " \
"it will be removed in future versions."
end
end
opts.on("-e", "--environment=name", String,
"Specifies the environment to run this server under (test/development/production).",
"Default: development") { |v| options[:environment] = v }
......@@ -86,9 +78,6 @@ def start
def middleware
middlewares = []
if RUBY_VERSION < '2.0.0'
middlewares << [Rails::Rack::Debugger] if options[:debugger]
end
middlewares << [::Rack::ContentLength]
# FIXME: add Rack::Lock in the case people are using webrick.
......@@ -112,7 +101,6 @@ def default_options
DoNotReverseLookup: true,
environment: (ENV['RAILS_ENV'] || ENV['RACK_ENV'] || "development").dup,
daemonize: false,
debugger: false,
pid: File.expand_path("tmp/pids/server.pid"),
config: File.expand_path("config.ru")
})
......
......@@ -23,13 +23,8 @@ source 'https://rubygems.org'
group :development, :test do
<% if RUBY_ENGINE == 'ruby' -%>
<%- if RUBY_VERSION < '2.0.0' -%>
# Call 'debugger' anywhere in the code to stop execution and get a debugger console
gem 'debugger'
<%- else -%>
# Call 'byebug' anywhere in the code to stop execution and get a debugger console
gem 'byebug'
<%- end -%>
# Access an IRB console on exception pages or by using <%%= console %> in views
<%- if options.dev? || options.edge? -%>
......
......@@ -39,11 +39,7 @@ end
<% end -%>
<% if RUBY_ENGINE == 'ruby' -%>
# To use a debugger
<%- if RUBY_VERSION < '2.0.0' -%>
# gem 'debugger', group: [:development, :test]
<%- else -%>
# gem 'byebug', group: [:development, :test]
<%- end -%>
<% end -%>
<% if RUBY_PLATFORM.match(/bccwin|cygwin|emx|mingw|mswin|wince|java/) -%>
......
module Rails
module Rack
autoload :Debugger, "rails/rack/debugger" if RUBY_VERSION < '2.0.0'
autoload :Logger, "rails/rack/logger"
autoload :Logger, "rails/rack/logger"
end
end
module Rails
module Rack
class Debugger
def initialize(app)
@app = app
require 'active_support/deprecation'
ARGV.clear # clear ARGV so that rails server options aren't passed to IRB
require 'debugger'
::Debugger.start
::Debugger.settings[:autoeval] = true if ::Debugger.respond_to?(:settings)
puts "=> Debugger enabled"
rescue LoadError
puts "You're missing the 'debugger' gem. Add it to your Gemfile, bundle it and try again."
exit(1)
end
def call(env)
@app.call(env)
end
end
end
end
ActiveSupport::Deprecation.warn("This file is deprecated and will be removed in Rails 5.1 with no replacement.")
......@@ -46,28 +46,6 @@ def test_start_with_sandbox
assert_match(/Loading \w+ environment in sandbox \(Rails/, output)
end
if RUBY_VERSION < '2.0.0'
def test_debugger_option
console = Rails::Console.new(app, parse_arguments(["--debugger"]))
assert console.debugger?
end
def test_no_options_does_not_set_debugger_flag
console = Rails::Console.new(app, parse_arguments([]))
assert !console.debugger?
end
def test_start_with_debugger
stubbed_console = Class.new(Rails::Console) do
def require_debugger
end
end
rails_console = stubbed_console.new(app, parse_arguments(["--debugger"]))
silence_stream(STDOUT) { rails_console.start }
end
end
def test_console_with_environment
start ["-e production"]
assert_match(/\sproduction\s/, output)
......
......@@ -403,10 +403,7 @@ def test_inclusion_of_a_debugger
if defined?(JRUBY_VERSION) || RUBY_ENGINE == "rbx"
assert_file "Gemfile" do |content|
assert_no_match(/byebug/, content)
assert_no_match(/debugger/, content)
end
elsif RUBY_VERSION < '2.0.0'
assert_gem 'debugger'
else
assert_gem 'byebug'
end
......
......@@ -74,10 +74,7 @@ def test_inclusion_of_a_debugger
if defined?(JRUBY_VERSION) || RUBY_ENGINE == "rbx"
assert_file "Gemfile" do |content|
assert_no_match(/byebug/, content)
assert_no_match(/debugger/, content)
end
elsif RUBY_VERSION < '2.0.0'
assert_file "Gemfile", /# gem 'debugger'/
else
assert_file "Gemfile", /# gem 'byebug'/
end
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册