interception 0.4 → 0.5

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
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: