Skip to content

Commit 2514d65

Browse files
committed
Removed the AS core_ext/kernel/debugger breakpoint method as this method is added by ruby-debug and should be left as is. Missing tests added.
1 parent eff5d9a commit 2514d65

File tree

2 files changed

+44
-10
lines changed

2 files changed

+44
-10
lines changed

activesupport/lib/active_support/core_ext/kernel/debugger.rb

Lines changed: 1 addition & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -5,12 +5,6 @@ def debugger
55
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"
66
defined?(Rails) ? Rails.logger.info(message) : $stderr.puts(message)
77
end
8-
end
9-
10-
undef :breakpoint if respond_to?(:breakpoint)
11-
def breakpoint
12-
message = "\n***** The 'breakpoint' command has been renamed 'debugger' -- please change *****\n"
13-
defined?(Rails) ? Rails.logger.info(message) : $stderr.puts(message)
14-
debugger
8+
alias breakpoint debugger unless respond_to?(:breakpoint)
159
end
1610
end

activesupport/test/core_ext/kernel_test.rb

Lines changed: 43 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -52,10 +52,10 @@ def test_class_eval
5252
class << o; @x = 1; end
5353
assert_equal 1, o.class_eval { @x }
5454
end
55-
55+
5656
def test_capture
57-
assert_equal 'STDERR', capture(:stderr) {$stderr.print 'STDERR'}
58-
assert_equal 'STDOUT', capture(:stdout) {print 'STDOUT'}
57+
assert_equal 'STDERR', capture(:stderr) { $stderr.print 'STDERR' }
58+
assert_equal 'STDOUT', capture(:stdout) { print 'STDOUT' }
5959
end
6060
end
6161

@@ -73,3 +73,43 @@ def test_suppression
7373
suppress(LoadError, ArgumentError) { raise ArgumentError }
7474
end
7575
end
76+
77+
class MockStdErr
78+
attr_reader :output
79+
def puts(message)
80+
@output ||= []
81+
@output << message
82+
end
83+
84+
def info(message)
85+
puts(message)
86+
end
87+
88+
def write(message)
89+
puts(message)
90+
end
91+
end
92+
93+
class KernelDebuggerTest < Test::Unit::TestCase
94+
def test_debugger_not_available_message_to_stderr
95+
old_stderr = $stderr
96+
$stderr = MockStdErr.new
97+
debugger
98+
assert_match(/Debugger requested/, $stderr.output.first)
99+
ensure
100+
$stderr = old_stderr
101+
end
102+
103+
def test_debugger_not_available_message_to_rails_logger
104+
rails = Class.new do
105+
def self.logger
106+
@logger ||= MockStdErr.new
107+
end
108+
end
109+
Object.const_set("Rails", rails)
110+
debugger
111+
assert_match(/Debugger requested/, rails.logger.output.first)
112+
ensure
113+
Object.send(:remove_const, "Rails")
114+
end
115+
end

0 commit comments

Comments
 (0)