byebug 1.0.3 → 1.1.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 (52) hide show
  1. checksums.yaml +4 -4
  2. data/CHANGELOG.md +5 -0
  3. data/README.md +13 -11
  4. data/Rakefile +0 -6
  5. data/bin/byebug +83 -136
  6. data/ext/byebug/byebug.c +182 -96
  7. data/ext/byebug/byebug.h +5 -7
  8. data/ext/byebug/context.c +52 -40
  9. data/lib/byebug.rb +81 -81
  10. data/lib/byebug/command.rb +18 -35
  11. data/lib/byebug/commands/control.rb +1 -1
  12. data/lib/byebug/commands/display.rb +0 -2
  13. data/lib/byebug/commands/enable.rb +4 -16
  14. data/lib/byebug/commands/eval.rb +5 -3
  15. data/lib/byebug/commands/frame.rb +68 -69
  16. data/lib/byebug/commands/help.rb +2 -1
  17. data/lib/byebug/commands/info.rb +43 -42
  18. data/lib/byebug/commands/method.rb +4 -3
  19. data/lib/byebug/commands/set.rb +10 -19
  20. data/lib/byebug/commands/show.rb +6 -13
  21. data/lib/byebug/interface.rb +1 -1
  22. data/lib/byebug/processor.rb +14 -17
  23. data/lib/byebug/version.rb +1 -2
  24. data/old_doc/byebug.texi +576 -847
  25. data/test/breakpoints_test.rb +0 -1
  26. data/test/conditions_test.rb +35 -33
  27. data/test/display_test.rb +14 -13
  28. data/test/edit_test.rb +28 -25
  29. data/test/eval_test.rb +0 -2
  30. data/test/finish_test.rb +4 -3
  31. data/test/frame_test.rb +20 -21
  32. data/test/help_test.rb +26 -23
  33. data/test/info_test.rb +105 -108
  34. data/test/irb_test.rb +26 -25
  35. data/test/kill_test.rb +19 -19
  36. data/test/list_test.rb +140 -156
  37. data/test/method_test.rb +21 -22
  38. data/test/post_mortem_test.rb +2 -5
  39. data/test/quit_test.rb +16 -17
  40. data/test/reload_test.rb +2 -2
  41. data/test/restart_test.rb +0 -1
  42. data/test/save_test.rb +31 -32
  43. data/test/set_test.rb +50 -47
  44. data/test/show_test.rb +67 -66
  45. data/test/source_test.rb +31 -34
  46. data/test/stepping_test.rb +32 -34
  47. data/test/support/test_dsl.rb +1 -1
  48. data/test/trace_test.rb +1 -2
  49. data/test/variables_test.rb +36 -34
  50. metadata +2 -4
  51. data/lib/byebug/commands/tmate.rb +0 -36
  52. data/test/tmate_test.rb +0 -44
@@ -34,7 +34,7 @@ module TestDsl
34
34
  ENV['COLUMNS'].to_i > 10 ? ENV['COLUMNS'].to_i : 80
35
35
  Byebug::Command.settings[:argv] = Byebug::ARGV
36
36
  Byebug::Command.settings[:autolist] = 1
37
- Byebug::Command.settings[:autoeval] = 1
37
+ Byebug::Command.settings[:autoeval] = true
38
38
  Byebug::Command.settings[:reload_source_on_change] = 1
39
39
  force_unset_const Byebug, 'BYEBUG_SCRIPT'
40
40
  force_set_const Byebug, 'DEFAULT_START_SETTINGS',
@@ -142,10 +142,9 @@ describe 'Trace Command' do
142
142
 
143
143
  describe 'Post Mortem' do
144
144
  it 'must work in post-mortem mode' do
145
- skip('No post morten mode for now')
146
145
  enter 'cont', 'trace on'
147
146
  debug_file 'post_mortem'
148
- check_output_includes 'Tracing on on current thread.'
147
+ check_output_includes 'Tracing is on'
149
148
  end
150
149
  end
151
150
 
@@ -1,115 +1,117 @@
1
1
  require_relative 'test_helper'
2
2
 
3
- describe "Variables Command" do
3
+ describe 'Variables Command' do
4
4
  include TestDsl
5
5
 
6
6
  def after_setup
7
7
  Byebug::Command.settings[:width] = 40
8
8
  end
9
9
 
10
- describe "class variables" do
11
- it "must show variables" do
10
+ describe 'class variables' do
11
+ it 'must show variables' do
12
12
  enter 'break 19', 'cont', 'var class'
13
13
  debug_file 'variables'
14
- check_output_includes "@@class_c = 3"
14
+ check_output_includes '@@class_c = 3'
15
15
  end
16
16
 
17
- it "must be able to use shortcut" do
17
+ it 'must be able to use shortcut' do
18
18
  enter 'break 19', 'cont', 'v cl'
