debug_inspector 0.0.3 → 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
- SHA1:
3
- metadata.gz: 0055983985b3e3b9bb36058348588eac38022787
4
- data.tar.gz: 776758a397d1e33b3345588331ef3bcb8a3e4051
2
+ SHA256:
3
+ metadata.gz: 0a2c3b603eb5eb84457f77ffa41d5b97b05fbd7af4123e860dd9256771ccafad
4
+ data.tar.gz: a3f41a30dd19a66078132fee38d2f312d4490432b6e4049c40b89b2629241659
5
5
  SHA512:
6
- metadata.gz: b115b41121a9a3d6220f2aa473014a577318873c99f54d53adab1f3b24a25ccdb8a7afce7629e0b6e462ed79958f1bd3df6a7b932db1564593c61e44a46ff4fd
7
- data.tar.gz: ab115e7bc09e1bb42987da24f1104ae047a7109916142ab9e855318db5aa007756f03a9c45574974149ee6065010d745e154bfb159ba6b10cec5a166549823c4
6
+ metadata.gz: 130771aebab383f849366f0d71f5860dd6713d5dc41c0d88ff92c4266c229b0598d60672da325def29cbec66a9b0079806cb05bd74b8ce23e3946e4dbf8578ba
7
+ data.tar.gz: 10ebffd9984de140ad6c0fd0700e3a70892559e0f1c665c4b7e6d28f77680694f7ff7b4aaa5d110a8be251c69e38b94914fdfff9000ad6233180116aedce8f3a
@@ -0,0 +1,119 @@
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: Determine ruby version name
38
+ id: ruby_version
39
+ run: |
40
+ if [[ $OS == 'windows-latest' && $RUBY == '3.0' ]]; then
41
+ # Windows doesn't have 3.0, so run head there but nowhere else.
42
+ echo "::set-output name=release::head"
43
+ else
44
+ echo "::set-output name=release::$RUBY"
45
+ fi
46
+ shell: bash
47
+ env:
48
+ OS: ${{ matrix.os }}
49
+ RUBY: ${{ matrix.ruby }}
50
+
51
+ - name: Set up Ruby
52
+ uses: ruby/setup-ruby@v1
53
+ with:
54
+ ruby-version: ${{ steps.ruby_version.outputs.release }}
55
+ bundler-cache: true
56
+
57
+ - name: Test
58
+ run: bundle exec rake
59
+
60
+ system:
61
+ name: "System"
62
+ runs-on: ${{ matrix.os }}
63
+ strategy:
64
+ fail-fast: false
65
+ matrix:
66
+ os:
67
+ - macos-latest
68
+ - ubuntu-latest
69
+ - windows-latest
70
+ ruby:
71
+ - "2"
72
+ - "3.0"
73
+ - "jruby"
74
+ - "truffleruby"
75
+ exclude:
76
+ # Windows releases of jruby and truffleruby have issues. Skip them for now.
77
+ - { ruby: "jruby", os: "windows-latest" }
78
+ - { ruby: "truffleruby", os: "windows-latest" }
79
+
80
+ steps:
81
+
82
+ - uses: actions/checkout@v2
83
+
84
+ - name: Determine ruby version name
85
+ id: ruby_version
86
+ run: |
87
+ if [[ $OS == 'windows-latest' && $RUBY == '3.0' ]]; then
88
+ # Windows doesn't have 3.0, so run head there but nowhere else.
89
+ echo "::set-output name=release::head"
90
+ else
91
+ echo "::set-output name=release::$RUBY"
92
+ fi
93
+ shell: bash
94
+ env:
95
+ OS: ${{ matrix.os }}
96
+ RUBY: ${{ matrix.ruby }}
97
+
98
+ - name: Set up Ruby
99
+ uses: ruby/setup-ruby@v1
100
+ with:
101
+ ruby-version: ${{ steps.ruby_version.outputs.release }}
102
+ bundler-cache: true
103
+
104
+ - name: Install gem
105
+ run: bundle exec rake install
106
+
107
+ - name: Create directory for gem test
108
+ run: mkdir -p tmp/gem-test
109
+
110
+ - name: Create test Gemfile
111
+ run: echo "gem 'debug_inspector'" > Gemfile
112
+ working-directory: ./tmp/gem-test
113
+
114
+ - name: Test gem load
115
+ run: bundle exec ruby -e "require 'debug_inspector'"
116
+
117
+ - name: Test gem functionality
118
+ if: ${{ matrix.ruby != 'jruby' && matrix.ruby != 'truffleruby' }}
119
+ run: bundle exec ruby -e "require 'debug_inspector'; RubyVM::DebugInspector.open { |dc| dc.frame_binding(1) }"
@@ -0,0 +1,16 @@
1
+ Gemfile.lock
2
+
3
+ /.bundle/
4
+ /.yardoc
5
+ /_yardoc/
6
+ /coverage/
7
+ /doc/
8
+ /pkg/
9
+ /spec/reports/
10
+ /tmp/
11
+ *.bundle
12
+ *.so
13
+ *.o
14
+ *.a
15
+ mkmf.log
16
+ Makefile
data/Gemfile CHANGED
@@ -1,5 +1,8 @@
1
1
  source "https://rubygems.org"
