binding_of_caller 0.8.0 → 1.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +5 -5
- data/.github/workflows/test.yml +103 -0
- data/.gitignore +12 -7
- data/Gemfile +6 -1
- data/README.md +14 -5
- data/Rakefile +4 -132
- data/binding_of_caller.gemspec +33 -37
- data/lib/binding_of_caller.rb +7 -8
- data/lib/binding_of_caller/{mri2.rb → mri.rb} +0 -0
- data/lib/binding_of_caller/version.rb +1 -1
- metadata +26 -103
- data/.travis.yml +0 -35
- data/examples/benchmark.rb +0 -63
- data/examples/example.rb +0 -41
- data/ext/binding_of_caller/binding_of_caller.c +0 -225
- data/ext/binding_of_caller/extconf.rb +0 -28
- data/ext/binding_of_caller/ruby_headers/192/debug.h +0 -36
- data/ext/binding_of_caller/ruby_headers/192/dln.h +0 -41
- data/ext/binding_of_caller/ruby_headers/192/eval_intern.h +0 -232
- data/ext/binding_of_caller/ruby_headers/192/id.h +0 -173
- data/ext/binding_of_caller/ruby_headers/192/iseq.h +0 -104
- data/ext/binding_of_caller/ruby_headers/192/method.h +0 -103
- data/ext/binding_of_caller/ruby_headers/192/node.h +0 -483
- data/ext/binding_of_caller/ruby_headers/192/regenc.h +0 -211
- data/ext/binding_of_caller/ruby_headers/192/regint.h +0 -841
- data/ext/binding_of_caller/ruby_headers/192/regparse.h +0 -354
- data/ext/binding_of_caller/ruby_headers/192/rubys_gc.h +0 -77
- data/ext/binding_of_caller/ruby_headers/192/thread_pthread.h +0 -27
- data/ext/binding_of_caller/ruby_headers/192/thread_win32.h +0 -33
- data/ext/binding_of_caller/ruby_headers/192/timev.h +0 -21
- data/ext/binding_of_caller/ruby_headers/192/transcode_data.h +0 -109
- data/ext/binding_of_caller/ruby_headers/192/version.h +0 -55
- data/ext/binding_of_caller/ruby_headers/192/vm_core.h +0 -703
- data/ext/binding_of_caller/ruby_headers/192/vm_exec.h +0 -184
- data/ext/binding_of_caller/ruby_headers/192/vm_insnhelper.h +0 -208
- data/ext/binding_of_caller/ruby_headers/192/vm_opts.h +0 -51
- data/ext/binding_of_caller/ruby_headers/193/addr2line.h +0 -21
- data/ext/binding_of_caller/ruby_headers/193/atomic.h +0 -56
- data/ext/binding_of_caller/ruby_headers/193/constant.h +0 -34
- data/ext/binding_of_caller/ruby_headers/193/debug.h +0 -41
- data/ext/binding_of_caller/ruby_headers/193/dln.h +0 -50
- data/ext/binding_of_caller/ruby_headers/193/encdb.h +0 -167
- data/ext/binding_of_caller/ruby_headers/193/eval_intern.h +0 -234
- data/ext/binding_of_caller/ruby_headers/193/id.h +0 -175
- data/ext/binding_of_caller/ruby_headers/193/internal.h +0 -227
- data/ext/binding_of_caller/ruby_headers/193/iseq.h +0 -125
- data/ext/binding_of_caller/ruby_headers/193/method.h +0 -105
- data/ext/binding_of_caller/ruby_headers/193/node.h +0 -503
- data/ext/binding_of_caller/ruby_headers/193/parse.h +0 -186
- data/ext/binding_of_caller/ruby_headers/193/regenc.h +0 -219
- data/ext/binding_of_caller/ruby_headers/193/regint.h +0 -851
- data/ext/binding_of_caller/ruby_headers/193/regparse.h +0 -362
- data/ext/binding_of_caller/ruby_headers/193/revision.h +0 -1
- data/ext/binding_of_caller/ruby_headers/193/rubys_gc.h +0 -98
- data/ext/binding_of_caller/ruby_headers/193/thread_pthread.h +0 -51
- data/ext/binding_of_caller/ruby_headers/193/thread_win32.h +0 -40
- data/ext/binding_of_caller/ruby_headers/193/timev.h +0 -21
- data/ext/binding_of_caller/ruby_headers/193/transcode_data.h +0 -117
- data/ext/binding_of_caller/ruby_headers/193/transdb.h +0 -189
- data/ext/binding_of_caller/ruby_headers/193/version.h +0 -52
- data/ext/binding_of_caller/ruby_headers/193/vm_core.h +0 -755
- data/ext/binding_of_caller/ruby_headers/193/vm_exec.h +0 -184
- data/ext/binding_of_caller/ruby_headers/193/vm_insnhelper.h +0 -220
- data/ext/binding_of_caller/ruby_headers/193/vm_opts.h +0 -51
- data/test/test_binding_of_caller.rb +0 -161
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 25a588cad50a78180a488286806d6b5c8d0f2864426d4b496046fdbe6af8a102
|
4
|
+
data.tar.gz: dc2c3f0ca27db62f5ea170ee471c4a1342f955b7f3e0f7fdfdaef2492c984031
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 5dc8dfc7d1b014e12f0fde271d9822da537d3a3e230bba5569e3cce5af7cc89841bd798a6e03ca6b3d8063d2113621892079a0bdc1f31a2d8cc80fcf5dcaa522
|
7
|
+
data.tar.gz: 89d5fc7e71b1138db085625d671b164234832b5942ad5c16e9ead8c20abc2b13caf1fa0ccab64e082e3ddc76af312db4fa778c8c26a52edcad6c91f9359ba45c
|
@@ -0,0 +1,103 @@
|
|
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: ubuntu-latest
|
16
|
+
strategy:
|
17
|
+
fail-fast: false
|
18
|
+
matrix:
|
19
|
+
ruby:
|
20
|
+
- "2.1"
|
21
|
+
- "2.2"
|
22
|
+
- "2.3"
|
23
|
+
- "2.4"
|
24
|
+
- "2.5"
|
25
|
+
- "2.6"
|
26
|
+
- "2.7"
|
27
|
+
- "3.0"
|
28
|
+
|
29
|
+
steps:
|
30
|
+
|
31
|
+
- uses: actions/checkout@v2
|
32
|
+
|
33
|
+
- name: Set up Ruby
|
34
|
+
uses: ruby/setup-ruby@v1
|
35
|
+
with:
|
36
|
+
ruby-version: ${{ matrix.ruby }}
|
37
|
+
bundler-cache: true
|
38
|
+
|
39
|
+
- name: Test
|
40
|
+
run: bundle exec rspec -f doc
|
41
|
+
|
42
|
+
system:
|
43
|
+
name: "System"
|
44
|
+
runs-on: ${{ matrix.os }}
|
45
|
+
strategy:
|
46
|
+
fail-fast: false
|
47
|
+
matrix:
|
48
|
+
os:
|
49
|
+
- macos-latest
|
50
|
+
- ubuntu-latest
|
51
|
+
- windows-latest
|
52
|
+
ruby:
|
53
|
+
- "2"
|
54
|
+
- "3.0"
|
55
|
+
- "jruby"
|
56
|
+
- "truffleruby"
|
57
|
+
exclude:
|
58
|
+
# Windows releases of jruby and truffleruby have issues. Skip them for now.
|
59
|
+
- { ruby: "jruby", os: "windows-latest" }
|
60
|
+
- { ruby: "truffleruby", os: "windows-latest" }
|
61
|
+
|
62
|
+
steps:
|
63
|
+
|
64
|
+
- uses: actions/checkout@v2
|
65
|
+
|
66
|
+
- name: Determine ruby version name
|
67
|
+
id: ruby_version
|
68
|
+
run: |
|
69
|
+
if [[ $OS == 'windows-latest' && $RUBY == '3.0' ]]; then
|
70
|
+
# Windows doesn't have 3.0, so run head there but nowhere else.
|
71
|
+
echo "::set-output name=release::head"
|
72
|
+
else
|
73
|
+
echo "::set-output name=release::$RUBY"
|
74
|
+
fi
|
75
|
+
shell: bash
|
76
|
+
env:
|
77
|
+
OS: ${{ matrix.os }}
|
78
|
+
RUBY: ${{ matrix.ruby }}
|
79
|
+
|
80
|
+
- name: Set up Ruby
|
81
|
+
uses: ruby/setup-ruby@v1
|
82
|
+
with:
|
83
|
+
ruby-version: ${{ steps.ruby_version.outputs.release }}
|
84
|
+
bundler-cache: true
|
85
|
+
|
86
|
+
- name: Install gem
|
87
|
+
run: bundle exec rake install
|
88
|
+
|
89
|
+
- name: Create directory for gem test
|
90
|
+
run: mkdir -p tmp/gem-test
|
91
|
+
|
92
|
+
- name: Create test Gemfile
|
93
|
+
run: echo "gem 'binding_of_caller'" > Gemfile
|
94
|
+
working-directory: ./tmp/gem-test
|
95
|
+
|
96
|
+
- name: Test gem load
|
97
|
+
run: bundle exec ruby -e "require 'binding_of_caller'"
|
98
|
+
|
99
|
+
- name: Test gem functionality
|
100
|
+
if: ${{ matrix.ruby != 'jruby' && matrix.ruby != 'truffleruby' }}
|
101
|
+
run: bundle exec ruby -e "require 'binding_of_caller'; binding.of_caller(0).eval('var = :hello')"
|
102
|
+
env:
|
103
|
+
JRUBY_OPTS: "--dev" # This will support JRuby once the gem is updated to support JRuby 9.x
|
data/.gitignore
CHANGED
data/Gemfile
CHANGED
data/README.md
CHANGED
@@ -1,11 +1,12 @@
|
|
1
|
-
[![Build Status](https://
|
1
|
+
[![Build Status](https://github.com/banister/binding_of_caller/workflows/Test/badge.svg?branch=master&event=push)](https://github.com/banister/binding_of_caller/actions?query=branch%3Amaster)
|
2
|
+
[![Gem Version](https://img.shields.io/gem/v/binding_of_caller.svg)](https://rubygems.org/gems/binding_of_caller)
|
2
3
|
|
3
4
|
binding_of_caller
|
4
|
-
|
5
|
+
=================
|
5
6
|
|
6
7
|
(C) John Mair (banisterfiend) 2012
|
7
8
|
|
8
|
-
_Retrieve the binding of a method's caller in MRI (>=
|
9
|
+
_Retrieve the binding of a method's caller in MRI (>= 2.0.0) and RBX (Rubinius)_
|
9
10
|
|
10
11
|
The `binding_of_caller` gem provides the `Binding#of_caller` method.
|
11
12
|
|
@@ -15,7 +16,7 @@ call stack, not limited to just the immediate caller.
|
|
15
16
|
|
16
17
|
**Recommended for use only in debugging situations. Do not use this in production apps.**
|
17
18
|
|
18
|
-
**Works in MRI Ruby (>=
|
19
|
+
**Works in MRI Ruby (>= 2.0) and RBX (Rubinius)**
|
19
20
|
|
20
21
|
* Install the [gem](https://rubygems.org/gems/binding_of_caller): `gem install binding_of_caller`
|
21
22
|
* See the [source code](http://github.com/banister/binding_of_caller)
|
@@ -52,12 +53,20 @@ This project is a spinoff from the [Pry REPL project.](http://pry.github.com)
|
|
52
53
|
Features and limitations
|
53
54
|
-------------------------
|
54
55
|
|
55
|
-
* Works in MRI (>=
|
56
|
+
* Works in MRI (>= 2.0.0) and RBX (Rubinius)
|
57
|
+
* For MRI 1.9.x, use version "~> 0.8" of the gem, which included support for MRI before 2.0.
|
56
58
|
* Does not work in 1.8.7, but there is a well known (continuation-based) hack to get a `Binding#of_caller` there.
|
57
59
|
* There is experimental support for jruby 1.7.x, but it only works in interpreted
|
58
60
|
mode (i.e. use the option `-Djruby.compile.mode=OFF` or append
|
59
61
|
`compile.mode=OFF` to your `.jrubyrc`)
|
60
62
|
|
63
|
+
Development
|
64
|
+
-----------
|
65
|
+
|
66
|
+
After checking out the repo, run `bin/setup` to install dependencies. Then, run `rake spec` to run the tests. You can also run `bin/console` for an interactive prompt that will allow you to experiment.
|
67
|
+
|
68
|
+
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).
|
69
|
+
|
61
70
|
Contact
|
62
71
|
-------
|
63
72
|
|
data/Rakefile
CHANGED
@@ -1,134 +1,6 @@
|
|
1
|
-
|
2
|
-
|
1
|
+
require "bundler/gem_tasks"
|
2
|
+
require "rspec/core/rake_task"
|
3
3
|
|
4
|
-
|
4
|
+
RSpec::Core::RakeTask.new(:spec)
|
5
5
|
|
6
|
-
|
7
|
-
require 'rubygems/package_task'
|
8
|
-
|
9
|
-
require "binding_of_caller/version"
|
10
|
-
|
11
|
-
CLOBBER.include("**/*.#{dlext}", "**/*~", "**/*#*", "**/*.log", "**/*.o")
|
12
|
-
CLEAN.include("ext/**/*.#{dlext}", "ext/**/*.log", "ext/**/*.o",
|
13
|
-
"ext/**/*~", "ext/**/*#*", "ext/**/*.obj", "**/*#*", "**/*#*.*",
|
14
|
-
"ext/**/*.def", "ext/**/*.pdb", "**/*_flymake*.*", "**/*_flymake", "**/*.rbc")
|
15
|
-
|
16
|
-
def mri_2?
|
17
|
-
defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" &&
|
18
|
-
RUBY_VERSION =~ /^2/
|
19
|
-
end
|
20
|
-
|
21
|
-
def apply_spec_defaults(s)
|
22
|
-
s.name = "binding_of_caller"
|
23
|
-
s.summary = "Retrieve the binding of a method's caller. Can also retrieve bindings even further up the stack."
|
24
|
-
s.version = BindingOfCaller::VERSION
|
25
|
-
s.date = Time.now.strftime '%Y-%m-%d'
|
26
|
-
s.author = "John Mair (banisterfiend)"
|
27
|
-
s.email = 'jrmair@gmail.com'
|
28
|
-
s.description = s.summary
|
29
|
-
s.require_path = 'lib'
|
30
|
-
s.add_dependency 'debug_inspector', '>= 0.0.1'
|
31
|
-
s.add_development_dependency 'bacon'
|
32
|
-
s.add_development_dependency 'rake'
|
33
|
-
s.homepage = "http://github.com/banister/binding_of_caller"
|
34
|
-
s.has_rdoc = 'yard'
|
35
|
-
s.files = `git ls-files`.split("\n")
|
36
|
-
s.test_files = `git ls-files -- test/*`.split("\n")
|
37
|
-
end
|
38
|
-
|
39
|
-
desc "Show version"
|
40
|
-
task :version do
|
41
|
-
puts "BindingOfCaller version: #{BindingOfCaller::VERSION}"
|
42
|
-
end
|
43
|
-
|
44
|
-
desc "run tests"
|
45
|
-
task :default => [:test]
|
46
|
-
|
47
|
-
desc "Run tests"
|
48
|
-
task :test do
|
49
|
-
unless defined?(Rubinius) or defined?(JRuby)
|
50
|
-
Rake::Task['compile'].execute
|
51
|
-
end
|
52
|
-
|
53
|
-
$stdout.puts("\033[33m")
|
54
|
-
sh "bacon -Itest -r rubygems -a -q"
|
55
|
-
$stdout.puts("\033[0m")
|
56
|
-
|
57
|
-
unless defined?(Rubinius)
|
58
|
-
Rake::Task['cleanup'].execute
|
59
|
-
end
|
60
|
-
end
|
61
|
-
|
62
|
-
task :pry do
|
63
|
-
puts "loading binding_of_caller into pry"
|
64
|
-
sh "pry -r ./lib/binding_of_caller"
|
65
|
-
end
|
66
|
-
|
67
|
-
desc "generate gemspec"
|
68
|
-
task :gemspec => "ruby:gemspec"
|
69
|
-
|
70
|
-
namespace :ruby do
|
71
|
-
spec = Gem::Specification.new do |s|
|
72
|
-
apply_spec_defaults(s)
|
73
|
-
s.platform = Gem::Platform::RUBY
|
74
|
-
s.extensions = ["ext/binding_of_caller/extconf.rb"]
|
75
|
-
end
|
76
|
-
|
77
|
-
Gem::PackageTask.new(spec) do |pkg|
|
78
|
-
pkg.need_zip = false
|
79
|
-
pkg.need_tar = false
|
80
|
-
end
|
81
|
-
|
82
|
-
desc "Generate gemspec file"
|
83
|
-
task :gemspec do
|
84
|
-
File.open("#{spec.name}.gemspec", "w") do |f|
|
85
|
-
f << spec.to_ruby
|
86
|
-
end
|
87
|
-
end
|
88
|
-
end
|
89
|
-
|
90
|
-
desc "build the binaries"
|
91
|
-
task :compile => :cleanup do
|
92
|
-
if !mri_2?
|
93
|
-
chdir "./ext/binding_of_caller/" do
|
94
|
-
sh "ruby extconf.rb"
|
95
|
-
sh "make"
|
96
|
-
sh "cp *.#{dlext} ../../lib/"
|
97
|
-
end
|
98
|
-
end
|
99
|
-
end
|
100
|
-
|
101
|
-
desc 'cleanup the extensions'
|
102
|
-
task :cleanup do
|
103
|
-
if !mri_2?
|
104
|
-
sh 'rm -rf lib/binding_of_caller.so'
|
105
|
-
chdir "./ext/binding_of_caller/" do
|
106
|
-
sh 'make clean'
|
107
|
-
end
|
108
|
-
end
|
109
|
-
end
|
110
|
-
|
111
|
-
desc "reinstall gem"
|
112
|
-
task :reinstall => :gems do
|
113
|
-
sh "gem uninstall binding_of_caller" rescue nil
|
114
|
-
sh "gem install #{direc}/pkg/binding_of_caller-#{BindingOfCaller::VERSION}.gem"
|
115
|
-
end
|
116
|
-
|
117
|
-
task :install => :reinstall
|
118
|
-
|
119
|
-
desc "build all platform gems at once"
|
120
|
-
task :gems => [:clean, :rmgems, "ruby:gem"]
|
121
|
-
|
122
|
-
task :gem => [:gems]
|
123
|
-
|
124
|
-
desc "remove all platform gems"
|
125
|
-
task :rmgems => ["ruby:clobber_package"]
|
126
|
-
|
127
|
-
desc "build and push latest gems"
|
128
|
-
task :pushgems => :gems do
|
129
|
-
chdir("./pkg") do
|
130
|
-
Dir["*.gem"].each do |gemfile|
|
131
|
-
sh "gem push #{gemfile}"
|
132
|
-
end
|
133
|
-
end
|
134
|
-
end
|
6
|
+
task :default => :spec
|
data/binding_of_caller.gemspec
CHANGED
@@ -1,39 +1,35 @@
|
|
1
|
-
|
2
|
-
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
|
11
|
-
|
12
|
-
|
13
|
-
|
14
|
-
|
15
|
-
|
16
|
-
|
17
|
-
|
18
|
-
|
19
|
-
|
20
|
-
|
21
|
-
|
22
|
-
|
23
|
-
|
24
|
-
|
25
|
-
|
26
|
-
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
s.add_dependency(%q<debug_inspector>.freeze, [">= 0.0.1"])
|
31
|
-
s.add_dependency(%q<bacon>.freeze, [">= 0"])
|
32
|
-
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
33
|
-
end
|
34
|
-
else
|
35
|
-
s.add_dependency(%q<debug_inspector>.freeze, [">= 0.0.1"])
|
36
|
-
s.add_dependency(%q<bacon>.freeze, [">= 0"])
|
37
|
-
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
1
|
+
require_relative 'lib/binding_of_caller/version'
|
2
|
+
|
3
|
+
Gem::Specification.new do |spec|
|
4
|
+
spec.name = "binding_of_caller"
|
5
|
+
spec.version = BindingOfCaller::VERSION
|
6
|
+
spec.authors = ["John Mair (banisterfiend)"]
|
7
|
+
spec.email = ["jrmair@gmail.com"]
|
8
|
+
|
9
|
+
spec.summary = %q{Retrieve the binding of a method's caller, or further up the stack.}
|
10
|
+
spec.description = <<-TXT
|
11
|
+
Provides the Binding#of_caller method.
|
12
|
+
|
13
|
+
Using binding_of_caller we can grab bindings from higher up the call stack and evaluate code in that context.
|
14
|
+
Allows access to bindings arbitrarily far up the call stack, not limited to just the immediate caller.
|
15
|
+
|
16
|
+
Recommended for use only in debugging situations. Do not use this in production apps.
|
17
|
+
TXT
|
18
|
+
spec.homepage = "https://github.com/banister/binding_of_caller"
|
19
|
+
spec.license = "MIT"
|
20
|
+
spec.required_ruby_version = Gem::Requirement.new(">= 2.0.0")
|
21
|
+
|
22
|
+
spec.metadata = {
|
23
|
+
"changelog_uri" => "https://github.com/banister/binding_of_caller/releases",
|
24
|
+
}
|
25
|
+
|
26
|
+
# Specify which files should be added to the gem when it is released.
|
27
|
+
# The `git ls-files -z` loads the files in the RubyGem that have been added into git.
|
28
|
+
spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
|
29
|
+
`git ls-files -z`.split("\x0").reject { |f| f.match(%r{^(test|spec|examples|bin)/}) }
|
38
30
|
end
|
31
|
+
|
32
|
+
spec.require_paths = ["lib"]
|
33
|
+
|
34
|
+
spec.add_dependency "debug_inspector", ">= 0.0.1"
|
39
35
|
end
|
data/lib/binding_of_caller.rb
CHANGED
@@ -1,12 +1,11 @@
|
|
1
|
-
|
1
|
+
require "binding_of_caller/version"
|
2
2
|
|
3
|
-
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
8
|
-
|
9
|
-
require "binding_of_caller.#{dlext}"
|
3
|
+
if defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby"
|
4
|
+
if RUBY_VERSION =~ /^[23]/
|
5
|
+
require 'binding_of_caller/mri'
|
6
|
+
else
|
7
|
+
puts "This version of binding_of_caller doesn't support this version of Ruby"
|
8
|
+
end
|
10
9
|
elsif defined?(Rubinius)
|
11
10
|
require 'binding_of_caller/rubinius'
|
12
11
|
elsif defined?(JRuby)
|
File without changes
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: binding_of_caller
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 1.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- John Mair (banisterfiend)
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2020-12-28 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: debug_inspector
|
@@ -24,45 +24,22 @@ dependencies:
|
|
24
24
|
- - ">="
|
25
25
|
- !ruby/object:Gem::Version
|
26
26
|
version: 0.0.1
|
27
|
-
|
28
|
-
|
29
|
-
|
30
|
-
|
31
|
-
|
32
|
-
|
33
|
-
|
34
|
-
|
35
|
-
|
36
|
-
version_requirements: !ruby/object:Gem::Requirement
|
37
|
-
requirements:
|
38
|
-
- - ">="
|
39
|
-
- !ruby/object:Gem::Version
|
40
|
-
version: '0'
|
41
|
-
- !ruby/object:Gem::Dependency
|
42
|
-
name: rake
|
43
|
-
requirement: !ruby/object:Gem::Requirement
|
44
|
-
requirements:
|
45
|
-
- - ">="
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '0'
|
48
|
-
type: :development
|
49
|
-
prerelease: false
|
50
|
-
version_requirements: !ruby/object:Gem::Requirement
|
51
|
-
requirements:
|
52
|
-
- - ">="
|
53
|
-
- !ruby/object:Gem::Version
|
54
|
-
version: '0'
|
55
|
-
description: Retrieve the binding of a method's caller. Can also retrieve bindings
|
56
|
-
even further up the stack.
|
57
|
-
email: jrmair@gmail.com
|
27
|
+
description: |
|
28
|
+
Provides the Binding#of_caller method.
|
29
|
+
|
30
|
+
Using binding_of_caller we can grab bindings from higher up the call stack and evaluate code in that context.
|
31
|
+
Allows access to bindings arbitrarily far up the call stack, not limited to just the immediate caller.
|
32
|
+
|
33
|
+
Recommended for use only in debugging situations. Do not use this in production apps.
|
34
|
+
email:
|
35
|
+
- jrmair@gmail.com
|
58
36
|
executables: []
|
59
|
-
extensions:
|
60
|
-
- ext/binding_of_caller/extconf.rb
|
37
|
+
extensions: []
|
61
38
|
extra_rdoc_files: []
|
62
39
|
files:
|
63
40
|
- ".gemtest"
|
41
|
+
- ".github/workflows/test.yml"
|
64
42
|
- ".gitignore"
|
65
|
-
- ".travis.yml"
|
66
43
|
- ".yardopts"
|
67
44
|
- Gemfile
|
68
45
|
- HISTORY
|
@@ -70,68 +47,17 @@ files:
|
|
70
47
|
- README.md
|
71
48
|
- Rakefile
|
72
49
|
- binding_of_caller.gemspec
|
73
|
-
- examples/benchmark.rb
|
74
|
-
- examples/example.rb
|
75
|
-
- ext/binding_of_caller/binding_of_caller.c
|
76
|
-
- ext/binding_of_caller/extconf.rb
|
77
|
-
- ext/binding_of_caller/ruby_headers/192/debug.h
|
78
|
-
- ext/binding_of_caller/ruby_headers/192/dln.h
|
79
|
-
- ext/binding_of_caller/ruby_headers/192/eval_intern.h
|
80
|
-
- ext/binding_of_caller/ruby_headers/192/id.h
|
81
|
-
- ext/binding_of_caller/ruby_headers/192/iseq.h
|
82
|
-
- ext/binding_of_caller/ruby_headers/192/method.h
|
83
|
-
- ext/binding_of_caller/ruby_headers/192/node.h
|
84
|
-
- ext/binding_of_caller/ruby_headers/192/regenc.h
|
85
|
-
- ext/binding_of_caller/ruby_headers/192/regint.h
|
86
|
-
- ext/binding_of_caller/ruby_headers/192/regparse.h
|
87
|
-
- ext/binding_of_caller/ruby_headers/192/rubys_gc.h
|
88
|
-
- ext/binding_of_caller/ruby_headers/192/thread_pthread.h
|
89
|
-
- ext/binding_of_caller/ruby_headers/192/thread_win32.h
|
90
|
-
- ext/binding_of_caller/ruby_headers/192/timev.h
|
91
|
-
- ext/binding_of_caller/ruby_headers/192/transcode_data.h
|
92
|
-
- ext/binding_of_caller/ruby_headers/192/version.h
|
93
|
-
- ext/binding_of_caller/ruby_headers/192/vm_core.h
|
94
|
-
- ext/binding_of_caller/ruby_headers/192/vm_exec.h
|
95
|
-
- ext/binding_of_caller/ruby_headers/192/vm_insnhelper.h
|
96
|
-
- ext/binding_of_caller/ruby_headers/192/vm_opts.h
|
97
|
-
- ext/binding_of_caller/ruby_headers/193/addr2line.h
|
98
|
-
- ext/binding_of_caller/ruby_headers/193/atomic.h
|
99
|
-
- ext/binding_of_caller/ruby_headers/193/constant.h
|
100
|
-
- ext/binding_of_caller/ruby_headers/193/debug.h
|
101
|
-
- ext/binding_of_caller/ruby_headers/193/dln.h
|
102
|
-
- ext/binding_of_caller/ruby_headers/193/encdb.h
|
103
|
-
- ext/binding_of_caller/ruby_headers/193/eval_intern.h
|
104
|
-
- ext/binding_of_caller/ruby_headers/193/id.h
|
105
|
-
- ext/binding_of_caller/ruby_headers/193/internal.h
|
106
|
-
- ext/binding_of_caller/ruby_headers/193/iseq.h
|
107
|
-
- ext/binding_of_caller/ruby_headers/193/method.h
|
108
|
-
- ext/binding_of_caller/ruby_headers/193/node.h
|
109
|
-
- ext/binding_of_caller/ruby_headers/193/parse.h
|
110
|
-
- ext/binding_of_caller/ruby_headers/193/regenc.h
|
111
|
-
- ext/binding_of_caller/ruby_headers/193/regint.h
|
112
|
-
- ext/binding_of_caller/ruby_headers/193/regparse.h
|
113
|
-
- ext/binding_of_caller/ruby_headers/193/revision.h
|
114
|
-
- ext/binding_of_caller/ruby_headers/193/rubys_gc.h
|
115
|
-
- ext/binding_of_caller/ruby_headers/193/thread_pthread.h
|
116
|
-
- ext/binding_of_caller/ruby_headers/193/thread_win32.h
|
117
|
-
- ext/binding_of_caller/ruby_headers/193/timev.h
|
118
|
-
- ext/binding_of_caller/ruby_headers/193/transcode_data.h
|
119
|
-
- ext/binding_of_caller/ruby_headers/193/transdb.h
|
120
|
-
- ext/binding_of_caller/ruby_headers/193/version.h
|
121
|
-
- ext/binding_of_caller/ruby_headers/193/vm_core.h
|
122
|
-
- ext/binding_of_caller/ruby_headers/193/vm_exec.h
|
123
|
-
- ext/binding_of_caller/ruby_headers/193/vm_insnhelper.h
|
124
|
-
- ext/binding_of_caller/ruby_headers/193/vm_opts.h
|
125
50
|
- lib/binding_of_caller.rb
|
126
51
|
- lib/binding_of_caller/jruby_interpreted.rb
|
127
|
-
- lib/binding_of_caller/
|
52
|
+
- lib/binding_of_caller/mri.rb
|
128
53
|
- lib/binding_of_caller/rubinius.rb
|
129
54
|
- lib/binding_of_caller/version.rb
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
metadata:
|
134
|
-
|
55
|
+
homepage: https://github.com/banister/binding_of_caller
|
56
|
+
licenses:
|
57
|
+
- MIT
|
58
|
+
metadata:
|
59
|
+
changelog_uri: https://github.com/banister/binding_of_caller/releases
|
60
|
+
post_install_message:
|
135
61
|
rdoc_options: []
|
136
62
|
require_paths:
|
137
63
|
- lib
|
@@ -139,18 +65,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
139
65
|
requirements:
|
140
66
|
- - ">="
|
141
67
|
- !ruby/object:Gem::Version
|
142
|
-
version:
|
68
|
+
version: 2.0.0
|
143
69
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
144
70
|
requirements:
|
145
71
|
- - ">="
|
146
72
|
- !ruby/object:Gem::Version
|
147
73
|
version: '0'
|
148
74
|
requirements: []
|
149
|
-
|
150
|
-
|
151
|
-
signing_key:
|
75
|
+
rubygems_version: 3.1.4
|
76
|
+
signing_key:
|
152
77
|
specification_version: 4
|
153
|
-
summary: Retrieve the binding of a method's caller
|
154
|
-
|
155
|
-
test_files:
|
156
|
-
- test/test_binding_of_caller.rb
|
78
|
+
summary: Retrieve the binding of a method's caller, or further up the stack.
|
79
|
+
test_files: []
|