pry-byebug 3.5.0 → 3.9.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: d864ccbb1e9620607d53fb090f82f2bc6d92be70
4
- data.tar.gz: 8e2ac7232e9cf252534d87bf861950bce50b4e24
2
+ SHA256:
3
+ metadata.gz: 5a9be5ab97e10c1247774626e9dee655956d904dfcbdb0e601af7eabcee668a4
4
+ data.tar.gz: a151143361a89b102f85102c95c7b86a4743413822e69fefcf67087a93cd29cf
5
5
  SHA512:
6
- metadata.gz: ab7d1c97f4ae0af6184cb027d60f90d65fa8e9e9a515150e4bbcde7d006ac608c1d74ad6e5d4a67ec6d356d0fcf594155203e7f1dbd71785ea2fe8a9fa93a602
7
- data.tar.gz: 562f32fbe02ae69fcc10f6caea37566338e6616210867e760b7824f06be677c73668866033ba2123b69c32affe3cfc89c1798655d98fa0e56c88c8ec6c387b1b
6
+ metadata.gz: 75a234974314f675ba12d4c435897541c40e63b67807f03239665c31f6ecef9b06a3456ba9d577b9d255e0b59efd55b9486280884c788519a63e783920226a7d
7
+ data.tar.gz: bc5e1fcc9a82f7ed703d9b9e6272e8f8026300398e4f9265f3e72e9d84d066fa861492ee2e7a6a35c91345444160bdf39bab957c6b638d9b33ab735059b722c9
data/CHANGELOG.md CHANGED
@@ -2,6 +2,47 @@
2
2
 
3
3
  ## Master (Unreleased)
4
4
 
