summaryrefslogtreecommitdiff
path: root/spec/ruby/optional/capi/ext/file_spec.c
diff options
context:
space:
mode:
Diffstat (limited to 'spec/ruby/optional/capi/ext/file_spec.c')
-rw-r--r--spec/ruby/optional/capi/ext/file_spec.c29
1 files changed, 29 insertions, 0 deletions
diff --git a/spec/ruby/optional/capi/ext/file_spec.c b/spec/ruby/optional/capi/ext/file_spec.c
new file mode 100644
index 0000000000..cd4a653765
--- /dev/null
+++ b/spec/ruby/optional/capi/ext/file_spec.c
@@ -0,0 +1,29 @@
+#include "ruby.h"
+#include "rubyspec.h"
+
+#ifdef __cplusplus
+extern "C" {
+#endif
+
+VALUE file_spec_rb_file_open(VALUE self, VALUE name, VALUE mode) {
+ return rb_file_open(RSTRING_PTR(name), RSTRING_PTR(mode));
+}
+
+VALUE file_spec_rb_file_open_str(VALUE self, VALUE name, VALUE mode) {
+ return rb_file_open_str(name, RSTRING_PTR(mode));
+}
+
+VALUE file_spec_FilePathValue(VALUE self, VALUE obj) {
+ return FilePathValue(obj);
+}
+
+void Init_file_spec(void) {
+ VALUE cls = rb_define_class("CApiFileSpecs", rb_cObject);
+ rb_define_method(cls, "rb_file_open", file_spec_rb_file_open, 2);
+ rb_define_method(cls, "rb_file_open_str", file_spec_rb_file_open_str, 2);
+ rb_define_method(cls, "FilePathValue", file_spec_FilePathValue, 1);
+}
+
+#ifdef __cplusplus
+}
+#endif