19
19
  debug_file 'variables'
20
- check_output_includes "@@class_c = 3"
20
+ check_output_includes '@@class_c = 3'
21
21
  end
22
22
  end
23
23
 
24
- describe "constants" do
25
- it "must show constants" do
24
+ describe 'constants' do
25
+ it 'must show constants' do
26
26
  enter 'break 25', 'cont', 'var const VariablesExample'
27
27
  debug_file 'variables'
28
28
  check_output_includes 'SOMECONST => "foo"'
29
29
  end
30
30
 
31
- it "must be able to use shortcut" do
31
+ it 'must be able to use shortcut' do
32
32
  enter 'break 25', 'cont', 'v co VariablesExample'
33
33
  debug_file 'variables'
34
34
  check_output_includes 'SOMECONST => "foo"'
35
35
  end
36
36
 
37
- it "must show an error message if the given object is not a Class or Module" do
37
+ it 'must show error message if given object is not a Class or a Module' do
38
38
  enter 'break 25', 'cont', 'var const v'
39
39
  debug_file 'variables'
40
- check_output_includes "Should be Class/Module: v"
40
+ check_output_includes 'Should be Class/Module: v'
41
41
  end
42
42
  end
43
43
 
44
- describe "globals" do
45
- it "must show global variables" do
44
+ describe 'globals' do
45
+ it 'must show global variables' do
46
46
  enter 'break 25', 'cont', 'var global'
47
47
  debug_file 'variables'
48
48
  check_output_includes '$glob = 100'
49
49
  end
50
50
 
51
- it "must be able to use shortcut" do
51
+ it 'must be able to use shortcut' do
52
52
  enter 'break 25', 'cont', 'v g'
53
53
  debug_file 'variables'
54
54
  check_output_includes '$glob = 100'
55
55
  end
56
56
  end
57
57
 
58
- describe "instance variables" do
59
- it "must show instance variables of the given object" do
58
+ describe 'instance variables' do
59
+ it 'must show instance variables of the given object' do
60
60
  enter 'break 25', 'cont', 'var instance v'
61
61
  debug_file 'variables'
62
- check_output_includes "@inst_a = 1", "@inst_b = 2"
62
+ check_output_includes '@inst_a = 1', '@inst_b = 2'
63
63
  end
64
64
 
65
- it "must show instance variables of self" do
65
+ it 'must show instance variables of self' do
66
66
  enter 'break 11', 'cont', 'var instance'
67
67
  debug_file 'variables'
68
- check_output_includes "@inst_a = 1", "@inst_b = 2"
68
+ check_output_includes '@inst_a = 1', '@inst_b = 2'
69
69
  end
70
70
 
71
- it "must show instance variables" do
71
+ it 'must show instance variables' do
72
72
  enter 'break 25', 'cont', 'var instance v'
73
73
  debug_file 'variables'
74
- check_output_includes "@inst_a = 1", "@inst_b = 2"
74
+ check_output_includes '@inst_a = 1', '@inst_b = 2'
75
75
  end
76
76
 
77
- it "must be able to use shortcut" do
77
+ it 'must be able to use shortcut' do
78
78
  enter 'break 25', 'cont', 'v ins v'
79
79
  debug_file 'variables'
80
- check_output_includes "@inst_a = 1", "@inst_b = 2"
80
+ check_output_includes '@inst_a = 1', '@inst_b = 2'
81
81
  end
82
82
 
83
- it "must cut long variable values according to :width setting" do
83
+ it 'must cut long variable values according to :width setting' do
84
84
  enter 'set width 20', 'break 25', 'cont', 'var instance v'
85
85
  debug_file 'variables'
86
86
  check_output_includes '@inst_c = "1111111111111111...'
87
87
  end
88
88
 
89
- it "must show fallback message if value doesn't have #to_s or #inspect methods" do
89
+ it 'must show error if value doesn\'t have #to_s/#inspect methods' do
90
90
  enter 'set width 21', 'break 25', 'cont', 'var instance v'
91
91
  debug_file 'variables'
92
92
  check_output_includes '@inst_d = *Error in evaluation*'
93
93
  end
94
94
  end
95
95
 
96
- describe "local variables" do
97
- it "must show local variables" do
96
+ describe 'local variables' do
97
+ it 'must show local variables' do
98
98
  enter 'break 17', 'cont', 'var local'
99
99
  debug_file 'variables'
100
- check_output_includes "a => 4", "b => nil", "i => 1"
100
+ check_output_includes 'a => 4', 'b => nil', 'i => 1'
101
101
  end
102
102
  end
103
103
 