2
2
 
3
+ # Specify your gem's dependencies in debug_inspector.gemspec
3
4
  gemspec
4
5
 
5
- gem 'rake'
6
+ gem "rake"
7
+ gem "rake-compiler"
8
+ gem "minitest"
data/README.md CHANGED
@@ -1,15 +1,19 @@
1
- debug_inspector [![Build Status](https://travis-ci.org/banister/debug_inspector.svg?branch=master)](https://travis-ci.org/banister/debug_inspector)
1
+ [![Build Status](https://github.com/banister/debug_inspector/workflows/Test/badge.svg?branch=master&event=push)](https://github.com/banister/debug_inspector/actions?query=branch%3Amaster)
2
+ [![Gem Version](https://img.shields.io/gem/v/debug_inspector.svg)](https://rubygems.org/gems/debug_inspector)
3
+
4
+ debug_inspector
2
5
  ===============
3
6
 
4
- _A Ruby wrapper for the new MRI 2.0 debug\_inspector API_
7
+ _A Ruby wrapper for the MRI 2.0+ debug\_inspector API_
5
8
 
6
9
  The `debug_inspector` C extension and API were designed and built by [Koichi Sasada](https://github.com/ko1), this project
7
10
  is just a gemification of his work.
8
11
 
9
12
  **NOTES:**
10
13
 
11
- * This library makes use of the new debug inspector API in MRI 2.0.0, **do not use this library outside of debugging situations**.
12
- * Only works on MRI 2.0. Requiring it on unsupported Rubies will result in a no-op
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
13
17
 
14
18
  Usage
15
19
  -----
@@ -37,6 +41,13 @@ RubyVM::DebugInspector.open { |dc|
37
41
  }
38
42
  ```
39
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
+
40
51
  Contact
41
52
  -------
42
53
 
data/Rakefile CHANGED
@@ -1,76 +1,27 @@
1
- $:.unshift 'lib'
2
- require 'rake/clean'
3
- require "debug_inspector/version"
4
- require 'rake/testtask'
1
+ require "bundler/gem_tasks"
2
+ require "rake/testtask"
5
3
 
6
- dlext = RbConfig::CONFIG['DLEXT']
7
- direc = File.expand_path(File.dirname(__FILE__))
8
- CLOBBER.include("**/*.#{dlext}", "**/*~", "**/*#*", "**/*.log", "**/*.o")
9
- CLEAN.include("ext/**/*.#{dlext}", "ext/**/*.log", "ext/**/*.o",
10
- "ext/**/*~", "ext/**/*#*", "ext/**/*.obj", "**/*#*", "**/*#*.*",
11
- "ext/**/*.def", "ext/**/*.pdb", "**/*_flymake*.*", "**/*_flymake", "**/*.rbc")
4
+ def can_compile_extensions?
5
+ RUBY_ENGINE == "ruby"
6
+ end
12
7
 
13
8
  Rake::TestTask.new(:test) do |t|
14
9
  t.libs << "test"
10
+ t.libs << "lib"
15
11
  t.test_files = FileList["test/**/*_test.rb"]
16
12
  t.warning = true
17
13
  t.verbose = true
18
14
  end
19
15
 
20
- desc "Show version"
21
- task :version do
22
- puts "debug_inspector version: #{DebugInspector::VERSION}"
23
- end
24
-
25
- desc "run tests"
26
- task :default => [:compile, :test]
27
-
28
- task :pry do
29
- puts "loading debug_inspector into pry"
30
- sh "pry -r #{direc}/lib/debug_inspector"
31
- end
32
-
33
- desc "build the binaries"
34
- task :compile do
35
- chdir "#{direc}/ext/debug_inspector/" do
36
- sh "ruby extconf.rb"
37
- sh "make clean"
38
- sh "make"
39
- sh "cp *.#{dlext} ../../lib/"
40
- end
41
- end
42
-
43
- desc 'cleanup the extensions'
44
- task :cleanup do
45
- sh "rm -rf lib/debug_inspector.#{dlext}"
46
- chdir "#{direc}/ext/debug_inspector/" do
47
- sh 'make clean' rescue nil
48
- end
49
- end
50
-
51
- desc "(re)install gem"
52
- task :reinstall => :gem do
53
- sh "gem uninstall debug_inspector" rescue nil
54
- sh "gem install -l #{direc}/debug_inspector-#{DebugInspector::VERSION}.gem"
55
- end
56
-
57
- task :install => :reinstall
58
-
59
- desc "build all platform gems at once"
60
- task :gem => [:clean, :rmgems] do
61
- sh "gem build #{direc}/debug_inspector.gemspec"
62
- end
16
+ require "rake/extensiontask"
63
17
 
64
- desc "remove all platform gems"
65
- task :rmgems do
66
- sh "rm #{direc}/*.gem" rescue nil
18
+ if can_compile_extensions?
19
+ task :build => :compile
20
+ task :default => [:clobber, :compile, :test]
21
+ else
22
+ task :default => [:test]
67
23
  end
68
24
 
69
- desc "build and push latest gems"
70
- task :pushgems => :gem do
71
- chdir(direc) do
72
- Dir["*.gem"].each do |gemfile|
73
- sh "gem push #{gemfile}"
74
- end
75
- end
25
+ Rake::ExtensionTask.new("debug_inspector") do |ext|
26
+ ext.lib_dir = "lib"
76
27
  end
@@ -0,0 +1,14 @@
1
+ #!/usr/bin/env ruby
2
+
3
+ require "bundler/setup"
4
+ require "debug_inspector"
5
+
6
+ # You can add fixtures and/or initialization code here to make experimenting
7
+ # with your gem easier. You can also use a different console, if you like.
8
+
9
+ # (If you use this, don't forget to add pry to your Gemfile!)
10
+ # require "pry"
11
+ # Pry.start
12
+
13
+ require "irb"
14
+ IRB.start(__FILE__)
@@ -0,0 +1,8 @@
1
+ #!/usr/bin/env bash
2
+ set -euo pipefail
3
+ IFS=$'\n\t'
4
+ set -vx
5
+
6
+ bundle install
7
+
8
+ # Do any other automated setup that you need to do here
@@ -1,17 +1,28 @@
1
- # -*- encoding: utf-8 -*-
2
- require File.expand_path('../lib/debug_inspector/version', __FILE__)
1
+ # We don't want to define any constants if the gem extension isn't loaded, so not requiring the version file.
3
2
 
4
- Gem::Specification.new do |s|
5
- s.name = "debug_inspector"
6
- s.version = DebugInspector::VERSION
7
- s.authors = ["John Mair (banisterfiend)"]
8
- s.email = ["jrmair@gmail.com"]
9
- s.homepage = "https://github.com/banister/debug_inspector"
10
- s.summary = "A Ruby wrapper for the MRI 2.0 debug_inspector API"
11
- s.description = s.summary
12
- s.files = `git ls-files`.split("\n")
13
- s.platform = Gem::Platform::RUBY
14
- s.extensions = ["ext/debug_inspector/extconf.rb"]
15
- s.license = 'MIT'
16
- s.add_development_dependency 'minitest', '>= 5'
3
+ Gem::Specification.new do |spec|
4
+ spec.name = "debug_inspector"
5
+ spec.version = "1.0.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 = spec.summary
11
+ spec.homepage = "https://github.com/banister/debug_inspector"
12
+ spec.license = "MIT"
13
+ spec.required_ruby_version = Gem::Requirement.new(">= 2.0")
14
+
15
+ spec.metadata["homepage_uri"] = spec.homepage
16
+ # spec.metadata["source_code_uri"] = "TODO: Put your gem's public repo URL here."
17
+ # spec.metadata["changelog_uri"] = "TODO: Put your gem's CHANGELOG.md URL here."
18
+
19
+ spec.files = Dir.chdir(File.expand_path('..', __FILE__)) do
20
+ `git ls-files -z`.split("\x0").reject { |f| f.match(%r{^test/}) }
21
+ end
22
+
23
+ spec.require_paths = ["lib"]
24
+
25
+ if RUBY_ENGINE == "ruby"
26
+ spec.extensions = ["ext/debug_inspector/extconf.rb"]
27
+ end
17
28
  end
@@ -1,16 +1,17 @@
1
1
  def fake_makefile
2
- File.open(File.join(File.dirname(__FILE__), "Makefile"), "w") {|f|
3
- f.puts %[install:\n\techo "Nada."]
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 mri_2?
9
+ def mri_2_or_3?
8
10
  defined?(RUBY_ENGINE) && RUBY_ENGINE == "ruby" &&
9
- RUBY_VERSION =~ /^2/
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
@@ -1,9 +1,8 @@
1
1
  require 'rbconfig'
2
-
3
2
  dlext = RbConfig::CONFIG['DLEXT']
4
-
5
3
  begin
6
- require "debug_inspector.#{dlext}"
4
+ require_relative "debug_inspector.#{dlext}"
5
+ # If the above require fails, we don't want to define any constants.
6
+ require_relative "rubyvm/debug_inspector/version"
7
7
  rescue LoadError
8
8
  end
9
-
@@ -0,0 +1,4 @@
1
+ class RubyVM::DebugInspector
2
+ # Don't forget to update the version string in the gemspec file.
3
+ VERSION = "1.0.0"
4
+ end
metadata CHANGED
@@ -1,29 +1,15 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: debug_inspector
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.3
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: 2017-05-08 00:00:00.000000000 Z
12
- dependencies:
13
- - !ruby/object:Gem::Dependency
14
- name: minitest
15
- requirement: !ruby/object:Gem::Requirement
16
- requirements:
17
- - - ">="
18
- - !ruby/object:Gem::Version
19
- version: '5'
20
- type: :development
21
- prerelease: false
22
- version_requirements: !ruby/object:Gem::Requirement
23
- requirements:
24
- - - ">="
25
- - !ruby/object:Gem::Version
26
- version: '5'
11
+ date: 2020-12-27 00:00:00.000000000 Z
12
+ dependencies: []
27
13
  description: A Ruby wrapper for the MRI 2.0 debug_inspector API
28
14
  email:
29
15
  - jrmair@gmail.com
@@ -32,22 +18,24 @@ extensions:
32
18
  - ext/debug_inspector/extconf.rb
33
19
  extra_rdoc_files: []
34
20
  files:
35
- - ".travis.yml"
21
+ - ".github/workflows/test.yml"
22
+ - ".gitignore"
36
23
  - Gemfile
37
24
  - README.md
38
25
  - Rakefile
26
+ - bin/console
27
+ - bin/setup
39
28
  - debug_inspector.gemspec
40
29
  - ext/debug_inspector/debug_inspector.c
41
30
  - ext/debug_inspector/extconf.rb
42
31
  - lib/debug_inspector.rb
43
- - lib/debug_inspector/version.rb
44
- - test/basic_test.rb
45
- - test/test_helper.rb
32
+ - lib/rubyvm/debug_inspector/version.rb
46
33
  homepage: https://github.com/banister/debug_inspector
47
34
  licenses:
48
35
  - MIT
49
- metadata: {}
50
- post_install_message:
36
+ metadata:
37
+ homepage_uri: https://github.com/banister/debug_inspector
38
+ post_install_message:
51
39
  rdoc_options: []
52
40
  require_paths:
53
41
  - lib
@@ -55,16 +43,15 @@ required_ruby_version: !ruby/object:Gem::Requirement
55
43
  requirements:
56
44
  - - ">="
57
45
  - !ruby/object:Gem::Version
58
- version: '0'
46
+ version: '2.0'
59
47
  required_rubygems_version: !ruby/object:Gem::Requirement
60
48
  requirements:
61
49
  - - ">="
62
50
  - !ruby/object:Gem::Version
63
51
  version: '0'
64
52
  requirements: []
65
- rubyforge_project:
66
- rubygems_version: 2.5.1
67
- signing_key:
53
+ rubygems_version: 3.1.4
54
+ signing_key:
68
55
  specification_version: 4
69
56
  summary: A Ruby wrapper for the MRI 2.0 debug_inspector API
70
57
  test_files: []
@@ -1,15 +0,0 @@
1
- language: ruby
2
- sudo: false
3
- before_install:
4
- - gem install bundler
5
- rvm:
6
- - 2.0.0
7
- - 2.1.10
8
- - 2.2.7
9
- - 2.3.4
10
- - 2.4.1
11
- - ruby-head
12
- matrix:
13
- allow_failures:
14
- - rvm: ruby-head
15
- fast_finish: true
@@ -1,3 +0,0 @@
1
- module DebugInspector
2
- VERSION = "0.0.3"
3
- end
@@ -1,7 +0,0 @@
1
- require File.dirname(__FILE__) + '/test_helper'
2
-
3
- class BasicTest < MiniTest::Test
4
- def test_version
5
- assert(DebugInspector::VERSION)
6
- end
7
- end
@@ -1,5 +0,0 @@
1
- lib_dir = File.dirname(__FILE__) + '/../lib'
2
-
3
- require 'minitest/autorun'
4
- $:.unshift lib_dir unless $:.include?(lib_dir)
5
- require 'debug_inspector'