pry-byebug 3.1.0 → 3.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (44) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +17 -1
  3. data/README.md +7 -6
  4. data/lib/byebug/processors/pry_processor.rb +3 -5
  5. data/lib/pry-byebug.rb +1 -3
  6. data/lib/pry-byebug/cli.rb +1 -2
  7. data/lib/pry-byebug/commands.rb +8 -0
  8. data/lib/pry-byebug/commands/breakpoint.rb +135 -0
  9. data/lib/pry-byebug/commands/continue.rb +37 -0
  10. data/lib/pry-byebug/commands/down.rb +33 -0
  11. data/lib/pry-byebug/commands/finish.rb +26 -0
  12. data/lib/pry-byebug/commands/frame.rb +33 -0
  13. data/lib/pry-byebug/commands/next.rb +37 -0
  14. data/lib/pry-byebug/commands/step.rb +32 -0
  15. data/lib/pry-byebug/commands/up.rb +33 -0
  16. data/lib/pry-byebug/helpers/breakpoints.rb +84 -0
  17. data/lib/pry-byebug/helpers/multiline.rb +21 -0
  18. data/lib/pry-byebug/helpers/navigation.rb +17 -0
  19. data/lib/pry-byebug/version.rb +1 -1
  20. data/lib/pry/byebug/breakpoints.rb +4 -0
  21. metadata +23 -45
  22. data/.gitignore +0 -18
  23. data/.rubocop.yml +0 -14
  24. data/.rubocop_todo.yml +0 -20
  25. data/.travis.yml +0 -9
  26. data/Gemfile +0 -14
  27. data/Rakefile +0 -17
  28. data/lib/pry/commands/breakpoint.rb +0 -216
  29. data/lib/pry/commands/frames.rb +0 -79
  30. data/lib/pry/commands/stepping.rb +0 -88
  31. data/pry-byebug.gemspec +0 -23
  32. data/test/base_test.rb +0 -16
  33. data/test/breakpoints_test.rb +0 -146
  34. data/test/examples/break1.rb +0 -23
  35. data/test/examples/break2.rb +0 -21
  36. data/test/examples/deep_stepping.rb +0 -9
  37. data/test/examples/frames.rb +0 -14
  38. data/test/examples/stepping.rb +0 -29
  39. data/test/frames_test.rb +0 -58
  40. data/test/processor_test.rb +0 -40
  41. data/test/pry_ext_test.rb +0 -4
  42. data/test/pry_remote_ext_test.rb +0 -4
  43. data/test/stepping_test.rb +0 -78
  44. data/test/test_helper.rb +0 -35
