interception 0.4 → 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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: f0ebd4b7db1148fb11059cb84d5a519197a95ef8
4
- data.tar.gz: a8492711364f1614140dfb76107b61a1d56d2fee
3
+ metadata.gz: 851998e2e4fc456efc841bbd27446f74b818e0c1
4
+ data.tar.gz: 6c3393635cfe406821426805b79c07f4039ba01a
5
5
  SHA512:
6
- metadata.gz: 6ba1c3eaec141e8bec83833be3ac36eeb9f51b6611300a25d2fa5184b83ffc41c577d67d3e4881b49af7e322d753abb70e93caeea527b90be06f93086d02aa0a
7
- data.tar.gz: 4d94822f309263068cab75ef2c4b3a24c4a0ed94e17966c73dc71c7782c77c12726eaaf39f2e5e09238b4d3f6dfbc10931e95e0300b50a1d43db21701d317335
6
+ metadata.gz: 7a736ee795daf46f9a115a082aa0dc07fe6069a86f3ca021dddff62a96bb6b53b0b1ba61eb1d2e6e8631bd832e4e5146b4eb4dcc23aa57877ba73768dbae1b63
7
+ data.tar.gz: c2e1d91162ef85aeaaf1b30326745714e29732803069c6e13866dfd8f73c14545d094ba3ac4885e6522d208832e879bc902750ceb6f24c27eec244b0f61895c1
@@ -1,12 +1,12 @@
1
1
  language: ruby
2
2
  rvm:
3
+ - 2.1.1
3
4
  - 2.1.0
4
5
  - 2.0.0
5
6
  - 1.9.3
6
7
  - 1.9.2
7
8
  - jruby-18mode
8
9
  - jruby-19mode
9
- - rbx-18mode
10
- - rbx-19mode
10
+ - rbx
11
11
  - 1.8.7
12
12
  - ree
@@ -1,10 +1,17 @@
1
1
  Interception changelog
2
2
  ======================
3
3
 
4
+ ### v0.5 (March 6, 2014)
5
+
6
+ * Added support for MRI 2.1.1
7
+ * Added support for MRI 2.0.0-p451 (Interception v0.4 supports all the
8
+ patchlevels prior to this one)
9
+ * Dropped support for MRI 2.0.0 with patchlevel lower than p451.
10
+
4
11
  ### v0.4 (January 21, 2014)
5
12
 
6
13
  * Added support for MRI 2.1.0
7
14
 
8
15
  ### v0.3 and lower
9
16
 
10
- * We wasn't writing changelogs before, sorry.
17
+ * We weren't writing changelogs before, sorry.
data/README.md CHANGED
@@ -74,9 +74,8 @@ Known bugs
74
74
  ==========
75
75
 
76
76
  * On rubinius we don't catch some low-level exceptions (like `ZeroDivisionError`).
77
- * On jruby 1.6, the binding has the wrong value for `self` in `NoMethodError`s. ([fixed](https://github.com/jruby/jruby/commit/4246d96f63155aeb70694a9a0ace0eeb2c936065) in jruby-head)
78
77
  * On MRI-1.8.7, the binding sometimes has the wrong value for `self`.
79
- * The Interception versions prior to `0.4` **do not** support MRI-2.1.0. `0.4` does support it.
78
+ * The Interception versions prior to `0.4` **do not** support MRI-2.1.0. `>= 0.4` does support it.
80
79
 
81
80
  Meta-fu
82
81
  =======
@@ -7,12 +7,11 @@ if RbConfig::CONFIG['ruby_install_name'] == 'jruby'
7
7
  f.write "install:\n\tjrubyc --javac org/pryrepl/InterceptionEventHook.java\n"
8
8
  end
9
9
 
10
- elsif RbConfig::CONFIG['ruby_install_name'] =~ /^ruby/
10
+ elsif RbConfig::CONFIG['ruby_install_name'] =~ /^ruby/ && RUBY_VERSION.to_f < 2.0
11
11
 
12
12
  require 'mkmf'
13
13
  $CFLAGS += " -DRUBY_18" if RUBY_VERSION =~ /^(1.8)/
14
14
  $CFLAGS += " -DRUBY_19" if RUBY_VERSION =~ /^(1.9)/
15
- $CFLAGS += " -DRUBY_20" if RUBY_VERSION =~ /^(2.0)/
16
15
  extension_name = "interception"
17
16
  dir_config(extension_name)
18
17
  create_makefile(extension_name)
@@ -46,7 +46,7 @@ interception_stop(VALUE self)
46
46
  return Qnil;
47
47
  }
48
48
 
49
- #elif RUBY_19 || RUBY_20
49
+ #elif RUBY_19
50
50
 
51
51
  void
52
52
  interception_hook(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass)
@@ -75,8 +75,6 @@ Init_interception()
75
75
  {
76
76
  rb_mInterception = rb_define_module("Interception");
77
77
 
78
- #if defined(RUBY_18) || defined(RUBY_19) || defined(RUBY_20)
79
78
  rb_define_singleton_method(rb_mInterception, "start", interception_start, 0);
80
79
  rb_define_singleton_method(rb_mInterception, "stop", interception_stop, 0);
81
- #endif
82
80
  }
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "interception"
3
- s.version = "0.4"
3
+ s.version = "0.5"
4
4
  s.author = "Conrad Irwin"
5
5
  s.email = "conrad.irwin@gmail.com"
6
6
  s.homepage = "http://github.com/ConradIrwin/interception"
@@ -59,7 +59,24 @@ class << Interception
59
59
  end)
