mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
2bf9fd06d2
Before this commit: mruby -e 'CRubyExtension.ruby_method' # => A Ruby Extension mruby -e 'CRubyExtension.c_method' # => A C Extension mruby -e 'CExtension.c_method' # => A C Extension mruby -e 'RubyExtension.ruby_method' # => A Ruby Extension After this commit: mruby -e 'CRubyExtension.ruby_method' # => CRubyExtension: A Ruby Extension mruby -e 'CRubyExtension.c_method' # => CRubyExtension: A C Extension mruby -e 'CExtension.c_method' # => CExtension: A C Extension mruby -e 'RubyExtension.ruby_method' # => RubyExtension: A Ruby Extension
25 lines
589 B
C
25 lines
589 B
C
#include <mruby.h>
|
|
#include <mruby/string.h>
|
|
#include <stdio.h>
|
|
|
|
static mrb_value
|
|
mrb_c_method(mrb_state *mrb, mrb_value self)
|
|
{
|
|
mrb_value self_str = mrb_str_to_str(mrb, self);
|
|
|
|
printf("%s: A C Extension\n", mrb_str_to_cstr(mrb, self_str));
|
|
|
|
return self;
|
|
}
|
|
|
|
void
|
|
mrb_c_and_ruby_extension_example_gem_init(mrb_state* mrb) {
|
|
struct RClass *class_cextension = mrb_define_module(mrb, "CRubyExtension");
|
|
mrb_define_class_method(mrb, class_cextension, "c_method", mrb_c_method, MRB_ARGS_NONE());
|
|
}
|
|
|
|
void
|
|
mrb_c_and_ruby_extension_example_gem_final(mrb_state* mrb) {
|
|
/* finalizer */
|
|
}
|