debug_inspector 0.0.1 → 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.
- checksums.yaml +5 -5
- data/.github/workflows/test.yml +112 -0
- data/.gitignore +16 -0
- data/Gemfile +8 -0
- data/README.md +34 -12
- data/Rakefile +19 -64
- data/debug_inspector.gemspec +36 -14
- data/ext/debug_inspector/debug_inspector.c +10 -10
- data/ext/debug_inspector/extconf.rb +7 -6
- data/lib/debug_inspector.rb +14 -2
- data/lib/rubyvm/debug_inspector/version.rb +4 -0
- metadata +25 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: a9c0e6d3b5bd68235adc5212ad47f99333f9522b6c4b823cb783eb94a2d59d90
|
4
|
+
data.tar.gz: e90e6a29a0fdaf86d2259a825ec4bd0b1687e572b90cc24d6d6f889dcb225747
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df09cff61314f0af4f9fe0584e7417b0faa756652f1b6157895aae17cd852125a5b8c0535adfdfcdae8fd78e6e5ad845ac6101841373eba4eb75c29894a0674d
|
7
|
+
data.tar.gz: 1f329aeae5a8036e9959bdb43095ffcc92110a83f803f9835554a9b5a6b05253cf704006607d321d2abbe02847cce38f4f1f64c975197c03afa746b99c6e717f
|
@@ -0,0 +1,112 @@
|
|
1
|
+
name: Test
|
2
|
+
|
3
|
+
on:
|
4
|
+
push:
|
5
|
+
branches: [ master ]
|
6
|
+
schedule:
|
7
|
+
- cron: '0 0 11,25 * *' # roughly every two weeks to run on new Ruby versions
|
8
|
+
pull_request:
|
9
|
+
branches: [ master ]
|
10
|
+
workflow_dispatch:
|
11
|
+
|
12
|
+
jobs:
|
13
|
+
test:
|
14
|
+
name: "Unit"
|
15
|
+
runs-on: ${{ matrix.os }}
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
os:
|
20
|
+
- macos-latest
|
21
|
+
- ubuntu-latest
|
22
|
+
- windows-latest
|
23
|
+
ruby:
|
24
|
+
- "2.1"
|
25
|
+
- "2.2"
|
26
|
+
- "2.3"
|
27
|
+
- "2.4"
|
28
|
+
- "2.5"
|
29
|
+
- "2.6"
|
30
|
+
- "2.7"
|
31
|
+
- "3.0"
|
32
|
+
|
33
|
+
steps:
|
34
|
+
|
35
|
+
- uses: actions/checkout@v2
|
36
|
+
|
37
|
+
- name: Set up Ruby
|
38
|
+
uses: ruby/setup-ruby@v1
|
39
|
+
with:
|
40
|
+
ruby-version: ${{ matrix.ruby }}
|
41
|
+
bundler-cache: true
|
42
|
+
|
43
|
+
- name: Test
|
44
|
+
run: bundle exec rake
|
45
|
+
|
46
|
+
system:
|
47
|
+
name: "System"
|
48
|
+
runs-on: ${{ matrix.os }}
|
49
|
+
strategy:
|
50
|
+
fail-fast: false
|
51
|
+
matrix:
|
52
|
+
os:
|
53
|
+
- macos-latest
|
54
|
+
- ubuntu-latest
|
55
|
+
- windows-latest
|
56
|
+
ruby:
|
57
|
+
# This includes rubies that are not actually extended by this gem.
|
58
|
+
# We want to make sure the gem silently fails to load on those platforms.
|
59
|
+
- "2"
|
60
|
+
- "3.0"
|
61
|
+
- "jruby"
|
62
|
+
- "truffleruby"
|
63
|
+
exclude:
|
64
|
+
# Windows releases of jruby and truffleruby have issues. Skip them for now.
|
65
|
+
- { ruby: "jruby", os: "windows-latest" }
|
66
|
+
- { ruby: "truffleruby", os: "windows-latest" }
|
67
|
+
|
68
|
+
steps:
|
69
|
+
|
70
|
+
- uses: actions/checkout@v2
|
71
|
+
|
72
|
+
- name: Set up Ruby
|
73
|
+
uses: ruby/setup-ruby@v1
|
74
|
+
with:
|
75
|
+
ruby-version: ${{ matrix.ruby }}
|
76
|
+
bundler-cache: true
|
77
|
+
|
78
|
+
- name: Build gem
|
79
|
+
run: bundle exec gem build --verbose debug_inspector.gemspec
|
80
|
+
|
81
|
+
- name: Install gem
|
82
|
+
run: gem install --verbose debug_inspector*.gem
|
83
|
+
|
84
|
+
- name: Create directory for gem test
|
85
|
+
run: mkdir -p tmp/gem-test
|
86
|
+
|
87
|
+
- name: Create test Gemfile
|
88
|
+
run: echo "gem 'debug_inspector'" > Gemfile
|
89
|
+
working-directory: ./tmp/gem-test
|
90
|
+
|
91
|
+
- name: Get gem installation path
|
92
|
+
id: gem_path
|
93
|
+
run: |
|
94
|
+
gem_path=$(bundle show debug_inspector)
|
95
|
+
echo "gem_path is ${gem_path}"
|
96
|
+
echo "::set-output name=path::${gem_path}"
|
97
|
+
shell: bash
|
98
|
+
working-directory: ./tmp/gem-test
|
99
|
+
|
100
|
+
- name: List installed gem contents
|
101
|
+
run: find .
|
102
|
+
shell: bash
|
103
|
+
working-directory: ${{ steps.gem_path.outputs.path }}
|
104
|
+
|
105
|
+
- name: Test gem load
|
106
|
+
run: bundle exec ruby -e "require 'debug_inspector'"
|
107
|
+
working-directory: ./tmp/gem-test
|
108
|
+
|
109
|
+
- name: Test gem functionality
|
110
|
+
if: ${{ matrix.ruby != 'jruby' && matrix.ruby != 'truffleruby' }}
|
111
|
+
run: bundle exec ruby -e "require 'debug_inspector'; RubyVM::DebugInspector.open { |dc| dc.frame_binding(1) }"
|
112
|
+
working-directory: ./tmp/gem-test
|
data/.gitignore
ADDED
data/Gemfile
ADDED
data/README.md
CHANGED
@@ -1,11 +1,19 @@
|
|
1
|
+
[](https://github.com/banister/debug_inspector/actions?query=branch%3Amaster)
|
2
|
+
[](https://rubygems.org/gems/debug_inspector)
|
3
|
+
|
1
4
|
debug_inspector
|
2
5
|
===============
|
3
6
|
|
4
|
-
|
7
|
+
_A Ruby wrapper for the MRI 2.0+ debug\_inspector API_
|
8
|
+
|
9
|
+
The `debug_inspector` C extension and API were designed and built by [Koichi Sasada](https://github.com/ko1), this project
|
10
|
+
is just a gemification of his work.
|
5
11
|
|
6
|
-
|
12
|
+
**NOTES:**
|
7
13
|
|
8
|
-
**
|
14
|
+
* **Do not use this library outside of debugging situations**.
|
15
|
+
* This library makes use of the debug inspector API which was new in MRI 2.0.0.
|
16
|
+
* Only works on MRI 2 and 3. Requiring it on unsupported Rubies will result in a no-op
|
9
17
|
|
10
18
|
Usage
|
11
19
|
-----
|
@@ -13,19 +21,33 @@ Usage
|
|
13
21
|
```ruby
|
14
22
|
require 'debug_inspector'
|
15
23
|
|
16
|
-
#
|
17
|
-
|
24
|
+
# Open debug context
|
25
|
+
# Passed `dc' is only active in a block
|
26
|
+
RubyVM::DebugInspector.open { |dc|
|
27
|
+
# backtrace locations (returns an array of Thread::Backtrace::Location objects)
|
28
|
+
locs = dc.backtrace_locations
|
18
29
|
|
19
|
-
#
|
20
|
-
|
30
|
+
# you can get depth of stack frame with `locs.size'
|
31
|
+
locs.size.times do |i|
|
32
|
+
# binding of i-th caller frame (returns a Binding object or nil)
|
33
|
+
p dc.frame_binding(i)
|
21
34
|
|
22
|
-
#
|
23
|
-
|
35
|
+
# iseq of i-th caller frame (returns a RubyVM::InstructionSequence object or nil)
|
36
|
+
p dc.frame_iseq(i)
|
24
37
|
|
25
|
-
#
|
26
|
-
|
38
|
+
# class of i-th caller frame
|
39
|
+
p dc.frame_class(i)
|
40
|
+
end
|
41
|
+
}
|
27
42
|
```
|
28
43
|
|
44
|
+
Development
|
45
|
+
-----------
|
46
|
+
|
47
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake test` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
48
|
+
|
49
|
+
To install this gem onto your local machine, run `bundle exec rake install`. To release a new version, update the version number in `version.rb`, and then run `bundle exec rake release`, which will create a git tag for the version, push git commits and tags, and push the `.gem` file to [rubygems.org](https://rubygems.org).
|
50
|
+
|
29
51
|
Contact
|
30
52
|
-------
|
31
53
|
|
@@ -36,7 +58,7 @@ License
|
|
36
58
|
|
37
59
|
(The MIT License)
|
38
60
|
|
39
|
-
Copyright (c) 2012 (John Mair)
|
61
|
+
Copyright (c) 2012-2013 (John Mair)
|
40
62
|
|
41
63
|
Permission is hereby granted, free of charge, to any person obtaining
|
42
64
|
a copy of this software and associated documentation files (the
|
data/Rakefile
CHANGED
@@ -1,72 +1,27 @@
|
|
1
|
-
|
2
|
-
require
|
3
|
-
require "debug_inspector/version"
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rake/testtask"
|
4
3
|
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
CLEAN.include("ext/**/*.#{dlext}", "ext/**/*.log", "ext/**/*.o",
|
9
|
-
"ext/**/*~", "ext/**/*#*", "ext/**/*.obj", "**/*#*", "**/*#*.*",
|
10
|
-
"ext/**/*.def", "ext/**/*.pdb", "**/*_flymake*.*", "**/*_flymake", "**/*.rbc")
|
11
|
-
desc "Show version"
|
12
|
-
task :version do
|
13
|
-
puts "debug_inspector version: #{DebugInspector::VERSION}"
|
14
|
-
end
|
15
|
-
|
16
|
-
desc "run tests"
|
17
|
-
task :default => [:test]
|
18
|
-
|
19
|
-
desc "Run tests"
|
20
|
-
task :test do
|
21
|
-
sh "bacon -Itest -rubygems -a -q"
|
22
|
-
end
|
23
|
-
|
24
|
-
task :pry do
|
25
|
-
puts "loading debug_inspector into pry"
|
26
|
-
sh "pry -r #{direc}/lib/debug_inspector"
|
27
|
-
end
|
4
|
+
def can_compile_extensions?
|
5
|
+
RUBY_ENGINE == "ruby"
|
6
|
+
end
|
28
7
|
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
sh "cp *.#{dlext} ../../lib/"
|
36
|
-
end
|
8
|
+
Rake::TestTask.new(:test) do |t|
|
9
|
+
t.libs << "test"
|
10
|
+
t.libs << "lib"
|
11
|
+
t.test_files = FileList["test/**/*_test.rb"]
|
12
|
+
t.warning = true
|
13
|
+
t.verbose = true
|
37
14
|
end
|
38
15
|
|
39
|
-
|
40
|
-
task :cleanup do
|
41
|
-
sh "rm -rf lib/debug_inspector.#{dlext}"
|
42
|
-
chdir "#{direc}/ext/debug_inspector/" do
|
43
|
-
sh 'make clean' rescue nil
|
44
|
-
end
|
45
|
-
end
|
46
|
-
|
47
|
-
desc "(re)install gem"
|
48
|
-
task :reinstall => :gem do
|
49
|
-
sh "gem uninstall debug_inspector" rescue nil
|
50
|
-
sh "gem install -l #{direc}/debug_inspector-#{DebugInspector::VERSION}.gem"
|
51
|
-
end
|
52
|
-
|
53
|
-
task :install => :reinstall
|
54
|
-
|
55
|
-
desc "build all platform gems at once"
|
56
|
-
task :gem => [:clean, :rmgems] do
|
57
|
-
sh "gem build #{direc}/debug_inspector.gemspec"
|
58
|
-
end
|
16
|
+
require "rake/extensiontask"
|
59
17
|
|
60
|
-
|
61
|
-
task :
|
62
|
-
|
18
|
+
if can_compile_extensions?
|
19
|
+
task :build => :compile
|
20
|
+
task :default => [:clobber, :compile, :test]
|
21
|
+
else
|
22
|
+
task :default => [:test]
|
63
23
|
end
|
64
24
|
|
65
|
-
|
66
|
-
|
67
|
-
chdir(direc) do
|
68
|
-
Dir["*.gem"].each do |gemfile|
|
69
|
-
sh "gem push #{gemfile}"
|
70
|
-
end
|
71
|
-
end
|
25
|
+
Rake::ExtensionTask.new("debug_inspector") do |ext|
|
26
|
+
ext.lib_dir = "lib"
|
72
27
|
end
|
data/debug_inspector.gemspec
CHANGED
@@ -1,15 +1,37 @@
|
|
1
|
-
#
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
1
|
+
# We don't want to define any constants if the gem extension isn't loaded, so not requiring the version file.
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = "debug_inspector"
|
5
|
+
spec.version = "1.1.0"
|
6
|
+
spec.authors = ["John Mair (banisterfiend)"]
|
7
|
+
spec.email = ["jrmair@gmail.com"]
|
8
|
+
|
9
|
+
spec.summary = %q{A Ruby wrapper for the MRI 2.0 debug_inspector API}
|
10
|
+
spec.description = <<-TXT
|
11
|
+
Adds methods to RubyVM::DebugInspector to allow for inspection of backtrace frames.
|
12
|
+
|
13
|
+
The debug_inspector C extension and API were designed and built by Koichi Sasada, this project is just a gemification of his work.
|
14
|
+
|
15
|
+
This library makes use of the debug inspector API which was added to MRI 2.0.0.
|
16
|
+
Only works on MRI 2 and 3. Requiring it on unsupported Rubies will result in a no-op.
|
17
|
+
|
18
|
+
Recommended for use only in debugging situations. Do not use this in production apps.
|
19
|
+
TXT
|
20
|
+
spec.homepage = "https://github.com/banister/debug_inspector"
|
21
|
+
spec.license = "MIT"
|
22
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.0")
|
23
|
+
|
24
|
+
spec.metadata["homepage_uri"] = spec.homepage
|
25
|
+
spec.metadata["source_code_uri"] = "https://github.com/banister/debug_inspector"
|
26
|
+
spec.metadata["changelog_uri"] = "https://github.com/banister/debug_inspector/releases"
|
27
|
+
|
28
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
29
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|bin)/}) }
|
30
|
+
end
|
31
|
+
|
32
|
+
spec.require_paths = ["lib"]
|
33
|
+
|
34
|
+
if RUBY_ENGINE == "ruby"
|
35
|
+
spec.extensions = ["ext/debug_inspector/extconf.rb"]
|
36
|
+
end
|
15
37
|
end
|
@@ -10,15 +10,7 @@
|
|
10
10
|
**********************************************************************/
|
11
11
|
|
12
12
|
#include "ruby/ruby.h"
|
13
|
-
|
14
|
-
typedef struct rb_debug_inspector_struct rb_debug_inspector_t;
|
15
|
-
typedef VALUE (*rb_debug_inspector_func_t)(const rb_debug_inspector_t *, void *);
|
16
|
-
|
17
|
-
VALUE rb_debug_inspector_open(rb_debug_inspector_func_t func, void *data);
|
18
|
-
VALUE rb_debug_inspector_frame_binding_get(const rb_debug_inspector_t *dc, int index);
|
19
|
-
VALUE rb_debug_inspector_frame_class_get(const rb_debug_inspector_t *dc, int index);
|
20
|
-
VALUE rb_debug_inspector_frame_iseq_get(const rb_debug_inspector_t *dc, int index);
|
21
|
-
VALUE rb_debug_inspector_backtrace_locations(const rb_debug_inspector_t *dc);
|
13
|
+
#include "ruby/debug.h"
|
22
14
|
|
23
15
|
static size_t
|
24
16
|
di_size(const void *dummy)
|
@@ -37,7 +29,7 @@ di_get_dc(VALUE self)
|
|
37
29
|
const rb_debug_inspector_t *dc;
|
38
30
|
TypedData_Get_Struct(self, const rb_debug_inspector_t, &di_data_type, dc);
|
39
31
|
if (dc == 0) {
|
40
|
-
rb_raise(rb_eArgError, "invalid
|
32
|
+
rb_raise(rb_eArgError, "invalid debug context");
|
41
33
|
}
|
42
34
|
return dc;
|
43
35
|
}
|
@@ -70,6 +62,13 @@ di_frame_iseq(VALUE self, VALUE index)
|
|
70
62
|
return rb_debug_inspector_frame_iseq_get(dc, NUM2INT(index));
|
71
63
|
}
|
72
64
|
|
65
|
+
static VALUE
|
66
|
+
di_frame_self(VALUE self, VALUE index)
|
67
|
+
{
|
68
|
+
const rb_debug_inspector_t *dc = di_get_dc(self);
|
69
|
+
return rb_debug_inspector_frame_self_get(dc, NUM2INT(index));
|
70
|
+
}
|
71
|
+
|
73
72
|
static VALUE
|
74
73
|
breakpoint_i(const rb_debug_inspector_t *dc, void *ptr)
|
75
74
|
{
|
@@ -114,4 +113,5 @@ Init_debug_inspector(void)
|
|
114
113
|
rb_define_method(cDebugInspector, "frame_binding", di_binding, 1);
|
115
114
|
rb_define_method(cDebugInspector, "frame_class", di_frame_class, 1);
|
116
115
|
rb_define_method(cDebugInspector, "frame_iseq", di_frame_iseq, 1);
|
116
|
+
rb_define_method(cDebugInspector, "frame_self", di_frame_self, 1);
|
117
117
|
}
|
@@ -1,16 +1,17 @@
|
|
1
1
|
def fake_makefile
|
2
|
-
File.open(
|
3
|
-
f.puts
|
2
|
+
File.open("Makefile", "w") { |f|
|
3
|
+
f.puts '.PHONY: install'
|
4
|
+
f.puts 'install:'
|
5
|
+
f.puts "\t" + '@echo "This Ruby not supported by/does not require debug_inspector."'
|
4
6
|
}
|
5
7
|
end
|
6
8
|
|
7
|
-
def
|
9
|
+
def mri_2_or_3?
|
8
10
|
defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" &&
|
9
|
-
RUBY_VERSION =~ /^
|
11
|
+
RUBY_VERSION =~ /^[23]/
|
10
12
|
end
|
11
13
|
|
12
|
-
|
13
|
-
if mri_2?
|
14
|
+
if mri_2_or_3?
|
14
15
|
require 'mkmf'
|
15
16
|
create_makefile('debug_inspector')
|
16
17
|
else
|
data/lib/debug_inspector.rb
CHANGED
@@ -1,5 +1,17 @@
|
|
1
|
+
require 'rbconfig'
|
2
|
+
dlext = RbConfig::CONFIG['DLEXT']
|
1
3
|
begin
|
2
|
-
|
4
|
+
# If the installation task did its job, the extension is in lib/ next to this file.
|
5
|
+
require "debug_inspector.#{dlext}"
|
6
|
+
# We only want to define constants if the extension has loaded.
|
7
|
+
require_relative "rubyvm/debug_inspector/version"
|
3
8
|
rescue LoadError
|
9
|
+
begin
|
10
|
+
# If not, maybe the extension is in ext/
|
11
|
+
require_relative "../ext/debug_inspector/debug_inspector.#{dlext}"
|
12
|
+
# We only want to define constants if the extension has loaded.
|
13
|
+
require_relative "rubyvm/debug_inspector/version"
|
14
|
+
rescue LoadError => e
|
15
|
+
puts "debug_inspector extension was not loaded"
|
16
|
+
end
|
4
17
|
end
|
5
|
-
|
metadata
CHANGED
@@ -1,16 +1,24 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: debug_inspector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Mair (banisterfiend)
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2021-03-23 00:00:00.000000000 Z
|
12
12
|
dependencies: []
|
13
|
-
description:
|
13
|
+
description: |
|
14
|
+
Adds methods to RubyVM::DebugInspector to allow for inspection of backtrace frames.
|
15
|
+
|
16
|
+
The debug_inspector C extension and API were designed and built by Koichi Sasada, this project is just a gemification of his work.
|
17
|
+
|
18
|
+
This library makes use of the debug inspector API which was added to MRI 2.0.0.
|
19
|
+
Only works on MRI 2 and 3. Requiring it on unsupported Rubies will result in a no-op.
|
20
|
+
|
21
|
+
Recommended for use only in debugging situations. Do not use this in production apps.
|
14
22
|
email:
|
15
23
|
- jrmair@gmail.com
|
16
24
|
executables: []
|
@@ -18,32 +26,39 @@ extensions:
|
|
18
26
|
- ext/debug_inspector/extconf.rb
|
19
27
|
extra_rdoc_files: []
|
20
28
|
files:
|
29
|
+
- ".github/workflows/test.yml"
|
30
|
+
- ".gitignore"
|
31
|
+
- Gemfile
|
21
32
|
- README.md
|
22
33
|
- Rakefile
|
23
34
|
- debug_inspector.gemspec
|
24
35
|
- ext/debug_inspector/debug_inspector.c
|
25
36
|
- ext/debug_inspector/extconf.rb
|
26
37
|
- lib/debug_inspector.rb
|
38
|
+
- lib/rubyvm/debug_inspector/version.rb
|
27
39
|
homepage: https://github.com/banister/debug_inspector
|
28
|
-
licenses:
|
29
|
-
|
40
|
+
licenses:
|
41
|
+
- MIT
|
42
|
+
metadata:
|
43
|
+
homepage_uri: https://github.com/banister/debug_inspector
|
44
|
+
source_code_uri: https://github.com/banister/debug_inspector
|
45
|
+
changelog_uri: https://github.com/banister/debug_inspector/releases
|
30
46
|
post_install_message:
|
31
47
|
rdoc_options: []
|
32
48
|
require_paths:
|
33
49
|
- lib
|
34
50
|
required_ruby_version: !ruby/object:Gem::Requirement
|
35
51
|
requirements:
|
36
|
-
- -
|
52
|
+
- - ">="
|
37
53
|
- !ruby/object:Gem::Version
|
38
|
-
version: '0'
|
54
|
+
version: '2.0'
|
39
55
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
40
56
|
requirements:
|
41
|
-
- -
|
57
|
+
- - ">="
|
42
58
|
- !ruby/object:Gem::Version
|
43
59
|
version: '0'
|
44
60
|
requirements: []
|
45
|
-
|
46
|
-
rubygems_version: 2.0.0.rc.2
|
61
|
+
rubygems_version: 3.1.4
|
47
62
|
signing_key:
|
48
63
|
specification_version: 4
|
49
64
|
summary: A Ruby wrapper for the MRI 2.0 debug_inspector API
|