pry-moves 1.0.4 → 1.0.5
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 +4 -4
- data/Gemfile.lock +1 -1
- data/lib/commands/next_breakpoint.rb +4 -0
- data/lib/pry-moves/backtrace.rb +1 -0
- data/lib/pry-moves/commands.rb +5 -8
- data/lib/pry-moves/painter.rb +10 -0
- data/lib/pry-moves/pry_ext.rb +1 -0
- data/lib/pry-moves/pry_wrapper.rb +1 -0
- data/lib/pry-moves/restartable.rb +5 -3
- data/lib/pry-moves/version.rb +1 -1
- data/lib/pry-moves.rb +18 -6
- data/lib/sugar/debug_of_missing.rb +1 -3
- data/lib/sugar/debug_sugar.rb +3 -3
- data/publish.sh +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 301fded3cbdfbcafed7b5387b820b8c1366be09023f0462a8ab1a36a7bbcc563
|
4
|
+
data.tar.gz: bfb140a999ccc293ca3f81ab11b2ea456c48f21c5a62902c6a44e6c6453e2baa
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 794091fb89ac6ab0b9b2de60dc960137dd72068368caafb6302e6b5731835c3d0d36db7526524c7d6b47104eaf1293aec779a9bb4bfcb45aa1a22a3dd71484c2
|
7
|
+
data.tar.gz: 816e6e90426305ea3b08ed9bfa1899106a3870b782a25cef59abfc3462d7ffa99fa081cae74acb0acfced7126267176c2b6af32fae6510b0e72a4217bd6bb95c
|
data/Gemfile.lock
CHANGED
@@ -4,6 +4,10 @@ class PryMoves::NextBreakpoint < PryMoves::TraceCommand
|
|
4
4
|
end
|
5
5
|
|
6
6
|
def trace(event, file, line, method, binding_)
|
7
|
+
# this command will stuck in tracing when no breakpoint met (usually)
|
8
|
+
PryMoves.messages << "⚠️ Command NextBreakpoint is not implemented"
|
9
|
+
return true
|
10
|
+
|
7
11
|
if binding_.local_variable_defined?(:pry_breakpoint) and
|
8
12
|
binding_.local_variable_get(:pry_breakpoint)
|
9
13
|
binding_.local_variable_set :pry_breakpoint, nil # reset breakpoint at visited method instance
|
data/lib/pry-moves/backtrace.rb
CHANGED
data/lib/pry-moves/commands.rb
CHANGED
@@ -113,17 +113,14 @@ module PryMoves
|
|
113
113
|
end
|
114
114
|
|
115
115
|
input = Pry.config.original_user_input || action.to_s
|
116
|
-
return if input
|
117
|
-
|
118
|
-
|
119
|
-
# binding_value = target.eval(input)
|
120
|
-
# rescue => e
|
121
|
-
# puts (e.backtrace.reverse + ["var_precedence exception:".red, "#{e}".red]).join "\n"
|
122
|
-
# end
|
123
|
-
unless binding_value.nil?
|
116
|
+
return if %w[next debug].include? input # next - ruby keyword
|
117
|
+
begin
|
118
|
+
binding_value = target.eval(input)
|
124
119
|
puts "ℹ️️ Variable \"#{input}\" found. To execute command type its alias or \\#{input}"
|
125
120
|
puts PryMoves::Painter.colorize binding_value
|
126
121
|
true
|
122
|
+
rescue => e
|
123
|
+
# puts (e.backtrace.reverse + ["var_precedence exception:".red, "#{e}".red]).join "\n"
|
127
124
|
end
|
128
125
|
end
|
129
126
|
|
data/lib/pry-moves/painter.rb
CHANGED
@@ -12,10 +12,20 @@ module PryMoves::Painter
|
|
12
12
|
|
13
13
|
end
|
14
14
|
|
15
|
+
class ShortInspector
|
16
|
+
def initialize obj
|
17
|
+
@obj = obj
|
18
|
+
end
|
19
|
+
def inspect
|
20
|
+
@obj.short_inspect
|
21
|
+
end
|
22
|
+
end
|
23
|
+
|
15
24
|
def self.colorize(obj)
|
16
25
|
colored_str = Canvas.new
|
17
26
|
i = obj.inspect
|
18
27
|
obj = obj.class if i.is_a?(String) && i.start_with?("#<")
|
28
|
+
obj = ShortInspector.new(obj) if obj.respond_to?(:short_inspect)
|
19
29
|
catch (:cut) do
|
20
30
|
Pry::ColorPrinter.pp obj, colored_str
|
21
31
|
end
|
data/lib/pry-moves/pry_ext.rb
CHANGED
@@ -86,6 +86,7 @@ Pry::Command::Whereami.class_eval do
|
|
86
86
|
|
87
87
|
formatter = PryMoves::Formatter.new
|
88
88
|
prefix = Thread.current[:pry_moves_debug] ? "👾 " : ""
|
89
|
+
# lines << "🍱 #{PryMoves.test_example}" if PryMoves.test_example
|
89
90
|
lines << "🦆 step_in_everywhere" if PryMoves.step_in_everywhere
|
90
91
|
lines << "#{prefix}#{formatter.shorten_path location}:#{@line} #{me}"
|
91
92
|
lines << " ." + formatter.method_signature(target)
|
@@ -9,10 +9,9 @@ module PryMoves::Restartable
|
|
9
9
|
context[:retry] ||= 0
|
10
10
|
PryMoves.reloader&.reload if context[:retry] > 0
|
11
11
|
yield context
|
12
|
-
re_execution
|
12
|
+
re_execution # todo: maybe mark restart_request for thread? not globally?
|
13
13
|
rescue PryMoves::Restart
|
14
14
|
puts "🔄️ Restarting execution"
|
15
|
-
self.restart_requested = false
|
16
15
|
PryMoves.reset
|
17
16
|
trigger :restart, context
|
18
17
|
context[:retry] += 1
|
@@ -23,7 +22,10 @@ module PryMoves::Restartable
|
|
23
22
|
end
|
24
23
|
|
25
24
|
def re_execution
|
26
|
-
|
25
|
+
if restart_requested
|
26
|
+
self.restart_requested = false
|
27
|
+
raise PryMoves::Restart
|
28
|
+
end
|
27
29
|
raise PryMoves::Reload if reload_requested
|
28
30
|
end
|
29
31
|
|
data/lib/pry-moves/version.rb
CHANGED
data/lib/pry-moves.rb
CHANGED
@@ -7,14 +7,23 @@ module PryMoves
|
|
7
7
|
extend PryMoves::Restartable
|
8
8
|
|
9
9
|
attr_accessor :is_open, :trace, :stack_tips,
|
10
|
-
:stop_on_breakpoints,
|
10
|
+
:stop_on_breakpoints,
|
11
|
+
:test_example, :launched_specs_examples,
|
11
12
|
:debug_called_times, :step_in_everywhere
|
12
13
|
|
14
|
+
def loop
|
15
|
+
Kernel.loop do
|
16
|
+
result = yield
|
17
|
+
debug "⏸ execution loop complete\n#{result}"
|
18
|
+
PryMoves.reloader&.reload
|
19
|
+
end
|
20
|
+
end
|
21
|
+
|
13
22
|
def init
|
14
23
|
reset
|
15
24
|
self.trace = true if ENV['TRACE_MOVES']
|
16
25
|
self.reload_ruby_scripts = {
|
17
|
-
monitor: %w(app spec),
|
26
|
+
monitor: %w(app test spec),
|
18
27
|
except: %w(app/assets app/views)
|
19
28
|
}
|
20
29
|
self.reloader = CodeReloader.new unless ENV['PRY_MOVES_RELOADER'] == 'off'
|
@@ -23,14 +32,17 @@ module PryMoves
|
|
23
32
|
|
24
33
|
def reset
|
25
34
|
self.launched_specs_examples = 0
|
26
|
-
|
27
|
-
|
35
|
+
unless ENV['PRY_MOVES'] == 'off' ||
|
36
|
+
(defined?(Rails) and Rails.env.production?)
|
37
|
+
self.stop_on_breakpoints = STDIN.tty? && STDOUT.tty?
|
38
|
+
end
|
28
39
|
self.debug_called_times = 0
|
29
40
|
self.step_in_everywhere = false
|
30
41
|
end
|
31
42
|
|
32
|
-
def debug(message = nil, at: nil, from: nil, options: nil)
|
43
|
+
def debug(message = nil, data: nil, at: nil, from: nil, options: nil)
|
33
44
|
pry_moves_stack_end = true
|
45
|
+
message ||= data
|
34
46
|
PryMoves.re_execution
|
35
47
|
if PryMoves.stop_on_breakpoints
|
36
48
|
self.debug_called_times += 1
|
@@ -63,7 +75,7 @@ module PryMoves
|
|
63
75
|
end
|
64
76
|
|
65
77
|
def is_project_file?
|
66
|
-
files = caller[2..
|
78
|
+
files = caller[2..4] # -2 steps upside: runtime_debug, debug sugar function
|
67
79
|
files.any? do |file|
|
68
80
|
!file.start_with?("/") || file.start_with?(ROOT_DIR)
|
69
81
|
end
|
@@ -5,9 +5,7 @@ Object.class_eval do
|
|
5
5
|
pry_cancel_debug = true
|
6
6
|
|
7
7
|
debug_missing_method = (
|
8
|
-
not ([:begin, :to_s, :to_str, :to_int, :to_ary, :to_io, :to_hash].include? method)
|
9
|
-
|
10
|
-
# not ([:begin, :to_s, :to_str, :to_int, :to_ary, :to_io, :to_hash].include? method) and
|
8
|
+
not ([:begin, :to_s, :to_str, :to_int, :to_r, :to_ary, :to_io, :to_hash].include? method)
|
11
9
|
# not caller[0].match PryMoves::Backtrace::filter
|
12
10
|
)
|
13
11
|
|
data/lib/sugar/debug_sugar.rb
CHANGED
@@ -1,5 +1,5 @@
|
|
1
1
|
def debug *args
|
2
|
-
return binding.pry_forced if args.first
|
2
|
+
return binding.pry_forced if [:force, :forced].include? args.first
|
3
3
|
pry_moves_stack_end = true
|
4
4
|
PryMoves.debug *args
|
5
5
|
end
|
@@ -33,7 +33,7 @@ Object.class_eval do
|
|
33
33
|
|
34
34
|
def required!
|
35
35
|
pry_moves_stack_end = true
|
36
|
-
error("required parameter is missing") if self.nil?
|
36
|
+
error("required parameter is missing", self) if self.nil?
|
37
37
|
self
|
38
38
|
end
|
39
39
|
|
@@ -69,7 +69,7 @@ Rake::Task.class_eval do
|
|
69
69
|
|
70
70
|
def execute(args=nil)
|
71
71
|
args ||= EMPTY_TASK_ARGS
|
72
|
-
PryMoves.restartable(rake_args: args) do |context|
|
72
|
+
PryMoves.restartable(rake_args: args, name: self.name) do |context|
|
73
73
|
reload_actions if PryMoves.reload_rake_tasks and context[:retry] > 0
|
74
74
|
execute_origin_for_pry_moves args
|
75
75
|
end
|
data/publish.sh
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pry-moves
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.5
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- garmoshka-mo
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2023-05-31 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: pry
|