Skip to content

Commit

Permalink
Remove debugger support
Browse files Browse the repository at this point in the history
bebugger doesn't work with Ruby 2.2 so we don't need to support it
anymore
  • Loading branch information
rafaelfranca committed Jan 4, 2015
1 parent cf01d01 commit 93559da
Show file tree
Hide file tree
Showing 14 changed files with 8 additions and 138 deletions.
4 changes: 2 additions & 2 deletions Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -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'
Expand Down
1 change: 0 additions & 1 deletion activesupport/lib/active_support/core_ext/kernel.rb
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
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'
13 changes: 3 additions & 10 deletions activesupport/lib/active_support/core_ext/kernel/debugger.rb
Original file line number Diff line number Diff line change
@@ -1,10 +1,3 @@
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.")
24 changes: 0 additions & 24 deletions activesupport/test/core_ext/kernel_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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'
1 change: 0 additions & 1 deletion guides/source/rails_on_rack.md
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
26 changes: 0 additions & 26 deletions railties/lib/rails/commands/console.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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

Expand Down Expand Up @@ -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?
Expand Down
12 changes: 0 additions & 12 deletions railties/lib/rails/commands/server.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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 }
Expand Down Expand Up @@ -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.
Expand All @@ -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")
})
Expand Down
5 changes: 0 additions & 5 deletions railties/lib/rails/generators/rails/app/templates/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -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? -%>
Expand Down
4 changes: 0 additions & 4 deletions railties/lib/rails/generators/rails/plugin/templates/Gemfile
Original file line number Diff line number Diff line change
Expand Up @@ -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/) -%>
Expand Down
3 changes: 1 addition & 2 deletions railties/lib/rails/rack.rb
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
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
25 changes: 2 additions & 23 deletions railties/lib/rails/rack/debugger.rb
Original file line number Diff line number Diff line change
@@ -1,24 +1,3 @@
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.")
22 changes: 0 additions & 22 deletions railties/test/commands/console_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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)
Expand Down
3 changes: 0 additions & 3 deletions railties/test/generators/app_generator_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
3 changes: 0 additions & 3 deletions railties/test/generators/plugin_generator_test.rb
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down

1 comment on commit 93559da

@robin850
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Refs #20612.

Please sign in to comment.