@@ -1,58 +0,0 @@
1
- require 'test_helper'
2
-
3
- #
4
- # Tests for pry-byebug frame commands.
5
- #
6
- class FramesTest < MiniTest::Spec
7
- let(:output) { StringIO.new }
8
-
9
- before do
10
- Pry.color, Pry.pager, Pry.hooks = false, false, Pry::DEFAULT_HOOKS
11
- end
12
-
13
- describe 'Up command' do
14
- let(:input) { InputTester.new('up', 'down') }
15
-
16
- before do
17
- redirect_pry_io(input, output) { load test_file('frames') }
18
- end
19
-
20
- it 'shows current line' do
21
- output.string.must_match(/=> \s*6: \s*method_b/)
22
- end
23
- end
24
-
25
- describe 'Down command' do
26
- let(:input) { InputTester.new('up', 'down') }
27
-
28
- before do
29
- redirect_pry_io(input, output) { load test_file('frames') }
30
- end
31
-
32
- it 'shows current line' do
33
- output.string.must_match(/=> \s*11: \s*end/)
34
- end
35
- end
36
-
37
- describe 'Frame command' do
38
- before do
39
- redirect_pry_io(input, output) { load test_file('frames') }
40
- end
41
-
42
- describe 'jump to frame 1' do
43
- let(:input) { InputTester.new('frame 1', 'frame 0') }
44
-
45
- it 'shows current line' do
46
- output.string.must_match(/=> \s*6: \s*method_b/)
47
- end
48
- end
49
-
50
- describe 'jump to current frame' do
51
- let(:input) { InputTester.new('frame 0') }
52
-
53
- it 'shows current line' do
54
- output.string.must_match(/=> \s*11: \s*end/)
55
- end
56
- end
57
- end
58
- end
@@ -1,40 +0,0 @@
1
- require 'test_helper'
2
-
3
- #
4
- # Tests for pry-byebug's processor.
5
- #
6
- class ProcessorTest < Minitest::Spec
7
- before do
8
- Pry.color = false
9
- Pry.pager = false
10
- Pry.hooks = Pry::DEFAULT_HOOKS
11
- end
12
-
13
- describe 'Initialization' do
14
- let(:step_file) { test_file('stepping') }
15
-
16
- before do
17
- Object.send :remove_const, :SteppingExample if defined? SteppingExample
18
- @input = InputTester.new
19
- @output = StringIO.new
20
- redirect_pry_io(@input, @output) { load step_file }
21
- end
22
-
23
- it 'stops execution at the first line after binding.pry' do
24
- @output.string.must_match(/\=> 6:/)
25
- end
26
- end
27
-
28
- describe 'Initialization at the end of block/method call' do
29
- let(:step_file) { test_file('deep_stepping') }
30
-
31
- before do
32
- @input, @output = InputTester.new, StringIO.new
33
- redirect_pry_io(@input, @output) { load step_file }
34
- end
35
-
36
- it 'stops execution at the first line after binding.pry' do
37
- @output.string.must_match(/\=> 7:/)
38
- end
39
- end
40
- end
@@ -1,4 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PryExtTest < MiniTest::Spec
4
- end
@@ -1,4 +0,0 @@
1
- require 'test_helper'
2
-
3
- class PryRemoteExtTest < MiniTest::Spec
4
- end
@@ -1,78 +0,0 @@
1
- require 'test_helper'
2
-
3
- #
4
- # Some common specs for stepping
5
- #
6
- module SteppingSpecs
7
- def self.included(spec_class)
8
- spec_class.class_eval do
9
- it 'shows current line' do
10
- @output.string.must_match(/\=> \s*#{@line}:/)
11
- end
12
- end
13
- end
14
- end
15
-
16
- #
17
- # Tests for pry-byebug stepping commands.
18
- #
19
- class SteppingTest < MiniTest::Spec
20
- let(:step_file) { test_file('stepping') }
21
-
22
- before do
23
- Object.send :remove_const, :SteppingExample if defined? SteppingExample
24
- Pry.color, Pry.pager, Pry.hooks = false, false, Pry::DEFAULT_HOOKS
25
- @output = StringIO.new
26
- end
27
-
28
- describe 'Step Command' do
29
- describe 'single step' do
30
- before do
31
- @input, @line = InputTester.new('step'), 7
32
- redirect_pry_io(@input, @output) { load step_file }
33
- end
34
-
35
- include SteppingSpecs
36
- end
37
-
38
- describe 'multiple step' do
39
- before do
40
- @input, @line = InputTester.new('step 2'), 12
41
- redirect_pry_io(@input, @output) { load step_file }
42
- end
43
-
44
- include SteppingSpecs
45
- end
46
- end
47
-
48
- describe 'Next Command' do
49
- describe 'single step' do
50
- before do
51
- @input, @line = InputTester.new('break --delete-all', 'next'), 6
52
- redirect_pry_io(@input, @output) { load step_file }
53
- end
54
-
55
- include SteppingSpecs
56
- end
57
-
58
- describe 'multiple step' do
59
- before do
60
- @input, @line = InputTester.new('break --delete-all', 'next 2'), 25
61
- redirect_pry_io(@input, @output) { load step_file }
62
- end
63
-
64
- include SteppingSpecs
65
- end
66
- end
67
-
68
- describe 'Finish Command' do
69
- before do
70
- @input = \
71
- InputTester.new 'break --delete-all', 'break 19', 'continue', 'finish'
72
- redirect_pry_io(@input, @output) { load step_file }
73
- @line = 15
74
- end
75
-
76
- include SteppingSpecs
77
- end
78
- end
@@ -1,35 +0,0 @@
1
- require 'pry/test/helper'
2
- require 'minitest/autorun'
3
- require 'pry-byebug'
4
- require 'mocha/setup'
5
-
6
- #
7
- # Set I/O streams. Out defaults to an anonymous StringIO.
8
- #
9
- def redirect_pry_io(new_in, new_out = StringIO.new)
10
- old_in, old_out = Pry.input, Pry.output
11
- Pry.input, Pry.output = new_in, new_out
12
- begin
13
- yield
14
- ensure
15
- Pry.input, Pry.output = old_in, old_out
16
- end
17
- end
18
-
19
- def test_file(name)
20
- (Pathname.new(__FILE__) + "../examples/#{name}.rb").cleanpath.to_s
21
- end
22
-
23
- #
24
- # Simulate pry-byebug's input for testing
25
- #
26
- class InputTester
27
- def initialize(*actions)
28
- @orig_actions = actions.dup
29
- @actions = actions
30
- end
31
-
32
- def readline(*)
33
- @actions.shift
34
- end
35
- end