aboutsummaryrefslogtreecommitdiffstats
path: root/spec/ruby/optional
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/optional')
-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