methodmissing-callback 1.0.0 → 1.0.1
Sign up to get free protection for your applications and to get access to all the features.
- data/callback.gemspec +1 -2
- data/ext/callback/callback.c +8 -1
- metadata +1 -2
- data/lib/callback.rb +0 -1
data/callback.gemspec
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
Gem::Specification.new do |s|
|
2
2
|
s.name = "callback"
|
3
|
-
s.version = "1.0.
|
3
|
+
s.version = "1.0.1"
|
4
4
|
s.date = "2009-08-22"
|
5
5
|
s.summary = "Native MRI callback"
|
6
6
|
s.email = "lourens@methodmissing.com"
|
@@ -17,7 +17,6 @@ Gem::Specification.new do |s|
|
|
17
17
|
bench/raggi_bench.rb
|
18
18
|
ext/callback/extconf.rb
|
19
19
|
ext/callback/callback.c
|
20
|
-
lib/callback.rb
|
21
20
|
callback.gemspec
|
22
21
|
] + Dir.glob('test/*')
|
23
22
|
s.rdoc_options = ["--main", "README"]
|
data/ext/callback/callback.c
CHANGED
@@ -1,5 +1,9 @@
|
|
1
1
|
#include "ruby.h"
|
2
2
|
|
3
|
+
#ifndef RSTRING_PTR
|
4
|
+
#define RSTRING_PTR(obj) RSTRING(obj)->ptr
|
5
|
+
#endif
|
6
|
+
|
3
7
|
typedef struct {
|
4
8
|
VALUE object;
|
5
9
|
ID method;
|
@@ -43,6 +47,7 @@ static VALUE rb_callback_initialize( int argc, VALUE *argv, VALUE cb )
|
|
43
47
|
{
|
44
48
|
VALUE object;
|
45
49
|
VALUE method;
|
50
|
+
ID meth;
|
46
51
|
RCallback* cbs = GetCallbackStruct(cb);
|
47
52
|
|
48
53
|
if (rb_block_given_p()) {
|
@@ -52,7 +57,9 @@ static VALUE rb_callback_initialize( int argc, VALUE *argv, VALUE cb )
|
|
52
57
|
}else {
|
53
58
|
rb_scan_args(argc, argv, "02", &object, &method);
|
54
59
|
cbs->object = object;
|
55
|
-
|
60
|
+
meth = rb_to_id(method);
|
61
|
+
if (!rb_respond_to(object,meth)) rb_raise(rb_eArgError, "object does not respond to %s", RSTRING_PTR(rb_obj_as_string(method)));
|
62
|
+
cbs->method = meth;
|
56
63
|
}
|
57
64
|
|
58
65
|
OBJ_FREEZE(cb);
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: methodmissing-callback
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.1
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- "Lourens Naud\xC3\xA9 (methodmissing)"
|
@@ -30,7 +30,6 @@ files:
|
|
30
30
|
- bench/raggi_bench.rb
|
31
31
|
- ext/callback/extconf.rb
|
32
32
|
- ext/callback/callback.c
|
33
|
-
- lib/callback.rb
|
34
33
|
- callback.gemspec
|
35
34
|
has_rdoc: true
|
36
35
|
homepage: http://github.com/methodmissing/callback
|
data/lib/callback.rb
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
# stubbed
|