Skip to content

Commit

Permalink
Merge pull request rails#1231 from joshk/ruby-debugger
Browse files Browse the repository at this point in the history
Ruby debugger corrections
  • Loading branch information
josevalim committed May 23, 2011
2 parents 5c3f3f1 + 2514d65 commit a5fb1c6
Show file tree
Hide file tree
Showing 9 changed files with 47 additions and 45 deletions.
@@ -1,5 +1,4 @@
require 'active_record/connection_adapters/abstract_adapter'
require 'active_support/core_ext/kernel/requires'
require 'active_support/core_ext/object/blank'
require 'set'

Expand Down
@@ -1,5 +1,4 @@
require 'active_record/connection_adapters/abstract_adapter'
require 'active_support/core_ext/kernel/requires'
require 'active_support/core_ext/object/blank'

# Make sure we're using pg high enough for PGResult#values
Expand Down
@@ -1,5 +1,4 @@
require 'active_record/connection_adapters/abstract_adapter'
require 'active_support/core_ext/kernel/requires'

module ActiveRecord
module ConnectionAdapters #:nodoc:
Expand Down
1 change: 0 additions & 1 deletion activesupport/lib/active_support/core_ext/kernel.rb
@@ -1,5 +1,4 @@
require 'active_support/core_ext/kernel/reporting'
require 'active_support/core_ext/kernel/agnostics'
require 'active_support/core_ext/kernel/requires'
require 'active_support/core_ext/kernel/debugger'
require 'active_support/core_ext/kernel/singleton_class'
8 changes: 1 addition & 7 deletions activesupport/lib/active_support/core_ext/kernel/debugger.rb
Expand Up @@ -5,12 +5,6 @@ def debugger
message = "\n***** Debugger requested, but was not available (ensure ruby-debug is listed in Gemfile/installed as gem): Start server with --debugger to enable *****\n"
defined?(Rails) ? Rails.logger.info(message) : $stderr.puts(message)
end
end

undef :breakpoint if respond_to?(:breakpoint)
def breakpoint
message = "\n***** The 'breakpoint' command has been renamed 'debugger' -- please change *****\n"
defined?(Rails) ? Rails.logger.info(message) : $stderr.puts(message)
debugger
alias breakpoint debugger unless respond_to?(:breakpoint)
end
end
26 changes: 0 additions & 26 deletions activesupport/lib/active_support/core_ext/kernel/requires.rb

This file was deleted.

46 changes: 43 additions & 3 deletions activesupport/test/core_ext/kernel_test.rb
Expand Up @@ -52,10 +52,10 @@ def test_class_eval
class << o; @x = 1; end
assert_equal 1, o.class_eval { @x }
end

def test_capture
assert_equal 'STDERR', capture(:stderr) {$stderr.print 'STDERR'}
assert_equal 'STDOUT', capture(:stdout) {print 'STDOUT'}
assert_equal 'STDERR', capture(:stderr) { $stderr.print 'STDERR' }
assert_equal 'STDOUT', capture(:stdout) { print 'STDOUT' }
end
end

Expand All @@ -73,3 +73,43 @@ def test_suppression
suppress(LoadError, ArgumentError) { raise ArgumentError }
end
end

class MockStdErr
attr_reader :output
def puts(message)
@output ||= []
@output << message
end

def info(message)
puts(message)
end

def write(message)
puts(message)
end
end

class KernelDebuggerTest < Test::Unit::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
7 changes: 3 additions & 4 deletions railties/lib/rails/rack/debugger.rb
@@ -1,5 +1,3 @@
require 'active_support/core_ext/kernel/requires'

module Rails
module Rack
class Debugger
Expand All @@ -8,11 +6,12 @@ def initialize(app)

ARGV.clear # clear ARGV so that rails server options aren't passed to IRB

require_library_or_gem 'ruby-debug'
require 'ruby-debug'

::Debugger.start
::Debugger.settings[:autoeval] = true if ::Debugger.respond_to?(:settings)
puts "=> Debugger enabled"
rescue Exception
rescue LoadError
puts "You need to install ruby-debug to run the server in debugging mode. With gems, use 'gem install ruby-debug'"
exit
end
Expand Down
1 change: 0 additions & 1 deletion railties/lib/rails/test_help.rb
Expand Up @@ -3,7 +3,6 @@
abort("Abort testing: Your Rails environment is running in production mode!") if Rails.env.production?

require 'test/unit'
require 'active_support/core_ext/kernel/requires'
require 'active_support/test_case'
require 'action_controller/test_case'
require 'action_dispatch/testing/integration'
Expand Down

0 comments on commit a5fb1c6

Please sign in to comment.