5
+ ## 3.9.0 (2020-03-21)
6
+
7
+ ### Fixed
8
+
9
+ * Dependency on pry being too loose. Now breaking minor releases of pry won't affect pry-byebug users (#289).
10
+
11
+ ### Added
12
+
13
+ * Support for pry 0.13.0 (#266).
14
+
15
+ ### Removed
16
+
17
+ * Support for pry older than 0.13.0 (#289).
18
+
19
+ ## 3.8.0 (2020-01-22)
20
+
21
+ ### Fixed
22
+
23
+ * Use `Binding#source_location` instead of evaluating `__FILE__` to avoid
24
+ warnings on Ruby 2.7 and on Ruby 2.6 in verbose mode (#221).
25
+
26
+ ### Removed
27
+
28
+ * Support for Ruby 2.3. Pry-byebug no longer installs on this platform.
29
+
30
+ ## 3.7.0 (2019-02-21)
31
+
32
+ * Byebug 11 compatibility, with ruby 2.6 support.
33
+
34
+ ## 3.6.0 (2018-02-07)
35
+
36
+ ### Added
37
+
38
+ * Byebug 10 compatibility, with ruby 2.5 support.
39
+
40
+ ## 3.5.1 (2017-11-27)
41
+
42
+ ### Fixed
43
+
44
+ * Allow other threads like Pry (#142).
45
+
5
46
  ## 3.5.0 (2017-08-23)
6
47
 
7
48
  ### Added
data/LICENSE CHANGED
@@ -1,6 +1,6 @@
1
- MIT/Expat License
1
+ MIT License
2
2
 
3
- Copyright (c) David Rodríguez <deivid.rodriguez@gmail.com>
3
+ Copyright (c) 2018 David Rodríguez <deivid.rodriguez@riseup.net>
4
4
 
5
5
  Permission is hereby granted, free of charge, to any person obtaining a copy of
6
6
  this software and associated documentation files (the "Software"), to deal in
data/README.md CHANGED
@@ -1,9 +1,8 @@
1
1
  # pry-byebug
2
2
 
3
3
  [![Version][VersionBadge]][VersionURL]
4
- [![Build][TravisBadge]][TravisURL]
4
+ [![Build][CIBadge]][CIURL]
5
5
  [![Inline docs][InchCIBadge]][InchCIURL]
6
- [![Gratipay][GratipayBadge]][GratipayURL]
7
6
  [![Coverage][CoverageBadge]][CoverageURL]
8
7
 
9
8
  Adds step-by-step debugging and stack navigation capabilities to [pry] using
@@ -24,12 +23,7 @@ puts 'Goodbye World' # Run 'next' in the console to move here.
24
23
 
25
24
  ## Requirements
26
25
 
27
- * Required: MRI 2.0.0 or higher.
28
-
29
- * Recommended:
30
- * MRI 2.1.8 or higher.
31
- * MRI 2.2.4 or higher.
32
- * MRI 2.3.0 or higher.
26
+ MRI 2.4.0 or higher.
33
27
 
34
28
  ## Installation
35
29
 
@@ -41,7 +35,9 @@ gem 'pry-byebug'
41
35
 
42
36
  to your Gemfile and run
43
37
 
44
- bundle install
38
+ ```console
39
+ bundle install
40
+ ```
45
41
 
46
42
  Make sure you include the gem globally or inside the `:test` group if you plan
47
43
  to use it to debug your tests!
@@ -149,6 +145,28 @@ mentioned here if they are present in your Gemfile.
149
145
 
150
146
  * [pry-nav]: Provides step-by-step debugging for JRuby.
151
147
 
148
+ ## Contribute
149
+
150
+ See [Getting Started with Development](CONTRIBUTING.md).
151
+
152
+ ## Funding
153
+
154
+ Subscribe to [Tidelift] to ensure pry-byebug stays actively maintained, and at
155
+ the same time get licensing assurances and timely security notifications for
156
+ your open source dependencies.
157
+
158
+ You can also help `pry-byebug` by leaving a small (or big) tip through [Liberapay].
159
+
160
+ [Tidelift]: https://tidelift.com/subscription/pkg/rubygems-pry-byebug?utm_source=rubygems-pry-byebug&utm_medium=referral&utm_campaign=readme
161
+ [Liberapay]: https://liberapay.com/pry-byebug/donate
162
+
163
+ ## Security contact information
164
+
165
+ Please use the Tidelift security contact to [report a security vulnerability].
166
+ Tidelift will coordinate the fix and disclosure.
167
+
168
+ [report a security vulnerability]: https://tidelift.com/security
169
+
152
170
  ## Credits
153
171
 
154
172
  * Gopal Patel (@nixme), creator of [pry-debugger], and everybody who contributed
@@ -166,11 +184,9 @@ Patches and bug reports are welcome.
166
184
 
167
185
  [VersionBadge]: https://badge.fury.io/rb/pry-byebug.svg
168
186
  [VersionURL]: http://badge.fury.io/rb/pry-byebug
169
- [TravisBadge]: https://secure.travis-ci.org/deivid-rodriguez/pry-byebug.svg
170
- [TravisURL]: http://travis-ci.org/deivid-rodriguez/pry-byebug
187
+ [CIBadge]: https://github.com/deivid-rodriguez/pry-byebug/workflows/ubuntu/badge.svg?branch=master
188
+ [CIURL]: https://github.com/deivid-rodriguez/pry-byebug/actions?query=workflow%3Aubuntu
171
189
  [InchCIBadge]: http://inch-ci.org/github/deivid-rodriguez/pry-byebug.svg?branch=master
172
190
  [InchCIURL]: http://inch-ci.org/github/deivid-rodriguez/pry-byebug
173
- [GratipayBadge]: http://img.shields.io/gratipay/pry-byebug.svg
174
- [GratipayURL]: https://www.gratipay.com/pry-byebug
175
- [CoverageBadge]: https://img.shields.io/codeclimate/coverage/github/deivid-rodriguez/pry-byebug.svg
176
- [CoverageURL]: https://codeclimate.com/github/deivid-rodriguez/pry-byebug
191
+ [CoverageBadge]: https://api.codeclimate.com/v1/badges/a88e27809329c03af017/test_coverage
192
+ [CoverageURL]: https://codeclimate.com/github/deivid-rodriguez/pry-byebug/test_coverage
@@ -1,4 +1,6 @@
1
- require 'byebug/core'
1
+ # frozen_string_literal: true
2
+
3
+ require "byebug/core"
2
4
 
3
5
  module Byebug
4
6
  #
@@ -25,7 +27,7 @@ module Byebug
25
27
  return_value = nil
26
28
 
27
29
  command = catch(:breakout_nav) do # Throws from PryByebug::Commands
28
- return_value = yield
30
+ return_value = allowing_other_threads { yield }
29
31
  {} # Nothing thrown == no navigational command
30
32
  end
31
33
 
@@ -91,7 +93,7 @@ module Byebug
91
93
  expr = breakpoint.expr
92
94
  return unless expr
93
95
 
94
- output.puts bold('Condition: ') + expr
96
+ output.puts bold("Condition: ") + expr
95
97
  end
96
98
 
97
99
  private
@@ -99,7 +101,7 @@ module Byebug
99
101
  def n_hits(breakpoint)
100
102
  n_hits = breakpoint.hit_count
101
103
 
102
- n_hits == 1 ? 'First hit' : "Hit #{n_hits} times."
104
+ n_hits == 1 ? "First hit" : "Hit #{n_hits} times."
103
105
  end
104
106
 
105
107
  #
@@ -118,7 +120,7 @@ module Byebug
118
120
  end
119
121
 
120
122
  def perform_backtrace(_options)
121
- Byebug::WhereCommand.new(self, 'backtrace').execute
123
+ Byebug::WhereCommand.new(self, "backtrace").execute
122
124
 
123
125
  resume_pry
124
126
  end
@@ -154,7 +156,7 @@ module Byebug
154
156
  end
155
157
 
156
158
  def perform_frame(options)
157
- index = options[:index] ? options[:index].to_i : ''
159
+ index = options[:index] ? options[:index].to_i : ""
158
160
 
159
161
  Byebug::FrameCommand.new(self, "frame #{index}").execute
160
162
 
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  class Pry
2
4
  module Byebug
3
5
  #
@@ -60,7 +62,8 @@ class Pry
60
62
  #
61
63
  def add_file(file, line, expression = nil)
62
64
  real_file = (file != Pry.eval_path)
63
- raise(ArgumentError, 'Invalid file!') if real_file && !File.exist?(file)
65
+ raise(ArgumentError, "Invalid file!") if real_file && !File.exist?(file)
66
+
64
67
  validate_expression expression
65
68
 
66
69
  path = (real_file ? File.expand_path(file) : file)
@@ -85,7 +88,6 @@ class Pry
85
88
  #
86
89
  def delete(id)
87
90
  deleted =
88
- ::Byebug.started? &&
89
91
  ::Byebug::Breakpoint.remove(id) &&
90
92
  breakpoints.delete(find_by_id(id))
91
93
 
@@ -97,7 +99,7 @@ class Pry
97
99
  #
98
100
  def delete_all
99
101
  @breakpoints = []
100
- ::Byebug.breakpoints.clear if ::Byebug.started?
102
+ ::Byebug.breakpoints.clear
101
103
  end
102
104
 
103
105
  #
@@ -142,6 +144,7 @@ class Pry
142
144
  def find_by_id(id)
143
145
  breakpoint = find { |b| b.id == id }
144
146
  raise(ArgumentError, "No breakpoint ##{id}!") unless breakpoint
147
+
145
148
  breakpoint
146
149
  end
147
150
 
@@ -1,25 +1,29 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/location"
4
+
1
5
  #
2
6
  # Main container module for Pry-Byebug functionality
3
7
  #
4
8
  module PryByebug
9
+ # Reference to currently running pry-remote server. Used by the processor.
10
+ attr_accessor :current_remote_server
11
+
12
+ module_function
13
+
5
14
  #
6
15
  # Checks that a target binding is in a local file context.
7
16
  #
8
17
  def file_context?(target)
9
- file = target.eval('__FILE__')
18
+ file = Helpers::Location.current_file(target)
10
19
  file == Pry.eval_path || !Pry::Helpers::BaseHelpers.not_a_real_file?(file)
11
20
  end
12
- module_function :file_context?
13
21
 
14
22
  #
15
23
  # Ensures that a command is executed in a local file context.
16
24
  #
17
- def check_file_context(target, e = nil)
18
- e ||= 'Cannot find local context. Did you use `binding.pry`?'
19
- raise(Pry::CommandError, e) unless file_context?(target)
25
+ def check_file_context(target, msg = nil)
26
+ msg ||= "Cannot find local context. Did you use `binding.pry`?"
27
+ raise(Pry::CommandError, msg) unless file_context?(target)
20
28
  end
21
- module_function :check_file_context
22
-
23
- # Reference to currently running pry-remote server. Used by the processor.
24
- attr_accessor :current_remote_server
25
29
  end
@@ -1,4 +1,6 @@
1
- require 'pry-byebug/base'
2
- require 'pry-byebug/pry_ext'
3
- require 'pry-byebug/commands'
4
- require 'pry-byebug/control_d_handler'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/base"
4
+ require "pry-byebug/pry_ext"
5
+ require "pry-byebug/commands"
6
+ require "pry-byebug/control_d_handler"
@@ -1,4 +1,6 @@
1
- require 'pry-byebug/helpers/navigation'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/navigation"
2
4
 
3
5
  module PryByebug
4
6
  #
@@ -7,10 +9,10 @@ module PryByebug
7
9
  class BacktraceCommand < Pry::ClassCommand
8
10
  include Helpers::Navigation
9
11
 
10
- match 'backtrace'
11
- group 'Byebug'
12
+ match "backtrace"
13
+ group "Byebug"
12
14
 
13
- description 'Display the current stack.'
15
+ description "Display the current stack."
14
16
 
15
17
  banner <<-BANNER
16
18
  Usage: backtrace
@@ -1,6 +1,9 @@
1
- require 'pry/byebug/breakpoints'
2
- require 'pry-byebug/helpers/breakpoints'
3
- require 'pry-byebug/helpers/multiline'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry/byebug/breakpoints"
4
+ require "pry-byebug/helpers/breakpoints"
5
+ require "pry-byebug/helpers/location"
6
+ require "pry-byebug/helpers/multiline"
4
7
 
5
8
  module PryByebug
6
9
  #
@@ -8,11 +11,12 @@ module PryByebug
8
11
  #
9
12
  class BreakCommand < Pry::ClassCommand
10
13
  include Helpers::Breakpoints
14
+ include Helpers::Location
11
15
  include Helpers::Multiline
12
16
 
13
- match 'break'
14
- group 'Byebug'
15
- description 'Set or edit a breakpoint.'
17
+ match "break"
18
+ group "Byebug"
19
+ description "Set or edit a breakpoint."
16
20
 
17
21
  banner <<-BANNER
18
22
  Usage: break <METHOD | FILE:LINE | LINE> [if CONDITION]
@@ -46,13 +50,13 @@ module PryByebug
46
50
  def options(opt)
47
51
  defaults = { argument: true, as: Integer }
48
52
 
49
- opt.on :c, :condition, 'Change condition of a breakpoint.', defaults
50
- opt.on :s, :show, 'Show breakpoint details and source.', defaults
51
- opt.on :D, :delete, 'Delete a breakpoint.', defaults
52
- opt.on :d, :disable, 'Disable a breakpoint.', defaults
53
- opt.on :e, :enable, 'Enable a disabled breakpoint.', defaults
54
- opt.on :'disable-all', 'Disable all breakpoints.'
55
- opt.on :'delete-all', 'Delete all breakpoints.'
53
+ opt.on :c, :condition, "Change condition of a breakpoint.", defaults
54
+ opt.on :s, :show, "Show breakpoint details and source.", defaults
55
+ opt.on :D, :delete, "Delete a breakpoint.", defaults
56
+ opt.on :d, :disable, "Disable a breakpoint.", defaults
57
+ opt.on :e, :enable, "Enable a disabled breakpoint.", defaults
58
+ opt.on :'disable-all', "Disable all breakpoints."
59
+ opt.on :'delete-all', "Delete all breakpoints."
56
60
  end
57
61
 
58
62
  def process
@@ -82,13 +86,13 @@ module PryByebug
82
86
  end
83
87
 
84
88
  def process_condition
85
- expr = args.empty? ? nil : args.join(' ')
89
+ expr = args.empty? ? nil : args.join(" ")
86
90
  breakpoints.change(opts[:condition], expr)
87
91
  end
88
92
 
89
93
  def new_breakpoint
90
94
  place = args.shift
91
- condition = args.join(' ') if args.shift == 'if'
95
+ condition = args.join(" ") if args.shift == "if"
92
96
 
93
97
  bp = add_breakpoint(place, condition)
94
98
 
@@ -107,7 +111,7 @@ module PryByebug
107
111
  def add_breakpoint(place, condition)
108
112
  case place
109
113
  when /^(\d+)$/
110
- errmsg = 'Line number declaration valid only in a file context.'
114
+ errmsg = "Line number declaration valid only in a file context."
111
115
  PryByebug.check_file_context(target, errmsg)
112
116
 
113
117
  lineno = Regexp.last_match[1].to_i
@@ -118,13 +122,13 @@ module PryByebug
118
122
  breakpoints.add_file(file, lineno, condition)
119
123
  when /^(.*)[.#].+$/ # Method or class name
120
124
  if Regexp.last_match[1].strip.empty?
121
- errmsg = 'Method name declaration valid only in a file context.'
125
+ errmsg = "Method name declaration valid only in a file context."
122
126
  PryByebug.check_file_context(target, errmsg)
123
- place = target.eval('self.class.to_s') + place
127
+ place = target.eval("self.class.to_s") + place
124
128
  end
125
129
  breakpoints.add_method(place, condition)
126
130
  else
127
- raise(ArgumentError, 'Cannot identify arguments as breakpoint')
131
+ raise(ArgumentError, "Cannot identify arguments as breakpoint")
128
132
  end
129
133
  end
130
134
  end
@@ -1,5 +1,8 @@
1
- require 'pry-byebug/helpers/navigation'
2
- require 'pry-byebug/helpers/breakpoints'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/navigation"
4
+ require "pry-byebug/helpers/breakpoints"
5
+ require "pry-byebug/helpers/location"
3
6
 
4
7
  module PryByebug
5
8
  #
@@ -8,10 +11,11 @@ module PryByebug
8
11
  class ContinueCommand < Pry::ClassCommand
9
12
  include Helpers::Navigation
10
13
  include Helpers::Breakpoints
14
+ include Helpers::Location
11
15
 
12
- match 'continue'
13
- group 'Byebug'
14
- description 'Continue program execution and end the Pry session.'
16
+ match "continue"
17
+ group "Byebug"
18
+ description "Continue program execution and end the Pry session."
15
19
 
16
20
  banner <<-BANNER
17
21
  Usage: continue [LINE]
@@ -1,4 +1,6 @@
1
- require 'pry-byebug/helpers/navigation'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/navigation"
2
4
 
3
5
  module PryByebug
4
6
  #
@@ -7,10 +9,10 @@ module PryByebug
7
9
  class DownCommand < Pry::ClassCommand
8
10
  include Helpers::Navigation
9
11
 
10
- match 'down'
11
- group 'Byebug'
12
+ match "down"
13
+ group "Byebug"
12
14
 
13
- description 'Move current frame down.'
15
+ description "Move current frame down."
14
16
 
15
17
  banner <<-BANNER
16
18
  Usage: down [TIMES]
@@ -1,3 +1,7 @@
1
+ # frozen_string_literal: true
2
+
3
+ require "pry/commands/exit_all"
4
+
1
5
  module PryByebug
2
6
  #
3
7
  # Exit pry REPL with Byebug.stop
@@ -1,4 +1,6 @@
1
- require 'pry-byebug/helpers/navigation'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/navigation"
2
4
 
3
5
  module PryByebug
4
6
  #
@@ -7,9 +9,9 @@ module PryByebug
7
9
  class FinishCommand < Pry::ClassCommand
8
10
  include PryByebug::Helpers::Navigation
9
11
 
10
- match 'finish'
11
- group 'Byebug'
12
- description 'Execute until current stack frame returns.'
12
+ match "finish"
13
+ group "Byebug"
14
+ description "Execute until current stack frame returns."
13
15
 
14
16
  banner <<-BANNER
15
17
  Usage: finish
@@ -1,4 +1,6 @@
1
- require 'pry-byebug/helpers/navigation'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/navigation"
2
4
 
3
5
  module PryByebug
4
6
  #
@@ -7,10 +9,10 @@ module PryByebug
7
9
  class FrameCommand < Pry::ClassCommand
8
10
  include Helpers::Navigation
9
11
 
10
- match 'frame'
11
- group 'Byebug'
12
+ match "frame"
13
+ group "Byebug"
12
14
 
13
- description 'Move to specified frame #.'
15
+ description "Move to specified frame #."
14
16
 
15
17
  banner <<-BANNER
16
18
  Usage: frame [TIMES]
@@ -20,7 +22,7 @@ module PryByebug
20
22
  Examples:
21
23
  frame #=> Show current frame #.
22
24
  frame 5 #=> Move to frame 5.
23
- BANNER
25
+ BANNER
24
26
 
25
27
  def process
26
28
  PryByebug.check_file_context(target)
@@ -1,5 +1,7 @@
1
- require 'pry-byebug/helpers/navigation'
2
- require 'pry-byebug/helpers/multiline'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/navigation"
4
+ require "pry-byebug/helpers/multiline"
3
5
 
4
6
  module PryByebug
5
7
  #
@@ -9,9 +11,9 @@ module PryByebug
9
11
  include Helpers::Navigation
10
12
  include Helpers::Multiline
11
13
 
12
- match 'next'
13
- group 'Byebug'
14
- description 'Execute the next line within the current stack frame.'
14
+ match "next"
15
+ group "Byebug"
16
+ description "Execute the next line within the current stack frame."
15
17
 
16
18
  banner <<-BANNER
17
19
  Usage: next [LINES]
@@ -1,4 +1,6 @@
1
- require 'pry-byebug/helpers/navigation'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/navigation"
2
4
 
3
5
  module PryByebug
4
6
  #
@@ -7,9 +9,9 @@ module PryByebug
7
9
  class StepCommand < Pry::ClassCommand
8
10
  include Helpers::Navigation
9
11
 
10
- match 'step'
11
- group 'Byebug'
12
- description 'Step execution into the next line or method.'
12
+ match "step"
13
+ group "Byebug"
14
+ description "Step execution into the next line or method."
13
15
 
14
16
  banner <<-BANNER
15
17
  Usage: step [TIMES]
@@ -19,7 +21,7 @@ module PryByebug
19
21
  Examples:
20
22
  step #=> Move a single step forward.
21
23
  step 5 #=> Execute the next 5 steps.
22
- BANNER
24
+ BANNER
23
25
 
24
26
  def process
25
27
  PryByebug.check_file_context(target)
@@ -1,4 +1,6 @@
1
- require 'pry-byebug/helpers/navigation'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/helpers/navigation"
2
4
 
3
5
  module PryByebug
4
6
  #
@@ -7,10 +9,10 @@ module PryByebug
7
9
  class UpCommand < Pry::ClassCommand
8
10
  include Helpers::Navigation
9
11
 
10
- match 'up'
11
- group 'Byebug'
12
+ match "up"
13
+ group "Byebug"
12
14
 
13
- description 'Move current frame up.'
15
+ description "Move current frame up."
14
16
 
15
17
  banner <<-BANNER
16
18
  Usage: up [TIMES]
@@ -1,10 +1,12 @@
1
- require 'pry-byebug/commands/backtrace'
2
- require 'pry-byebug/commands/next'
3
- require 'pry-byebug/commands/step'
4
- require 'pry-byebug/commands/continue'
5
- require 'pry-byebug/commands/finish'
6
- require 'pry-byebug/commands/up'
7
- require 'pry-byebug/commands/down'
8
- require 'pry-byebug/commands/frame'
9
- require 'pry-byebug/commands/breakpoint'
10
- require 'pry-byebug/commands/exit_all'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-byebug/commands/backtrace"
4
+ require "pry-byebug/commands/next"
5
+ require "pry-byebug/commands/step"
6
+ require "pry-byebug/commands/continue"
7
+ require "pry-byebug/commands/finish"
8
+ require "pry-byebug/commands/up"
9
+ require "pry-byebug/commands/down"
10
+ require "pry-byebug/commands/frame"
11
+ require "pry-byebug/commands/breakpoint"
12
+ require "pry-byebug/commands/exit_all"
@@ -1,7 +1,9 @@
1
+ # frozen_string_literal: true
2
+
1
3
  original_handler = Pry.config.control_d_handler
2
4
 
3
- Pry.config.control_d_handler = proc do |eval_string, pry_instance|
5
+ Pry.config.control_d_handler = proc do |pry_instance|
4
6
  Byebug.stop if Byebug.stoppable?
5
7
 
6
- original_handler.call(eval_string, pry_instance)
8
+ original_handler.call(pry_instance)
7
9
  end
@@ -1,4 +1,6 @@
1
- require 'byebug'
1
+ # frozen_string_literal: true
2
+
3
+ require "byebug"
2
4
 
3
5
  module PryByebug
4
6
  module Helpers
@@ -13,19 +15,11 @@ module PryByebug
13
15
  Pry::Byebug::Breakpoints
14
16
  end
15
17
 
16
- #
17
- # Current file in the target binding. Used as the default breakpoint
18
- # location.
19
- #
20
- def current_file
21
- target.eval('__FILE__')
22
- end
23
-
24
18
  #
25
19
  # Prints a message with bold font.
26
20
  #
27
21
  def bold_puts(msg)
28
- output.puts(text.bold(msg))
22
+ output.puts(bold(msg))
29
23
  end
30
24
 
31
25
  #
@@ -33,28 +27,32 @@ module PryByebug
33
27
  #
34
28
  # Includes surrounding code at that point.
35
29
  #
36
- def print_full_breakpoint(br)
37
- header = "Breakpoint #{br.id}:"
38
- status = br.enabled? ? 'Enabled' : 'Disabled'
39
- code = br.source_code.with_line_numbers.to_s
40
- condition = br.expr ? "#{text.bold('Condition:')} #{br.expr}\n" : ''
30
+ def print_full_breakpoint(breakpoint)
31
+ header = "Breakpoint #{breakpoint.id}:"
32
+ status = breakpoint.enabled? ? "Enabled" : "Disabled"
33
+ code = breakpoint.source_code.with_line_numbers.to_s
34
+ condition = if breakpoint.expr
35
+ "#{bold('Condition:')} #{breakpoint.expr}\n"
36
+ else
37
+ ""
38
+ end
41
39
 
42
- output.puts <<-EOP.gsub(/ {8}/, '')
40
+ output.puts <<-BREAKPOINT.gsub(/ {8}/, "")
43
41
 
44
- #{text.bold(header)} #{br} (#{status}) #{condition}
42
+ #{bold(header)} #{breakpoint} (#{status}) #{condition}
45
43
 
46
44
  #{code}
47
45
 
48
- EOP
46
+ BREAKPOINT
49
47
  end
50
48
 
51
49
  #
52
50
  # Print out concise information about a breakpoint.
53
51
  #
54
52
  def print_short_breakpoint(breakpoint)
55
- id = format('%*d', max_width, breakpoint.id)
56
- status = breakpoint.enabled? ? 'Yes' : 'No '
57
- expr = breakpoint.expr ? " #{breakpoint.expr} " : ''
53
+ id = format("%*d", max_width, breakpoint.id)
54
+ status = breakpoint.enabled? ? "Yes" : "No "
55
+ expr = breakpoint.expr ? " #{breakpoint.expr} " : ""
58
56
 
59
57
  output.puts(" #{id} #{status} #{breakpoint}#{expr}")
60
58
  end
@@ -65,12 +63,12 @@ module PryByebug
65
63
  def print_breakpoints_header
66
64
  header = "#{' ' * (max_width - 1)}# Enabled At "
67
65
 
68
- output.puts <<-EOP.gsub(/ {8}/, '')
66
+ output.puts <<-BREAKPOINTS.gsub(/ {8}/, "")
69
67
 
70
- #{text.bold(header)}
71
- #{text.bold('-' * header.size)}
68
+ #{bold(header)}
69
+ #{bold('-' * header.size)}
72
70
 
73
- EOP
71
+ BREAKPOINTS
74
72
  end
75
73
 
76
74
  #
@@ -0,0 +1,24 @@
1
+ # frozen_string_literal: true
2
+
3
+ module PryByebug
4
+ module Helpers
5
+ #
6
+ # Compatibility helper to handle source location
7
+ #
8
+ module Location
9
+ module_function
10
+
11
+ #
12
+ # Current file in the target binding. Used as the default breakpoint
13
+ # location.
14
+ #
15
+ def current_file(source = target)
16
+ # Guard clause for Ruby >= 2.6 providing now Binding#source_location ...
17
+ return source.source_location[0] if source.respond_to?(:source_location)
18
+
19
+ # ... to avoid warning: 'eval may not return location in binding'
20
+ source.eval("__FILE__")
21
+ end
22
+ end
23
+ end
24
+ end
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PryByebug
2
4
  module Helpers
3
5
  #
@@ -1,3 +1,5 @@
1
+ # frozen_string_literal: true
2
+
1
3
  module PryByebug
2
4
  module Helpers
3
5
  #
@@ -8,9 +10,9 @@ module PryByebug
8
10
  # Breaks out of the REPL loop and signals tracer
9
11
  #
10
12
  def breakout_navigation(action, options = {})
11
- _pry_.binding_stack.clear
13
+ pry_instance.binding_stack.clear
12
14
 
13
- throw :breakout_nav, action: action, options: options, pry: _pry_
15
+ throw :breakout_nav, action: action, options: options, pry: pry_instance
14
16
  end
15
17
  end
16
18
  end
@@ -1,11 +1,13 @@
1
- require 'byebug/processors/pry_processor'
1
+ # frozen_string_literal: true
2
+
3
+ require "byebug/processors/pry_processor"
2
4
 
3
5
  class << Pry
4
6
  alias start_without_pry_byebug start
5
7
 
6
8
  def start_with_pry_byebug(target = TOPLEVEL_BINDING, options = {})
7
9
  if target.is_a?(Binding) && PryByebug.file_context?(target)
8
- Byebug::PryProcessor.start unless ENV['DISABLE_PRY']
10
+ Byebug::PryProcessor.start unless ENV["DISABLE_PRY"]
9
11
  else
10
12
  # No need for the tracer unless we have a file context to step through
11
13
  start_without_pry_byebug(target, options)
@@ -1,4 +1,6 @@
1
- require 'pry-remote'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry-remote"
2
4
 
3
5
  module PryRemote
4
6
  #
@@ -10,7 +12,7 @@ module PryRemote
10
12
  # teardown the server right after Pry.start finishes.
11
13
  #
12
14
  def run
13
- raise('Already running a pry-remote session!') if
15
+ raise("Already running a pry-remote session!") if
14
16
  PryByebug.current_remote_server
15
17
 
16
18
  PryByebug.current_remote_server = self
@@ -38,5 +40,5 @@ end
38
40
  # 'next' on the last line of a program won't hit Byebug::PryProcessor#run,
39
41
  # which normally handles cleanup.
40
42
  at_exit do
41
- PryByebug.current_remote_server.teardown if PryByebug.current_remote_server
43
+ PryByebug.current_remote_server&.teardown
42
44
  end
@@ -1,6 +1,8 @@
1
+ # frozen_string_literal: true
2
+
1
3
  #
2
4
  # Main container module for Pry-Byebug functionality
3
5
  #
4
6
  module PryByebug
5
- VERSION = '3.5.0'.freeze
7
+ VERSION = "3.9.0"
6
8
  end
data/lib/pry-byebug.rb CHANGED
@@ -1,2 +1,4 @@
1
- require 'pry'
2
- require 'pry-byebug/cli'
1
+ # frozen_string_literal: true
2
+
3
+ require "pry"
4
+ require "pry-byebug/cli"
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: pry-byebug
3
3
  version: !ruby/object:Gem::Version
4
- version: 3.5.0
4
+ version: 3.9.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - David Rodríguez
@@ -9,36 +9,36 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2017-08-26 00:00:00.000000000 Z
12
+ date: 2020-03-21 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
- name: pry
15
+ name: byebug
16
16
  requirement: !ruby/object:Gem::Requirement
17
17
  requirements:
18
18
  - - "~>"
19
19
  - !ruby/object:Gem::Version
20
- version: '0.10'
20
+ version: '11.0'
21
21
  type: :runtime
22
22
  prerelease: false
23
23
  version_requirements: !ruby/object:Gem::Requirement
24
24
  requirements:
25
25
  - - "~>"
26
26
  - !ruby/object:Gem::Version
27
- version: '0.10'
27
+ version: '11.0'
28
28
  - !ruby/object:Gem::Dependency
29
- name: byebug
29
+ name: pry
30
30
  requirement: !ruby/object:Gem::Requirement
31
31
  requirements:
32
32
  - - "~>"
33
33
  - !ruby/object:Gem::Version
34
- version: '9.1'
34
+ version: 0.13.0
35
35
  type: :runtime
36
36
  prerelease: false
37
37
  version_requirements: !ruby/object:Gem::Requirement
38
38
  requirements:
39
39
  - - "~>"
40
40
  - !ruby/object:Gem::Version
41
- version: '9.1'
41
+ version: 0.13.0
42
42
  description: |-
43
43
  Combine 'pry' with 'byebug'. Adds 'step', 'next', 'finish',
44
44
  'continue' and 'break' commands to control execution.
@@ -69,6 +69,7 @@ files:
69
69
  - lib/pry-byebug/commands/up.rb
70
70
  - lib/pry-byebug/control_d_handler.rb
71
71
  - lib/pry-byebug/helpers/breakpoints.rb
72
+ - lib/pry-byebug/helpers/location.rb
72
73
  - lib/pry-byebug/helpers/multiline.rb
73
74
  - lib/pry-byebug/helpers/navigation.rb
74
75
  - lib/pry-byebug/pry_ext.rb
@@ -87,15 +88,14 @@ required_ruby_version: !ruby/object:Gem::Requirement
87
88
  requirements:
88
89
  - - ">="
89
90
  - !ruby/object:Gem::Version
90
- version: 2.2.0
91
+ version: 2.4.0
91
92
  required_rubygems_version: !ruby/object:Gem::Requirement
92
93
  requirements:
93
94
  - - ">="
94
95
  - !ruby/object:Gem::Version
95
96
  version: '0'
96
97
  requirements: []
97
- rubyforge_project:
98
- rubygems_version: 2.6.12
98
+ rubygems_version: 3.2.0.pre1
99
99
  signing_key:
100
100
  specification_version: 4
101
101
  summary: Fast debugging with Pry.