jets 0.5.5 → 0.5.6
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/CHANGELOG.md +3 -0
- data/Gemfile.lock +1 -1
- data/lib/jets/builders/code_builder.rb +1 -0
- data/lib/jets/builders/gem_replacer.rb +1 -0
- data/lib/jets/version.rb +1 -1
- data/vendor/lambdagem/CHANGELOG.md +3 -0
- data/vendor/lambdagem/Gemfile.lock +3 -3
- data/vendor/lambdagem/README.md +0 -4
- data/vendor/lambdagem/lib/lambdagem.rb +2 -0
- data/vendor/lambdagem/lib/lambdagem/base.rb +2 -0
- data/vendor/lambdagem/lib/lambdagem/extract/base.rb +6 -6
- data/vendor/lambdagem/lib/lambdagem/extract/gem.rb +6 -5
- data/vendor/lambdagem/lib/lambdagem/extract/ruby.rb +4 -3
- data/vendor/lambdagem/lib/lambdagem/util.rb +30 -0
- data/vendor/lambdagem/lib/lambdagem/version.rb +1 -1
- metadata +3 -140
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/byebug/byebug.so +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/gem.build_complete +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/extensions/x86_64-linux/2.5.0-static/byebug-10.0.0/gem_make.out +0 -19
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/LICENSE +0 -23
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/exe/byebug +0 -6
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/Makefile +0 -263
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/breakpoint.c +0 -517
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/breakpoint.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.c +0 -905
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.h +0 -143
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/byebug.so +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/context.c +0 -673
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/context.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/extconf.rb +0 -12
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/locker.c +0 -96
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/locker.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/threads.c +0 -230
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/ext/byebug/threads.o +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug.rb +0 -3
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/attacher.rb +0 -48
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/breakpoint.rb +0 -111
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/byebug.so +0 -0
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/command.rb +0 -111
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/command_list.rb +0 -34
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands.rb +0 -39
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/break.rb +0 -116
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/catch.rb +0 -82
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/condition.rb +0 -57
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/continue.rb +0 -50
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/debug.rb +0 -38
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/delete.rb +0 -57
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable.rb +0 -33
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable/breakpoints.rb +0 -42
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/disable/display.rb +0 -43
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/display.rb +0 -66
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/down.rb +0 -45
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/edit.rb +0 -68
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable.rb +0 -33
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable/breakpoints.rb +0 -42
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/enable/display.rb +0 -43
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/finish.rb +0 -57
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/frame.rb +0 -57
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/help.rb +0 -64
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/history.rb +0 -39
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info.rb +0 -37
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/breakpoints.rb +0 -67
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/display.rb +0 -51
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/file.rb +0 -82
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/line.rb +0 -35
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/info/program.rb +0 -49
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/interrupt.rb +0 -34
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/irb.rb +0 -52
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/kill.rb +0 -47
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/list.rb +0 -159
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/method.rb +0 -53
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/next.rb +0 -40
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/pry.rb +0 -43
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/quit.rb +0 -42
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/restart.rb +0 -64
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/save.rb +0 -72
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/set.rb +0 -79
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/show.rb +0 -45
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/source.rb +0 -42
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/step.rb +0 -40
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread.rb +0 -34
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/current.rb +0 -37
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/list.rb +0 -43
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/resume.rb +0 -47
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/stop.rb +0 -43
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/thread/switch.rb +0 -46
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/tracevar.rb +0 -57
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/undisplay.rb +0 -52
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/untracevar.rb +0 -36
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/up.rb +0 -45
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var.rb +0 -37
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/all.rb +0 -41
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/args.rb +0 -39
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/const.rb +0 -51
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/global.rb +0 -37
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/instance.rb +0 -39
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/var/local.rb +0 -39
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/commands/where.rb +0 -53
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/context.rb +0 -157
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/core.rb +0 -114
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/errors.rb +0 -29
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/frame.rb +0 -185
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/bin.rb +0 -47
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/eval.rb +0 -126
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/file.rb +0 -63
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/frame.rb +0 -75
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/parse.rb +0 -77
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/path.rb +0 -40
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/reflection.rb +0 -19
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/string.rb +0 -36
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/thread.rb +0 -67
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/toggle.rb +0 -64
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/helpers/var.rb +0 -54
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/history.rb +0 -130
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interface.rb +0 -146
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/local_interface.rb +0 -44
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/remote_interface.rb +0 -50
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/script_interface.rb +0 -32
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/interfaces/test_interface.rb +0 -67
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/option_setter.rb +0 -95
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/base.rb +0 -69
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/plain.rb +0 -44
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/texts/base.yml +0 -115
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/printers/texts/plain.yml +0 -33
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/command_processor.rb +0 -173
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/control_processor.rb +0 -24
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/post_mortem_processor.rb +0 -18
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/processors/script_processor.rb +0 -49
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote.rb +0 -85
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote/client.rb +0 -55
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/remote/server.rb +0 -47
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/runner.rb +0 -198
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/setting.rb +0 -79
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autoirb.rb +0 -29
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autolist.rb +0 -29
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autopry.rb +0 -29
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/autosave.rb +0 -17
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/basename.rb +0 -16
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/callstyle.rb +0 -20
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/fullpath.rb +0 -16
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/histfile.rb +0 -20
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/histsize.rb +0 -20
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/linetrace.rb +0 -22
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/listsize.rb +0 -21
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/post_mortem.rb +0 -27
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/savefile.rb +0 -20
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/stack_on_error.rb +0 -15
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/settings/width.rb +0 -20
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/source_file_formatter.rb +0 -71
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/subcommands.rb +0 -54
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/gems/byebug-10.0.0/lib/byebug/version.rb +0 -8
- data/vendor/lambdagem/bundled/gems/ruby/2.5.0/specifications/byebug-10.0.0.gemspec +0 -39
@@ -1,54 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "byebug/helpers/eval"
|
4
|
-
|
5
|
-
module Byebug
|
6
|
-
module Helpers
|
7
|
-
#
|
8
|
-
# Utilities for variable subcommands
|
9
|
-
#
|
10
|
-
module VarHelper
|
11
|
-
include EvalHelper
|
12
|
-
|
13
|
-
def var_list(ary, binding = context.frame._binding)
|
14
|
-
vars = ary.sort.map do |name|
|
15
|
-
[name, safe_inspect(silent_eval(name.to_s, binding))]
|
16
|
-
end
|
17
|
-
|
18
|
-
puts prv(vars, "instance")
|
19
|
-
end
|
20
|
-
|
21
|
-
def var_global
|
22
|
-
globals = global_variables.reject do |v|
|
23
|
-
%i[$IGNORECASE $= $KCODE $-K $binding].include?(v)
|
24
|
-
end
|
25
|
-
|
26
|
-
var_list(globals)
|
27
|
-
end
|
28
|
-
|
29
|
-
def var_instance(str)
|
30
|
-
obj = warning_eval(str || "self")
|
31
|
-
|
32
|
-
var_list(obj.instance_variables, obj.instance_eval { binding })
|
33
|
-
end
|
34
|
-
|
35
|
-
def var_local
|
36
|
-
locals = context.frame.locals
|
37
|
-
cur_self = context.frame._self
|
38
|
-
locals[:self] = cur_self unless cur_self.to_s == "main"
|
39
|
-
puts prv(locals.keys.sort.map { |k| [k, locals[k]] }, "instance")
|
40
|
-
end
|
41
|
-
|
42
|
-
def var_args
|
43
|
-
args = context.frame.args
|
44
|
-
return if args == [[:rest]]
|
45
|
-
|
46
|
-
all_locals = context.frame.locals
|
47
|
-
arg_values = args.map { |arg| arg[1] }
|
48
|
-
|
49
|
-
locals = all_locals.select { |k, _| arg_values.include?(k) }
|
50
|
-
puts prv(locals.keys.sort.map { |k| [k, locals[k]] }, "instance")
|
51
|
-
end
|
52
|
-
end
|
53
|
-
end
|
54
|
-
end
|
@@ -1,130 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
begin
|
4
|
-
require "readline"
|
5
|
-
rescue LoadError
|
6
|
-
warn <<-MESSAGE
|
7
|
-
Sorry, you can't use byebug without Readline. To solve this, you need to
|
8
|
-
rebuild Ruby with Readline support. If using Ubuntu, try `sudo apt-get
|
9
|
-
install libreadline-dev` and then reinstall your Ruby.
|
10
|
-
MESSAGE
|
11
|
-
|
12
|
-
raise
|
13
|
-
end
|
14
|
-
|
15
|
-
module Byebug
|
16
|
-
#
|
17
|
-
# Handles byebug's history of commands.
|
18
|
-
#
|
19
|
-
class History
|
20
|
-
attr_accessor :size
|
21
|
-
|
22
|
-
def initialize
|
23
|
-
self.size = 0
|
24
|
-
end
|
25
|
-
|
26
|
-
#
|
27
|
-
# Array holding the list of commands in history
|
28
|
-
#
|
29
|
-
def buffer
|
30
|
-
Readline::HISTORY.to_a
|
31
|
-
end
|
32
|
-
|
33
|
-
#
|
34
|
-
# Restores history from disk.
|
35
|
-
#
|
36
|
-
def restore
|
37
|
-
return unless File.exist?(Setting[:histfile])
|
38
|
-
|
39
|
-
File.readlines(Setting[:histfile]).reverse_each { |l| push(l.chomp) }
|
40
|
-
end
|
41
|
-
|
42
|
-
#
|
43
|
-
# Saves history to disk.
|
44
|
-
#
|
45
|
-
def save
|
46
|
-
n_cmds = Setting[:histsize] > size ? size : Setting[:histsize]
|
47
|
-
|
48
|
-
open(Setting[:histfile], "w") do |file|
|
49
|
-
n_cmds.times { file.puts(pop) }
|
50
|
-
end
|
51
|
-
|
52
|
-
clear
|
53
|
-
end
|
54
|
-
|
55
|
-
#
|
56
|
-
# Discards history.
|
57
|
-
#
|
58
|
-
def clear
|
59
|
-
size.times { pop }
|
60
|
-
end
|
61
|
-
|
62
|
-
#
|
63
|
-
# Adds a new command to Readline's history.
|
64
|
-
#
|
65
|
-
def push(cmd)
|
66
|
-
return if ignore?(cmd)
|
67
|
-
|
68
|
-
self.size += 1
|
69
|
-
Readline::HISTORY.push(cmd)
|
70
|
-
end
|
71
|
-
|
72
|
-
#
|
73
|
-
# Removes a command from Readline's history.
|
74
|
-
#
|
75
|
-
def pop
|
76
|
-
self.size -= 1
|
77
|
-
Readline::HISTORY.pop
|
78
|
-
end
|
79
|
-
|
80
|
-
#
|
81
|
-
# Prints the requested numbers of history entries.
|
82
|
-
#
|
83
|
-
def to_s(n_cmds)
|
84
|
-
show_size = n_cmds ? specific_max_size(n_cmds) : default_max_size
|
85
|
-
|
86
|
-
commands = buffer.last(show_size)
|
87
|
-
|
88
|
-
last_ids(show_size).zip(commands).map do |l|
|
89
|
-
format("%<position>5d %<command>s", position: l[0], command: l[1])
|
90
|
-
end.join("\n") + "\n"
|
91
|
-
end
|
92
|
-
|
93
|
-
#
|
94
|
-
# Array of ids of the last n commands.
|
95
|
-
#
|
96
|
-
def last_ids(n)
|
97
|
-
(1 + size - n..size).to_a
|
98
|
-
end
|
99
|
-
|
100
|
-
#
|
101
|
-
# Max number of commands to be displayed when no size has been specified.
|
102
|
-
#
|
103
|
-
# Never more than Setting[:histsize].
|
104
|
-
#
|
105
|
-
def default_max_size
|
106
|
-
[Setting[:histsize], self.size].min
|
107
|
-
end
|
108
|
-
|
109
|
-
#
|
110
|
-
# Max number of commands to be displayed when a size has been specified.
|
111
|
-
#
|
112
|
-
# The only bound here is not showing more items than available.
|
113
|
-
#
|
114
|
-
def specific_max_size(number)
|
115
|
-
[self.size, number].min
|
116
|
-
end
|
117
|
-
|
118
|
-
#
|
119
|
-
# Whether a specific command should not be stored in history.
|
120
|
-
#
|
121
|
-
# For now, empty lines and consecutive duplicates.
|
122
|
-
#
|
123
|
-
def ignore?(buf)
|
124
|
-
return true if /^\s*$/ =~ buf
|
125
|
-
return false if Readline::HISTORY.empty?
|
126
|
-
|
127
|
-
buffer[Readline::HISTORY.length - 1] == buf
|
128
|
-
end
|
129
|
-
end
|
130
|
-
end
|
@@ -1,146 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "byebug/setting"
|
4
|
-
require "byebug/history"
|
5
|
-
require "byebug/helpers/file"
|
6
|
-
|
7
|
-
#
|
8
|
-
# Namespace for all of byebug's code
|
9
|
-
#
|
10
|
-
module Byebug
|
11
|
-
#
|
12
|
-
# Main Interface class
|
13
|
-
#
|
14
|
-
# Contains common functionality to all implemented interfaces.
|
15
|
-
#
|
16
|
-
class Interface
|
17
|
-
include Helpers::FileHelper
|
18
|
-
|
19
|
-
attr_accessor :command_queue, :history
|
20
|
-
attr_reader :input, :output, :error
|
21
|
-
|
22
|
-
def initialize
|
23
|
-
@command_queue = []
|
24
|
-
@history = History.new
|
25
|
-
@last_line = ""
|
26
|
-
end
|
27
|
-
|
28
|
-
def last_if_empty(input)
|
29
|
-
@last_line = input.empty? ? @last_line : input
|
30
|
-
end
|
31
|
-
|
32
|
-
#
|
33
|
-
# Pops a command from the input stream.
|
34
|
-
#
|
35
|
-
def read_command(prompt)
|
36
|
-
return command_queue.shift unless command_queue.empty?
|
37
|
-
|
38
|
-
read_input(prompt)
|
39
|
-
end
|
40
|
-
|
41
|
-
#
|
42
|
-
# Pushes lines in +filename+ to the command queue.
|
43
|
-
#
|
44
|
-
def read_file(filename)
|
45
|
-
command_queue.concat(get_lines(filename))
|
46
|
-
end
|
47
|
-
|
48
|
-
#
|
49
|
-
# Reads a new line from the interface's input stream, parses it into
|
50
|
-
# commands and saves it to history.
|
51
|
-
#
|
52
|
-
# @return [String] Representing something to be run by the debugger.
|
53
|
-
#
|
54
|
-
def read_input(prompt, save_hist = true)
|
55
|
-
line = prepare_input(prompt)
|
56
|
-
return unless line
|
57
|
-
|
58
|
-
history.push(line) if save_hist
|
59
|
-
|
60
|
-
command_queue.concat(split_commands(line))
|
61
|
-
command_queue.shift
|
62
|
-
end
|
63
|
-
|
64
|
-
#
|
65
|
-
# Reads a new line from the interface's input stream.
|
66
|
-
#
|
67
|
-
# @return [String] New string read or the previous string if the string
|
68
|
-
# read now was empty.
|
69
|
-
#
|
70
|
-
def prepare_input(prompt)
|
71
|
-
line = readline(prompt)
|
72
|
-
return unless line
|
73
|
-
|
74
|
-
last_if_empty(line)
|
75
|
-
end
|
76
|
-
|
77
|
-
#
|
78
|
-
# Prints an error message to the error stream.
|
79
|
-
#
|
80
|
-
def errmsg(message)
|
81
|
-
error.print("*** #{message}\n")
|
82
|
-
end
|
83
|
-
|
84
|
-
#
|
85
|
-
# Prints an output message to the output stream.
|
86
|
-
#
|
87
|
-
def puts(message)
|
88
|
-
output.puts(message)
|
89
|
-
end
|
90
|
-
|
91
|
-
#
|
92
|
-
# Prints an output message to the output stream without a final "\n".
|
93
|
-
#
|
94
|
-
def print(message)
|
95
|
-
output.print(message)
|
96
|
-
end
|
97
|
-
|
98
|
-
#
|
99
|
-
# Confirms user introduced an affirmative response to the input stream.
|
100
|
-
#
|
101
|
-
def confirm(prompt)
|
102
|
-
readline(prompt) == "y"
|
103
|
-
end
|
104
|
-
|
105
|
-
def close
|
106
|
-
end
|
107
|
-
|
108
|
-
#
|
109
|
-
# Saves or clears history according to +autosave+ setting.
|
110
|
-
#
|
111
|
-
def autosave
|
112
|
-
Setting[:autosave] ? history.save : history.clear
|
113
|
-
end
|
114
|
-
|
115
|
-
#
|
116
|
-
# Restores history according to +autosave+ setting.
|
117
|
-
#
|
118
|
-
def autorestore
|
119
|
-
history.restore if Setting[:autosave]
|
120
|
-
end
|
121
|
-
|
122
|
-
private
|
123
|
-
|
124
|
-
#
|
125
|
-
# Splits a command line of the form "cmd1 ; cmd2 ; ... ; cmdN" into an
|
126
|
-
# array of commands: [cmd1, cmd2, ..., cmdN]
|
127
|
-
#
|
128
|
-
def split_commands(cmd_line)
|
129
|
-
return [""] if cmd_line.empty?
|
130
|
-
|
131
|
-
cmd_line.split(/;/).each_with_object([]) do |v, m|
|
132
|
-
if m.empty? || m.last[-1] != '\\'
|
133
|
-
m << v.strip
|
134
|
-
next
|
135
|
-
end
|
136
|
-
|
137
|
-
m.last[-1, 1] = ""
|
138
|
-
m.last << ";" << v
|
139
|
-
end
|
140
|
-
end
|
141
|
-
end
|
142
|
-
end
|
143
|
-
|
144
|
-
require "byebug/interfaces/local_interface"
|
145
|
-
require "byebug/interfaces/script_interface"
|
146
|
-
require "byebug/interfaces/remote_interface"
|
@@ -1,44 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Byebug
|
4
|
-
#
|
5
|
-
# Interface class for standard byebug use.
|
6
|
-
#
|
7
|
-
class LocalInterface < Interface
|
8
|
-
EOF_ALIAS = "continue".freeze
|
9
|
-
|
10
|
-
def initialize
|
11
|
-
super()
|
12
|
-
@input = $stdin
|
13
|
-
@output = $stdout
|
14
|
-
@error = $stderr
|
15
|
-
end
|
16
|
-
|
17
|
-
#
|
18
|
-
# Reads a single line of input using Readline. If Ctrl-D is pressed, it
|
19
|
-
# returns "continue", meaning that program's execution will go on.
|
20
|
-
#
|
21
|
-
# @param prompt Prompt to be displayed.
|
22
|
-
#
|
23
|
-
def readline(prompt)
|
24
|
-
with_repl_like_sigint { Readline.readline(prompt) || EOF_ALIAS }
|
25
|
-
end
|
26
|
-
|
27
|
-
#
|
28
|
-
# Yields the block handling Ctrl-C the following way: if pressed while
|
29
|
-
# waiting for input, the line is reset to only the prompt and we ask for
|
30
|
-
# input again.
|
31
|
-
#
|
32
|
-
# @note Any external 'INT' traps are overriden during this method.
|
33
|
-
#
|
34
|
-
def with_repl_like_sigint
|
35
|
-
orig_handler = trap("INT") { raise Interrupt }
|
36
|
-
yield
|
37
|
-
rescue Interrupt
|
38
|
-
puts("^C")
|
39
|
-
retry
|
40
|
-
ensure
|
41
|
-
trap("INT", orig_handler)
|
42
|
-
end
|
43
|
-
end
|
44
|
-
end
|
@@ -1,50 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
require "byebug/history"
|
4
|
-
|
5
|
-
module Byebug
|
6
|
-
#
|
7
|
-
# Interface class for remote use of byebug.
|
8
|
-
#
|
9
|
-
class RemoteInterface < Interface
|
10
|
-
def initialize(socket)
|
11
|
-
super()
|
12
|
-
@input = socket
|
13
|
-
@output = socket
|
14
|
-
@error = socket
|
15
|
-
end
|
16
|
-
|
17
|
-
def read_command(prompt)
|
18
|
-
super("PROMPT #{prompt}")
|
19
|
-
rescue Errno::EPIPE, Errno::ECONNABORTED
|
20
|
-
"continue"
|
21
|
-
end
|
22
|
-
|
23
|
-
def confirm(prompt)
|
24
|
-
super("CONFIRM #{prompt}")
|
25
|
-
rescue Errno::EPIPE, Errno::ECONNABORTED
|
26
|
-
false
|
27
|
-
end
|
28
|
-
|
29
|
-
def print(message)
|
30
|
-
super(message)
|
31
|
-
rescue Errno::EPIPE, Errno::ECONNABORTED
|
32
|
-
nil
|
33
|
-
end
|
34
|
-
|
35
|
-
def puts(message)
|
36
|
-
super(message)
|
37
|
-
rescue Errno::EPIPE, Errno::ECONNABORTED
|
38
|
-
nil
|
39
|
-
end
|
40
|
-
|
41
|
-
def close
|
42
|
-
output.close
|
43
|
-
end
|
44
|
-
|
45
|
-
def readline(prompt)
|
46
|
-
puts(prompt)
|
47
|
-
(input.gets || "continue").chomp
|
48
|
-
end
|
49
|
-
end
|
50
|
-
end
|
@@ -1,32 +0,0 @@
|
|
1
|
-
# frozen_string_literal: true
|
2
|
-
|
3
|
-
module Byebug
|
4
|
-
#
|
5
|
-
# Interface class for command execution from script files.
|
6
|
-
#
|
7
|
-
class ScriptInterface < Interface
|
8
|
-
def initialize(file, verbose = false)
|
9
|
-
super()
|
10
|
-
@verbose = verbose
|
11
|
-
@input = File.open(file)
|
12
|
-
@output = verbose ? $stdout : StringIO.new
|
13
|
-
@error = $stderr
|
14
|
-
end
|
15
|
-
|
16
|
-
def read_command(prompt)
|
17
|
-
readline(prompt, false)
|
18
|
-
end
|
19
|
-
|
20
|
-
def close
|
21
|
-
input.close
|
22
|
-
end
|
23
|
-
|
24
|
-
def readline(*)
|
25
|
-
while (result = input.gets)
|
26
|
-
output.puts "+ #{result}" if @verbose
|
27
|
-
next if result =~ /^\s*#/
|
28
|
-
return result.chomp
|
29
|
-
end
|
30
|
-
end
|
31
|
-
end
|
32
|
-
end
|