interception 0.2 → 0.3

Sign up to get free protection for your applications and to get access to all the features.
data/ext/interception.c CHANGED
@@ -44,7 +44,7 @@ interception_start(VALUE self)
44
44
  void
45
45
  interception_hook(rb_event_flag_t evflag, VALUE data, VALUE self, ID mid, VALUE klass)
46
46
  {
47
- VALUE binding = rb_funcall(self, rb_intern("binding"), 0, NULL);
47
+ VALUE binding = rb_funcall(rb_mKernel, rb_intern("binding"), 0, NULL);
48
48
  rb_funcall(rb_mInterception, rb_intern("rescue"), 2, rb_errinfo(), binding);
49
49
  }
50
50
 
data/interception.gemspec CHANGED
@@ -1,6 +1,6 @@
1
1
  Gem::Specification.new do |s|
2
2
  s.name = "interception"
3
- s.version = "0.2"
3
+ s.version = "0.3"
4
4
  s.author = "Conrad Irwin"
5
5
  s.email = "conrad.irwin@gmail.com"
6
6
  s.homepage = "http://github.com/ConradIrwin/interception"
@@ -138,4 +138,19 @@ describe Interception do
138
138
  it "should have the right exception and binding at the top level" do
139
139
  $initial_eb.last.eval("self").should == TOPLEVEL_BINDING.eval("self")
140
140
  end
141
+
142
+ if defined? BasicObject
143
+ it "should catch exceptions on basic objects" do
144
+
145
+ line = __LINE__ + 1
146
+ foo = Class.new(BasicObject){ def oops; shoulder = :bracket; foops; end }.new
147
+ begin
148
+ foo.oops
149
+ rescue => e1
150
+ #
151
+ end
152
+
153
+ @exceptions.map{ |e, b| [e] + b.eval('[self, shoulder, __LINE__]') }.should == [[e1, foo, :bracket, line]]
154
+ end
155
+ end
141
156
  end
metadata CHANGED
@@ -1,58 +1,46 @@
1
- --- !ruby/object:Gem::Specification
1
+ --- !ruby/object:Gem::Specification
2
2
  name: interception
3
- version: !ruby/object:Gem::Version
4
- hash: 4423076201732757652
3
+ version: !ruby/object:Gem::Version
4
+ version: '0.3'
5
5
  prerelease:
6
- segments:
7
- - 0
8
- - 2
9
- version: "0.2"
10
6
  platform: ruby
11
- authors:
7
+ authors:
12
8
  - Conrad Irwin
13
9
  autorequire:
14
10
  bindir: bin
15
11
  cert_chain: []
16
-
17
- date: 2012-09-23 00:00:00 Z
18
- dependencies:
19
- - !ruby/object:Gem::Dependency
20
- name: rake
21
- prerelease: false
22
- requirement: &id001 !ruby/object:Gem::Requirement
12
+ date: 2012-09-24 00:00:00.000000000 Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ version_requirements: &7220 !ruby/object:Gem::Requirement
16
+ requirements:
17
+ - - ! '>='
18
+ - !ruby/object:Gem::Version
19
+ version: '0'
23
20
  none: false
24
- requirements:
25
- - - ">="
26
- - !ruby/object:Gem::Version
27
- hash: 2002549777813010636
28
- segments:
29
- - 0
30
- version: "0"
31
21
  type: :development
32
- version_requirements: *id001
33
- - !ruby/object:Gem::Dependency
34
- name: rspec
35
22
  prerelease: false
36
- requirement: &id002 !ruby/object:Gem::Requirement
23
+ name: rake
24
+ requirement: *7220
25
+ - !ruby/object:Gem::Dependency
26
+ version_requirements: &7284 !ruby/object:Gem::Requirement
27
+ requirements:
28
+ - - ! '>='
29
+ - !ruby/object:Gem::Version
30
+ version: '0'
37
31
  none: false
38
- requirements:
39
- - - ">="
40
- - !ruby/object:Gem::Version
41
- hash: 2002549777813010636
42
- segments:
43
- - 0
44
- version: "0"
45
32
  type: :development
46
- version_requirements: *id002
47
- description: Provides a cross-platform ability to intercept all exceptions as they are raised.
33
+ prerelease: false
34
+ name: rspec
35
+ requirement: *7284
36
+ description: Provides a cross-platform ability to intercept all exceptions as they
37
+ are raised.
48
38
  email: conrad.irwin@gmail.com
49
39
  executables: []
50
-
51
- extensions:
40
+ extensions:
52
41
  - ext/extconf.rb
53
42
  extra_rdoc_files: []
54
-
55
- files:
43
+ files:
56
44
  - .gitignore
57
45
  - .travis.yml
58
46
  - Gemfile
@@ -71,36 +59,26 @@ files:
71
59
  - spec/spec_helpers.rb
72
60
  homepage: http://github.com/ConradIrwin/interception
73
61
  licenses: []
74
-
75
62
  post_install_message:
76
63
  rdoc_options: []
77
-
78
- require_paths:
64
+ require_paths:
79
65
  - lib
80
- required_ruby_version: !ruby/object:Gem::Requirement
66
+ required_ruby_version: !ruby/object:Gem::Requirement
67
+ requirements:
68
+ - - ! '>='
69
+ - !ruby/object:Gem::Version
70
+ version: '0'
81
71
  none: false
82
- requirements:
83
- - - ">="
84
- - !ruby/object:Gem::Version
85
- hash: 2002549777813010636
86
- segments:
87
- - 0
88
- version: "0"
89
- required_rubygems_version: !ruby/object:Gem::Requirement
72
+ required_rubygems_version: !ruby/object:Gem::Requirement
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: '0'
90
77
  none: false
91
- requirements:
92
- - - ">="
93
- - !ruby/object:Gem::Version
94
- hash: 2002549777813010636
95
- segments:
96
- - 0
97
- version: "0"
98
78
  requirements: []
99
-
100
79
  rubyforge_project:
101
- rubygems_version: 1.8.24
80
+ rubygems_version: 1.8.12
102
81
  signing_key:
103
82
  specification_version: 3
104
83
  summary: Intercept exceptions as they are being raised
105
84
  test_files: []
106
-