104
- # TODO: Need to write tests for 'var ct' command, but I can't install the
105
- # 'ruby-internal' gem on my machine, it fails to build gem native extension.
104
+ describe 'test for "var ct" command' do
105
+ it 'must work' do
106
+ skip('can\'t install ruby-internal gem')
107
+ end
108
+ end
106
109
 
107
- describe "Post Mortem" do
108
- it "must work in post-mortem mode" do
109
- skip("No post morten mode for now")
110
+ describe 'Post Mortem' do
111
+ it 'must work in post-mortem mode' do
110
112
  enter 'cont', 'var local'
111
113
  debug_file 'post_mortem'
112
- check_output_includes "x => nil", "z => 4"
114
+ check_output_includes 'x => nil', 'z => 4'
113
115
  end
114
116
  end
115
117
 
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: byebug
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.3
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Rodríguez
@@ -10,7 +10,7 @@ authors:
10
10
  autorequire:
11
11
  bindir: bin
12
12
  cert_chain: []
13
- date: 2013-04-23 00:00:00.000000000 Z
13
+ date: 2013-04-30 00:00:00.000000000 Z
14
14
  dependencies:
15
15
  - !ruby/object:Gem::Dependency
16
16
  name: columnize
@@ -155,7 +155,6 @@ files:
155
155
  - lib/byebug/commands/source.rb
156
156
  - lib/byebug/commands/stepping.rb
157
157
  - lib/byebug/commands/threads.rb
158
- - lib/byebug/commands/tmate.rb
159
158
  - lib/byebug/commands/trace.rb
160
159
  - lib/byebug/commands/variables.rb
161
160
  - lib/byebug/context.rb
@@ -239,7 +238,6 @@ files:
239
238
  - test/support/test_dsl.rb
240
239
  - test/support/test_interface.rb
241
240
  - test/test_helper.rb
242
- - test/tmate_test.rb
243
241
  - test/trace_test.rb
244
242
  - test/variables_test.rb
245
243
  homepage: http://github.com/deivid-rodriguez/byebug
@@ -1,36 +0,0 @@
1
- module Byebug
2
- if RUBY_PLATFORM =~ /darwin/
3
- class TextMateCommand < Command # :nodoc:
4
- def regexp
5
- /^\s*tm(?:ate)?(?:\s*(\d+))?$/
6
- end
7
-
8
- def execute
9
- if @match[1]
10
- frm_n = @match[1].to_i
11
- if frm_n > @state.context.stack_size || frm_n == 0
12
- print "Wrong frame number\n"
13
- return
14
- end
15
- file, line = @state.context.frame_file(frm_n-1), @state.context.frame_line(frm_n-1)
16
- else
17
- file, line = @state.file, @state.line
18
- end
19
- %x|open 'txmt://open?url=file://#{File.expand_path(file)}&line=#{line}'|
20
- end
21
-
22
- class << self
23
- def help_command
24
- 'tmate'
25
- end
26
-
27
- def help(cmd)
28
- %{
29
- tm[ate] n\topens a current file in TextMate.
30
- \t\tIt uses n-th frame if arg (n) is specifed.
31
- }
32
- end
33
- end
34
- end
35
- end
36
- end
@@ -1,44 +0,0 @@
1
- if RUBY_PLATFORM =~ /darwin/
2
- require_relative 'test_helper'
3
-
4
- describe "Tmate Command" do
5
- include TestDsl
6
-
7
- it "must open a current file with current frame in Textmate" do
8
- Byebug::TextMateCommand.any_instance.expects(:`).with("open 'txmt://open?url=file://#{fullpath('tmate')}&line=7'")
9
- enter 'break 7', 'cont', 'tmate'
10
- debug_file 'tmate'
11
- end
12
-
13
- it "must open a current file with specified frame in Textmate" do
14
- Byebug::TextMateCommand.any_instance.expects(:`).with("open 'txmt://open?url=file://#{fullpath('tmate')}&line=4'")
15
- enter 'break 7', 'cont', 'tmate 2'
16
- debug_file 'tmate'
17
- end
18
-
19
- describe "errors" do
20
- it "must show an error message if frame == 0" do
21
- enter 'tmate 0'
22
- debug_file 'tmate'
23
- check_output_includes "Wrong frame number"
24
- end
25
-
26
- it "must show an error message if frame > max frame" do
27
- enter 'tmate 10'
28
- debug_file 'tmate'
29
- check_output_includes "Wrong frame number"
30
- end
31
- end
32
-
33
- describe "Post Mortem" do
34
- it "must work in post-mortem mode" do
35
- skip("No post morten mode for now")
36
- #Byebug::TextMateCommand.any_instance.expects(:`).with(
37
- # "open 'txmt://open?url=file://#{fullpath('post_mortem')}&line=8'"
38
- #)
39
- #enter 'cont', 'tmate'
40
- #debug_file 'post_mortem'
41
- end
42
- end
43
- end
44
- end