summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi
diff options
context:
space:
mode:
authoreregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-09-28 09:19:59 +0000
committereregon <eregon@b2dd03c8-39d4-4d8f-98ff-823fe69b080e>2017-09-28 09:19:59 +0000
commit52d2636f3e7658f76136310359c2ba00e613d2bd (patch)
tree523a193924876ba20fe00debc3f45765fb21bd79 /spec/ruby/optional/capi
parentc555bd7f01c531af8d33ed494b278a765381afd9 (diff)
Update to ruby/spec@691755d
git-svn-id: svn+ssh://ci.ruby-lang.org/ruby/trunk@60051 b2dd03c8-39d4-4d8f-98ff-823fe69b080e
Diffstat (limited to 'spec/ruby/optional/capi')
-rw-r--r--spec/ruby/optional/capi/ext/module_spec.c10
-rw-r--r--spec/ruby/optional/capi/ext/rubyspec.h1
-rw-r--r--spec/ruby/optional/capi/module_spec.rb10
3 files changed, 21 insertions, 0 deletions
diff --git a/spec/ruby/optional/capi/ext/module_spec.c b/spec/ruby/optional/capi/ext/module_spec.c
index 275bc4da32..e408404a09 100644
--- a/spec/ruby/optional/capi/ext/module_spec.c
+++ b/spec/ruby/optional/capi/ext/module_spec.c
@@ -152,6 +152,12 @@ static VALUE module_specs_rbclass2name(VALUE self, VALUE klass) {
}
#endif
+#ifdef HAVE_RB_MOD_ANCESTORS
+static VALUE module_specs_rb_mod_ancestors(VALUE self, VALUE klass) {
+ return rb_mod_ancestors(klass);
+}
+#endif
+
void Init_module_spec(void) {
VALUE cls;
@@ -245,6 +251,10 @@ void Init_module_spec(void) {
#ifdef HAVE_RB_CLASS2NAME
rb_define_method(cls, "rb_class2name", module_specs_rbclass2name, 1);
#endif
+
+#ifdef HAVE_RB_MOD_ANCESTORS
+ rb_define_method(cls, "rb_mod_ancestors", module_specs_rb_mod_ancestors, 1);
+#endif
}
#ifdef __cplusplus
diff --git a/spec/ruby/optional/capi/ext/rubyspec.h b/spec/ruby/optional/capi/ext/rubyspec.h
index 8866e39af4..12c71d98b0 100644
--- a/spec/ruby/optional/capi/ext/rubyspec.h
+++ b/spec/ruby/optional/capi/ext/rubyspec.h
@@ -401,6 +401,7 @@
#define HAVE_RB_DEFINE_PRIVATE_METHOD 1
#define HAVE_RB_DEFINE_PROTECTED_METHOD 1
#define HAVE_RB_DEFINE_SINGLETON_METHOD 1
+#define HAVE_RB_MOD_ANCESTORS 1
#define HAVE_RB_UNDEF 1
#define HAVE_RB_UNDEF_METHOD 1
diff --git a/spec/ruby/optional/capi/module_spec.rb b/spec/ruby/optional/capi/module_spec.rb
index 23fb674f0e..b3aeae4011 100644
--- a/spec/ruby/optional/capi/module_spec.rb
+++ b/spec/ruby/optional/capi/module_spec.rb
@@ -339,4 +339,14 @@ describe "CApiModule" do
@m.rb_class2name(CApiModuleSpecs::M).should == "CApiModuleSpecs::M"
end
end
+
+ describe "rb_mod_ancestors" do
+ it "returns an array of ancestors" do
+ one = Module.new
+ two = Module.new do
+ include one
+ end
+ @m.rb_mod_ancestors(two).should == [two, one]
+ end
+ end
end