60
60
  end
61
61
 
62
- else #MRI
62
+ # For MRI
63
+ # @note For Ruby 2.0 and later we use the new TracePoint API.
64
+ elsif RUBY_VERSION.to_f >= 2.0 && RUBY_ENGINE == 'ruby'
65
+
66
+ def start
67
+ @tracepoint ||= TracePoint.new(:raise) do |tp|
68
+ self.rescue(tp.raised_exception, tp.binding)
69
+ end
70
+
71
+ @tracepoint.enable
72
+ end
73
+
74
+ def stop
75
+ @tracepoint.disable
76
+ end
77
+
78
+ # For old MRI
79
+ else
63
80
 
64
81
  require File.expand_path('../../ext/interception', __FILE__)
65
82
 
@@ -110,32 +110,11 @@ module Interception
110
110
 
111
111
  # Start sending events to rescue.
112
112
  # Implemented per-platform
113
- # @note For Ruby 2.1 we use the new TracePoint API.
114
- def self.start
115
- if ruby_21?
116
- @tracepoint ||= TracePoint.new(:raise) do |tp|
117
- self.rescue(tp.raised_exception, tp.binding)
118
- end
119
-
120
- @tracepoint.enable
121
- else
122
- raise NotImplementedError
123
- end
124
- end
113
+ def self.start; raise NotImplementedError end
125
114
 
126
115
  # Stop sending events to rescue.
127
116
  # Implemented per-platform
128
- def self.stop
129
- if ruby_21?
130
- @tracepoint.disable
131
- else
132
- raise NotImplementedError
133
- end
134
- end
135
-
136
- def self.ruby_21?
137
- RUBY_VERSION == '2.1.0' && RUBY_ENGINE == 'ruby'
138
- end
117
+ def self.stop; raise NotImplementedError end
139
118
 
140
119
  require File.expand_path('../cross_platform.rb', __FILE__)
141
120
  end
metadata CHANGED
@@ -1,41 +1,41 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: interception
3
3
  version: !ruby/object:Gem::Version
4
- version: '0.4'
4
+ version: '0.5'
5
5
  platform: ruby
6
6
  authors:
7
7
  - Conrad Irwin
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-01-21 00:00:00.000000000 Z
11
+ date: 2014-03-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rake
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - '>='
17
+ - - ">="
18
18
  - !ruby/object:Gem::Version
19
19
  version: '0'
20
20
  type: :development
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - '>='
24
+ - - ">="
25
25
  - !ruby/object:Gem::Version
26
26
  version: '0'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rspec
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - '>='
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
33
  version: '0'
34
34
  type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - '>='
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
40
  version: '0'
41
41
  description: Provides a cross-platform ability to intercept all exceptions as they
@@ -46,8 +46,8 @@ extensions:
46
46
  - ext/extconf.rb
47
47
  extra_rdoc_files: []
48
48
  files:
49
- - .gitignore
50
- - .travis.yml
49
+ - ".gitignore"
50
+ - ".travis.yml"
51
51
  - CHANGELOG.md
52
52
  - Gemfile
53
53
  - LICENSE.MIT
@@ -72,19 +72,18 @@ require_paths:
72
72
  - lib
73
73
  required_ruby_version: !ruby/object:Gem::Requirement
74
74
  requirements:
75
- - - '>='
75
+ - - ">="
76
76
  - !ruby/object:Gem::Version
77
77
  version: '0'
78
78
  required_rubygems_version: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - '>='
80
+ - - ">="
81
81
  - !ruby/object:Gem::Version
82
82
  version: '0'
83
83
  requirements: []
84
84
  rubyforge_project:
85
- rubygems_version: 2.0.3
85
+ rubygems_version: 2.2.2
86
86
  signing_key:
87
87
  specification_version: 4
88
88
  summary: Intercept exceptions as they are being raised
89
89
  test_files: []
90
- has_rdoc: