Exemple #1
0
void
mrb_mruby_pcap_gem_init(mrb_state *mrb)
{
  struct RClass *pcap, *capt;

  pcap = mrb_define_module(mrb, "Pcap");
  mrb_define_module_function(mrb, pcap, "lookupdev", mrb_pcap_s_lookupdev, ARGS_NONE());
  mrb_define_module_function(mrb, pcap, "lookupnet", pcap_s_lookupnet,
                             ARGS_REQ(1));

  mrb_define_const(mrb, pcap, "DLT_NULL", mrb_fixnum_value(DLT_NULL));
  mrb_define_const(mrb, pcap, "DLT_EN10MB", mrb_fixnum_value(DLT_EN10MB));
  mrb_define_const(mrb, pcap, "DLT_PPP", mrb_fixnum_value(DLT_PPP));
#ifdef DLT_RAW
  mrb_define_const(mrb, pcap, "DLT_RAW", mrb_fixnum_value(DLT_RAW));
#endif

  capt = mrb_define_class_under(mrb, pcap, "Capture", mrb->object_class);
  mrb_define_singleton_method(mrb, (struct RObject*)capt, "open_live", mrb_capture_open_live, MRB_ARGS_ARG(1, 3));
  mrb_define_method(mrb, capt, "capture", capture, ARGS_NONE());
  mrb_define_method(mrb, capt, "close", capture_close, ARGS_NONE());
  mrb_define_method(mrb, capt, "datalink", capture_datalink, ARGS_NONE());
  mrb_define_method(mrb, capt, "inject", mrb_capture_inject, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, capt, "setfilter", capture_setfilter, ARGS_ANY());
}
void
mrb_mruby_regexp_pcre_gem_init(mrb_state *mrb)
{
  struct RClass *re, *md;

  re = mrb_define_class(mrb, "Regexp", mrb->object_class);
  MRB_SET_INSTANCE_TT(re, MRB_TT_DATA);

  mrb_define_method(mrb, re, "initialize", regexp_pcre_initialize, MRB_ARGS_REQ(1) | MRB_ARGS_OPT(2));
  mrb_define_method(mrb, re, "match", regexp_pcre_match, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, re, "==", regexp_equal, MRB_ARGS_REQ(1));

  mrb_define_const(mrb, re, "IGNORECASE", mrb_fixnum_value(MRUBY_REGEXP_IGNORECASE));
  mrb_define_const(mrb, re, "EXTENDED", mrb_fixnum_value(MRUBY_REGEXP_EXTENDED));
  mrb_define_const(mrb, re, "MULTILINE", mrb_fixnum_value(MRUBY_REGEXP_MULTILINE));

  md = mrb_define_class(mrb, "MatchData", mrb->object_class);
  MRB_SET_INSTANCE_TT(md, MRB_TT_DATA);

  mrb_define_method(mrb, md, "initialize", mrb_matchdata_init, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, md, "initialize_copy", mrb_matchdata_init_copy, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, md, "begin", mrb_matchdata_begin, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, md, "end", mrb_matchdata_end, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, md, "length", mrb_matchdata_length, MRB_ARGS_NONE());
}
int main(void)
{
  /* new interpreter instance */
    mrb_state *mrb;
    mrb = mrb_open();

  /* modify interpreter state */
    // FakeLED class
    struct RClass *fake_led_class = mrb_define_class(mrb, "FakeLED", mrb->object_class);

    // Instance methods in FakeLED
    mrb_define_method(mrb, fake_led_class, "initialize", fake_led_init, MRB_ARGS_REQ(1));
    mrb_define_method(mrb, fake_led_class, "illuminate!", fake_led_illuminate, MRB_ARGS_REQ(1));

    // Constants nested in FakeLED, eg FakeLED::RED
    // They define the available colors of LED (maybe these would be pin numbers IRL)
    mrb_define_const(mrb, fake_led_class, "RED", mrb_str_new(mrb, KRED, 4));
    mrb_define_const(mrb, fake_led_class, "BLUE", mrb_str_new(mrb, KBLU, 4));
    mrb_define_const(mrb, fake_led_class, "GREEN", mrb_str_new(mrb, KGRN, 4));

  /* read and execute compiled symbols */
    mrb_load_irep(mrb, hello_embedded_ruby);

  mrb_close(mrb);

  return 0;
}
Exemple #4
0
void
mrb_init_file(mrb_state *mrb)
{
  struct RClass *io, *file, *cnst;

  io   = mrb_class_get(mrb, "IO");
  file = mrb_define_class(mrb, "File", io);
  MRB_SET_INSTANCE_TT(file, MRB_TT_DATA);
  mrb_define_class_method(mrb, file, "umask",  mrb_file_s_umask, MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, file, "delete", mrb_file_s_unlink, MRB_ARGS_ANY());
  mrb_define_class_method(mrb, file, "unlink", mrb_file_s_unlink, MRB_ARGS_ANY());
  mrb_define_class_method(mrb, file, "rename", mrb_file_s_rename, MRB_ARGS_REQ(2));

  mrb_define_class_method(mrb, file, "dirname",   mrb_file_dirname,    MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, file, "basename",  mrb_file_basename,   MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, file, "realpath",  mrb_file_realpath,   MRB_ARGS_REQ(1)|MRB_ARGS_OPT(1));
  mrb_define_class_method(mrb, file, "size",      mrb_file_size,       MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, file, "_getwd",    mrb_file__getwd,     MRB_ARGS_NONE());
  mrb_define_class_method(mrb, file, "_gethome",  mrb_file__gethome,   MRB_ARGS_OPT(1));

  #ifndef _WIN32
  mrb_define_method(mrb, file, "flock", mrb_file_flock, MRB_ARGS_REQ(1));
  #endif
  
  cnst = mrb_define_module_under(mrb, file, "Constants");
  mrb_define_const(mrb, cnst, "LOCK_SH", mrb_fixnum_value(LOCK_SH));
  mrb_define_const(mrb, cnst, "LOCK_EX", mrb_fixnum_value(LOCK_EX));
  mrb_define_const(mrb, cnst, "LOCK_UN", mrb_fixnum_value(LOCK_UN));
  mrb_define_const(mrb, cnst, "LOCK_NB", mrb_fixnum_value(LOCK_NB));
  mrb_define_const(mrb, cnst, "SEPARATOR", mrb_str_new_cstr(mrb, FILE_SEPARATOR));
}
void mrb_mruby_polarssl_gem_init(mrb_state *mrb) {
  struct RClass *p, *e, *c, *s, *pkey, *ecdsa, *cipher, *des, *des3;

  p = mrb_define_module(mrb, "PolarSSL");
  pkey = mrb_define_module_under(mrb, p, "PKey");

  e = mrb_define_class_under(mrb, p, "Entropy", mrb->object_class);
  MRB_SET_INSTANCE_TT(e, MRB_TT_DATA);
  mrb_define_method(mrb, e, "initialize", mrb_entropy_initialize, MRB_ARGS_NONE());
  mrb_define_method(mrb, e, "gather", mrb_entropy_gather, MRB_ARGS_NONE());

  c = mrb_define_class_under(mrb, p, "CtrDrbg", mrb->object_class);
  MRB_SET_INSTANCE_TT(c, MRB_TT_DATA);
  mrb_define_method(mrb, c, "initialize", mrb_ctrdrbg_initialize, MRB_ARGS_REQ(1) | MRB_ARGS_OPT(1));
  mrb_define_singleton_method(mrb, (struct RObject*)c, "self_test", mrb_ctrdrbg_self_test, MRB_ARGS_NONE());

  s = mrb_define_class_under(mrb, p, "SSL", mrb->object_class);
  MRB_SET_INSTANCE_TT(s, MRB_TT_DATA);
  mrb_define_method(mrb, s, "initialize", mrb_ssl_initialize, MRB_ARGS_NONE());
  // 0: Endpoint mode for acting as a client.
  mrb_define_const(mrb, s, "SSL_IS_CLIENT", mrb_fixnum_value(SSL_IS_CLIENT));
  // 0: Certificate verification mode for doing no verification.
  mrb_define_const(mrb, s, "SSL_VERIFY_NONE", mrb_fixnum_value(SSL_VERIFY_NONE));
  // 1: Certificate verification mode for optional verification.
  mrb_define_const(mrb, s, "SSL_VERIFY_OPTIONAL", mrb_fixnum_value(SSL_VERIFY_OPTIONAL));
  // 2: Certificate verification mode for having required verification.
  mrb_define_const(mrb, s, "SSL_VERIFY_REQUIRED", mrb_fixnum_value(SSL_VERIFY_REQUIRED));
  mrb_define_method(mrb, s, "set_endpoint", mrb_ssl_set_endpoint, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, s, "set_authmode", mrb_ssl_set_authmode, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, s, "set_rng", mrb_ssl_set_rng, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, s, "set_socket", mrb_ssl_set_socket, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, s, "handshake", mrb_ssl_handshake, MRB_ARGS_NONE());
  mrb_define_method(mrb, s, "write", mrb_ssl_write, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, s, "read", mrb_ssl_read, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, s, "bytes_available", mrb_ssl_bytes_available, MRB_ARGS_NONE());
  mrb_define_method(mrb, s, "fileno", mrb_ssl_fileno, MRB_ARGS_NONE());
  mrb_define_method(mrb, s, "close_notify", mrb_ssl_close_notify, MRB_ARGS_NONE());
  mrb_define_method(mrb, s, "close", mrb_ssl_close, MRB_ARGS_NONE());

  ecdsa = mrb_define_class_under(mrb, pkey, "EC", mrb->object_class);
  MRB_SET_INSTANCE_TT(ecdsa, MRB_TT_DATA);
  mrb_define_method(mrb, ecdsa, "alloc", mrb_ecdsa_alloc, MRB_ARGS_NONE());
  mrb_define_method(mrb, ecdsa, "generate_key", mrb_ecdsa_generate_key, MRB_ARGS_NONE());
  mrb_define_method(mrb, ecdsa, "load_pem", mrb_ecdsa_load_pem, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, ecdsa, "public_key", mrb_ecdsa_public_key, MRB_ARGS_NONE());
  mrb_define_method(mrb, ecdsa, "private_key", mrb_ecdsa_private_key, MRB_ARGS_NONE());
  mrb_define_method(mrb, ecdsa, "sign", mrb_ecdsa_sign, MRB_ARGS_REQ(1));

  cipher = mrb_define_class_under(mrb, p, "Cipher", mrb->object_class);

  des = mrb_define_class_under(mrb, cipher, "DES", cipher);
  mrb_define_class_method(mrb, des, "encrypt", mrb_des_encrypt, MRB_ARGS_REQ(4));
  mrb_define_class_method(mrb, des, "decrypt", mrb_des_decrypt, MRB_ARGS_REQ(4));

  des3 = mrb_define_class_under(mrb, cipher, "DES3", cipher);
  mrb_define_class_method(mrb, des3, "encrypt", mrb_des3_encrypt, MRB_ARGS_REQ(4));
  mrb_define_class_method(mrb, des3, "decrypt", mrb_des3_decrypt, MRB_ARGS_REQ(4));
}
void EasyRPG::register_text(mrb_state* M) {
	static method_info const methods[] = {
		{ "draw", &draw, MRB_ARGS_REQ(4) | MRB_ARGS_OPT(2) },
		method_info_end };
	RClass* const mod = define_module(M, "Text", methods);
	mrb_define_const(M, mod, "AlignLeft", mrb_fixnum_value(Text::AlignLeft));
	mrb_define_const(M, mod, "AlignCenter", mrb_fixnum_value(Text::AlignCenter));
	mrb_define_const(M, mod, "AlignRight", mrb_fixnum_value(Text::AlignRight));
}
Exemple #7
0
void
mrb_init_class(mrb_state *mrb)
{
  struct RClass *bob;           /* BasicObject */
  struct RClass *obj;           /* Object */
  struct RClass *mod;           /* Module */
  struct RClass *cls;           /* Class */
  //struct RClass *krn;    /* Kernel */

  /* boot class hierarchy */
  bob = boot_defclass(mrb, 0);
  obj = boot_defclass(mrb, bob); mrb->object_class = obj;
  mod = boot_defclass(mrb, obj); mrb->module_class = mod;/* obj -> mod */
  cls = boot_defclass(mrb, mod); mrb->class_class = cls; /* obj -> cls */
  /* fix-up loose ends */
  bob->c = obj->c = mod->c = cls->c = cls;
  make_metaclass(mrb, bob);
  make_metaclass(mrb, obj);
  make_metaclass(mrb, mod);
  make_metaclass(mrb, cls);

  /* name basic classes */
  mrb_define_const(mrb, obj, "BasicObject", mrb_obj_value(bob));
  mrb_define_const(mrb, obj, "Object", mrb_obj_value(obj));
  mrb_define_const(mrb, obj, "Module", mrb_obj_value(mod));
  mrb_define_const(mrb, obj, "Class", mrb_obj_value(cls));

  /* name each classes */
  mrb_name_class(mrb, bob, mrb_intern(mrb, "BasicObject"));
  mrb_name_class(mrb, obj, mrb_intern(mrb, "Object"));
  mrb_name_class(mrb, mod, mrb_intern(mrb, "Module"));
  mrb_name_class(mrb, cls, mrb_intern(mrb, "Class"));

  mrb_undef_method(mrb, mod, "new");
  MRB_SET_INSTANCE_TT(cls, MRB_TT_CLASS);
  mrb_define_method(mrb, bob, "initialize", mrb_bob_init, ARGS_NONE());
  mrb_define_method(mrb, bob, "!", mrb_bob_not, ARGS_NONE());
  mrb_define_method(mrb, bob, "method_missing", mrb_bob_missing, ARGS_ANY());        /* 15.3.1.3.30 */
  mrb_define_class_method(mrb, cls, "new", mrb_class_new_class, ARGS_ANY());
  mrb_define_method(mrb, cls, "superclass", mrb_class_superclass, ARGS_NONE());      /* 15.2.3.3.4 */
  mrb_define_method(mrb, cls, "new", mrb_instance_new, ARGS_ANY());                  /* 15.2.3.3.3 */
  mrb_define_method(mrb, cls, "inherited", mrb_bob_init, ARGS_REQ(1));
  mrb_define_method(mrb, mod, "include", mrb_mod_include, ARGS_REQ(1));              /* 15.2.2.4.27 */

  mrb_define_method(mrb, mod, "to_s", mrb_mod_to_s, ARGS_NONE());
  mrb_define_method(mrb, mod, "alias_method", mrb_mod_alias, ARGS_ANY());            /* 15.2.2.4.8 */
  mrb_define_method(mrb, mod, "undef_method", mrb_mod_undef, ARGS_ANY());            /* 15.2.2.4.41 */
  mrb_define_method(mrb, mod, "const_defined?", mrb_mod_const_defined, ARGS_REQ(1)); /* 15.2.2.4.20 */
  mrb_define_method(mrb, mod, "const_get", mrb_mod_const_get, ARGS_REQ(1));          /* 15.2.2.4.21 */
  mrb_define_method(mrb, mod, "const_set", mrb_mod_const_set, ARGS_REQ(2));          /* 15.2.2.4.23 */
  mrb_define_method(mrb, mod, "define_method", mod_define_method, ARGS_REQ(1));

  mrb_define_method(mrb, mod, "===", mrb_mod_eqq, ARGS_REQ(1));
}
Exemple #8
0
Fichier : math.c Projet : iij/mruby
/* ------------------------------------------------------------------------*/
void
mrb_mruby_math_gem_init(mrb_state* mrb)
{
  struct RClass *mrb_math;
  mrb_math = mrb_define_module(mrb, "Math");

  mrb_define_class_under(mrb, mrb_math, "DomainError", mrb->eStandardError_class);

#ifdef M_PI
  mrb_define_const(mrb, mrb_math, "PI", mrb_float_value(mrb, M_PI));
#else
  mrb_define_const(mrb, mrb_math, "PI", mrb_float_value(mrb, atan(1.0)*4.0));
#endif

#ifdef M_E
  mrb_define_const(mrb, mrb_math, "E", mrb_float_value(mrb, M_E));
#else
  mrb_define_const(mrb, mrb_math, "E", mrb_float_value(mrb, exp(1.0)));
#endif

  mrb_define_module_function(mrb, mrb_math, "sin", math_sin, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "cos", math_cos, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "tan", math_tan, MRB_ARGS_REQ(1));

  mrb_define_module_function(mrb, mrb_math, "asin", math_asin, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "acos", math_acos, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "atan", math_atan, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "atan2", math_atan2, MRB_ARGS_REQ(2));

  mrb_define_module_function(mrb, mrb_math, "sinh", math_sinh, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "cosh", math_cosh, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "tanh", math_tanh, MRB_ARGS_REQ(1));

  mrb_define_module_function(mrb, mrb_math, "asinh", math_asinh, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "acosh", math_acosh, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "atanh", math_atanh, MRB_ARGS_REQ(1));

  mrb_define_module_function(mrb, mrb_math, "exp", math_exp, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "log", math_log, MRB_ARGS_REQ(1)|MRB_ARGS_OPT(1));
  mrb_define_module_function(mrb, mrb_math, "log2", math_log2, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "log10", math_log10, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "sqrt", math_sqrt, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "cbrt", math_cbrt, MRB_ARGS_REQ(1));

  mrb_define_module_function(mrb, mrb_math, "frexp", math_frexp, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "ldexp", math_ldexp, MRB_ARGS_REQ(2));

  mrb_define_module_function(mrb, mrb_math, "hypot", math_hypot, MRB_ARGS_REQ(2));

  mrb_define_module_function(mrb, mrb_math, "erf",  math_erf,  MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "erfc", math_erfc, MRB_ARGS_REQ(1));
}
Exemple #9
0
void
mrb_mruby_rs_gyro_gem_init(mrb_state* mrb) {
	struct RClass *gyro;
	gyro = mrb_define_class(mrb, "Gyro", mrb->object_class);

	mrb_define_const(mrb, gyro, "X", mrb_fixnum_value(0));
	mrb_define_const(mrb, gyro, "Y", mrb_fixnum_value(1));
	mrb_define_const(mrb, gyro, "Z", mrb_fixnum_value(2));

	// methods
	mrb_define_method(mrb, gyro, "initialize", mrb_rs_gyro_initialize, MRB_ARGS_REQ(1));
	mrb_define_method(mrb, gyro, "read", mrb_rs_gyro_read, MRB_ARGS_REQ(1));

}
void
mrb_mruby_opencv_core_init(mrb_state* mrb, struct RClass *cv_class) {
  //---------
  //cv::Mat
  //---------
  struct RClass *mat_class = mrb_define_class_under(mrb, cv_class, "Mat", mrb->object_class);
  MRB_SET_INSTANCE_TT(mat_class, MRB_TT_DATA);
  mrb_define_method(mrb, mat_class, "initialize", mrb_mruby_opencv_initialize, MRB_ARGS_OPT(3));
  
  //method
  mrb_define_method(mrb, mat_class, "copyTo", mrb_mruby_opencv_copyTo, MRB_ARGS_REQ(1)|MRB_ARGS_OPT(1));
  
  //array access
  mrb_define_method(mrb, mat_class, "[]", mrb_mruby_opencv_aget, MRB_ARGS_ANY());
  mrb_define_method(mrb, mat_class, "[]=", mrb_mruby_opencv_aset, MRB_ARGS_ANY());
  //properties
  mrb_define_method(mrb, mat_class, "rows", mrb_mruby_opencv_rows, MRB_ARGS_NONE());
  mrb_define_method(mrb, mat_class, "cols", mrb_mruby_opencv_cols, MRB_ARGS_NONE());
  mrb_define_method(mrb, mat_class, "type", mrb_mruby_opencv_type, MRB_ARGS_NONE());

  //constants
  mrb_define_const(mrb, cv_class, "CV_8UC1", mrb_fixnum_value(CV_8UC1));
  mrb_define_const(mrb, cv_class, "CV_8UC2", mrb_fixnum_value(CV_8UC2));
  mrb_define_const(mrb, cv_class, "CV_8UC3", mrb_fixnum_value(CV_8UC3));
  mrb_define_const(mrb, cv_class, "CV_8UC4", mrb_fixnum_value(CV_8UC4));
  mrb_define_const(mrb, cv_class, "CV_32FC1", mrb_fixnum_value(CV_32FC1));
  mrb_define_const(mrb, cv_class, "CV_32FC2", mrb_fixnum_value(CV_32FC2));
  mrb_define_const(mrb, cv_class, "CV_32FC3", mrb_fixnum_value(CV_32FC3));
  mrb_define_const(mrb, cv_class, "CV_32FC4", mrb_fixnum_value(CV_32FC4));
}
void
mrb_mruby_pcre_regexp_gem_init(mrb_state* mrb) {
  struct RClass *clazz;

  clazz = mrb_define_class(mrb, "PcreRegexp", mrb->object_class);

  mrb_define_const(mrb, clazz, "IGNORECASE", mrb_fixnum_value(1));
  mrb_define_const(mrb, clazz, "EXTENDED", mrb_fixnum_value(2));
  mrb_define_const(mrb, clazz, "MULTILINE", mrb_fixnum_value(4));

  mrb_define_method(mrb, clazz, "initialize", pcre_regexp_initialize, MRB_ARGS_REQ(1) | MRB_ARGS_OPT(2));
  mrb_define_method(mrb, clazz, "initialize_copy", pcre_regexp_initialize_copy, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, clazz, "==", pcre_regexp_equal, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, clazz, "match", pcre_regexp_match, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, clazz, "casefold?", pcre_regexp_casefold_p, MRB_ARGS_NONE());
}
Exemple #12
0
void
mruby_sdl2_joystick_init(mrb_state *mrb)
{
  int arena_size;
  struct RClass *mod_Joystick = mrb_define_module_under(mrb, mod_SDL2, "Joysticks");
  class_Joystick = mrb_define_class_under(mrb, mod_Joystick, "Joystick", mrb->object_class);

  MRB_SET_INSTANCE_TT(class_Joystick, MRB_TT_DATA);

  mrb_define_module_function(mrb, mod_Joystick, "num",      mrb_sdl2_joystick_num, MRB_ARGS_NONE());
  mrb_define_module_function(mrb, mod_Joystick, "name_from_index", mrb_sdl2_joystick_get_name, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mod_Joystick, "get_guid_from_index",       mrb_sdl2_joystick_get_guid, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mod_Joystick, "get_guid_as_string",        mrb_sdl2_joystick_get_guid_as_string, MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mod_Joystick, "get_guid_from_string",        mrb_sdl2_joystick_get_guid_from_string, MRB_ARGS_REQ(1));

  mrb_define_method(mrb, class_Joystick, "initialize",  mrb_sdl2_joystick_joystick_initialize,  MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_Joystick, "destroy",     mrb_sdl2_joystick_joystick_free,        MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "free",        mrb_sdl2_joystick_joystick_free,        MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_name",        mrb_sdl2_joystick_joystick_get_name, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_guid",        mrb_sdl2_joystick_joystick_get_guid, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_guid_as_string",        mrb_sdl2_joystick_joystick_get_guid_as_string, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "is_attached?",        mrb_sdl2_joystick_joystick_is_attached, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_id",         mrb_sdl2_joystick_joystick_get_id, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_general_num_axes",         mrb_sdl2_joystick_joystick_get_num_axes, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_general_num_balls",         mrb_sdl2_joystick_joystick_get_num_balls, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_general_num_hats",         mrb_sdl2_joystick_joystick_get_num_hats, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_general_num_buttons",         mrb_sdl2_joystick_joystick_get_num_buttons, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "update",         mrb_sdl2_joystick_joystick_update, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "event_state",         mrb_sdl2_joystick_joystick_event_state, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_Joystick, "get_axis",         mrb_sdl2_joystick_joystick_get_axis, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_Joystick, "get_axis_x", mrb_sdl2_joystick_joystick_get_axis_x, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_axis_y", mrb_sdl2_joystick_joystick_get_axis_y, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_Joystick, "get_hat",         mrb_sdl2_joystick_joystick_get_hat, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_Joystick, "get_ball",         mrb_sdl2_joystick_joystick_get_ball, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_Joystick, "get_button",         mrb_sdl2_joystick_joystick_get_button, MRB_ARGS_REQ(1));


  arena_size = mrb_gc_arena_save(mrb);
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_CENTERED",  mrb_fixnum_value(SDL_HAT_CENTERED));
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_UP",        mrb_fixnum_value(SDL_HAT_UP));
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_RIGHT",     mrb_fixnum_value(SDL_HAT_RIGHT));
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_DOWN",      mrb_fixnum_value(SDL_HAT_DOWN));
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_LEFT",      mrb_fixnum_value(SDL_HAT_LEFT));
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_RIGHTUP",   mrb_fixnum_value(SDL_HAT_RIGHTUP));
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_RIGHTDOWN", mrb_fixnum_value(SDL_HAT_RIGHTDOWN));
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_LEFTUP",    mrb_fixnum_value(SDL_HAT_LEFTUP));
  mrb_define_const(mrb, mod_Joystick, "SDL_HAT_LEFTDOWN",  mrb_fixnum_value(SDL_HAT_LEFTDOWN));
  mrb_gc_arena_restore(mrb, arena_size);

}
Exemple #13
0
void mrb_olinuxino_gem_init(mrb_state* mrb)
{
  mrb_define_method(mrb,mrb->object_class,"msleep",mrb_msleep,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,mrb->object_class,"loggo",mrb_loggo,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,mrb->object_class,"readline",mrb_readline,MRB_ARGS_NONE());
  
  struct RClass *c=mrb_define_class(mrb,"Mainloop",mrb->object_class);
  MRB_SET_INSTANCE_TT(c,MRB_TT_DATA);

  mrb_define_method(mrb,c,"initialize",mrb_mainloop_initialize,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"add_unit",mrb_mainloop_add_unit,MRB_ARGS_REQ(3));

  c=mrb_define_class(mrb,"Spi",mrb->object_class);
  MRB_SET_INSTANCE_TT(c,MRB_TT_DATA);

  mrb_define_method(mrb,c,"initialize",mrb_spi_initialize,MRB_ARGS_REQ(2));

  c=mrb_define_class(mrb,"Mrf89",mrb->object_class);
  MRB_SET_INSTANCE_TT(c,MRB_TT_DATA);

  mrb_define_const(mrb,c,"N_CHANNELS",mrb_fixnum_value(CHANNEL_NUM));

  mrb_define_method(mrb,c,"initialize",mrb_mrf89_initialize,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"set_para",mrb_mrf89_set_para,MRB_ARGS_REQ(2));
  mrb_define_method(mrb,c,"set_channel",mrb_mrf89_set_channel,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"transmit",mrb_mrf89_transmit,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"receive",mrb_mrf89_receive,MRB_ARGS_NONE());
  mrb_define_method(mrb,c,"read",mrb_mrf89_read,MRB_ARGS_REQ(2));
  mrb_define_method(mrb,c,"req_para",mrb_mrf89_req_para,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"get_irqs",mrb_mrf89_get_irqs,MRB_ARGS_NONE());

  c=mrb_define_class(mrb,"Led",mrb->object_class);
  MRB_SET_INSTANCE_TT(c,MRB_TT_DATA);

  mrb_define_method(mrb,c,"initialize",mrb_led_initialize,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"on",mrb_led_on,MRB_ARGS_NONE());
  mrb_define_method(mrb,c,"off",mrb_led_off,MRB_ARGS_NONE());

  c=mrb_define_class(mrb,"Fb",mrb->object_class);
  MRB_SET_INSTANCE_TT(c,MRB_TT_DATA);

  mrb_define_method(mrb,c,"initialize",mrb_fb_initialize,MRB_ARGS_REQ(2));
  mrb_define_method(mrb,c,"size",mrb_fb_size,MRB_ARGS_NONE());
  mrb_define_method(mrb,c,"status",mrb_fb_status,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"fill",mrb_fb_fill,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"line",mrb_fb_line,MRB_ARGS_REQ(5));
  mrb_define_method(mrb,c,"rect",mrb_fb_rect,MRB_ARGS_REQ(5));
  mrb_define_method(mrb,c,"save_calibdata",mrb_fb_save_calibdata,MRB_ARGS_REQ(4));
  mrb_define_method(mrb,c,"calibdata",mrb_fb_calibdata,MRB_ARGS_NONE());

  c=mrb_define_class(mrb,"Osock",mrb->object_class);
  MRB_SET_INSTANCE_TT(c,MRB_TT_DATA);

  mrb_define_method(mrb,c,"initialize",mrb_osock_initialize,MRB_ARGS_REQ(1));
  mrb_define_method(mrb,c,"unit",mrb_osock_unit,MRB_ARGS_NONE());
}
Exemple #14
0
/* ------------------------------------------------------------------------*/
void
mrb_init_math(mrb_state *mrb)
{
    struct RClass *mrb_math;
    mrb_math = mrb_define_module(mrb, "Math");

#ifdef M_PI
    mrb_define_const(mrb, mrb_math, "PI", mrb_float_value(M_PI));
#else
    mrb_define_const(mrb, mrb_math, "PI", mrb_float_value(atan(1.0)*4.0));
#endif

#ifdef M_E
    mrb_define_const(mrb, mrb_math, "E", mrb_float_value(M_E));
#else
    mrb_define_const(mrb, mrb_math, "E", mrb_float_value(exp(1.0)));
#endif

    mrb_define_class_method(mrb, mrb_math, "sin", math_sin, 1);
    mrb_define_class_method(mrb, mrb_math, "cos", math_cos, 1);
    mrb_define_class_method(mrb, mrb_math, "tan", math_tan, 1);

    mrb_define_class_method(mrb, mrb_math, "asin", math_asin, 1);
    mrb_define_class_method(mrb, mrb_math, "acos", math_acos, 1);
    mrb_define_class_method(mrb, mrb_math, "atan", math_atan, 1);
    mrb_define_class_method(mrb, mrb_math, "atan2", math_atan2, 2);

    mrb_define_class_method(mrb, mrb_math, "sinh", math_sinh, 1);
    mrb_define_class_method(mrb, mrb_math, "cosh", math_cosh, 1);
    mrb_define_class_method(mrb, mrb_math, "tanh", math_tanh, 1);

    mrb_define_class_method(mrb, mrb_math, "exp", math_exp, 1);
    mrb_define_class_method(mrb, mrb_math, "log", math_log, -1);
    mrb_define_class_method(mrb, mrb_math, "log2", math_log2, 1);
    mrb_define_class_method(mrb, mrb_math, "log10", math_log10, 1);

    mrb_define_class_method(mrb, mrb_math, "frexp", math_frexp, 1);
    mrb_define_class_method(mrb, mrb_math, "ldexp", math_ldexp, 2);

    mrb_define_class_method(mrb, mrb_math, "hypot", math_hypot, 2);
}
Exemple #15
0
void
mrb_mruby_errno_gem_init(mrb_state *mrb)
{
  struct RClass *e, *eno, *sce, *ste;
  mrb_value h, noerror;

  ste = mrb_class_get(mrb, "StandardError");

  sce = mrb_define_class(mrb, "SystemCallError", ste);
  mrb_define_class_method(mrb, sce, "_sys_fail", mrb_sce_sys_fail, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, sce, "errno", mrb_sce_errno, MRB_ARGS_NONE());
  mrb_define_method(mrb, sce, "to_s", mrb_sce_to_s, MRB_ARGS_NONE());
  mrb_define_method(mrb, sce, "initialize", mrb_sce_init, MRB_ARGS_ARG(1, 1));

  eno = mrb_define_module(mrb, "Errno");
  h = mrb_hash_new(mrb);
  mrb_define_const(mrb, eno, "Errno2class", h);

  e = mrb_define_class_under(mrb, eno, "NOERROR", sce);
  mrb_define_const(mrb, e, "Errno", mrb_fixnum_value(0));
  mrb_define_method(mrb, e, "initialize", mrb_exxx_init, MRB_ARGS_OPT(1));
  //mrb_define_method(mrb, e, "===", mrb_exxx_cmp, MRB_ARGS_REQ(1));
  noerror = mrb_obj_value(e);

#define itsdefined(SYM) \
  do {									\
    int ai = mrb_gc_arena_save(mrb);					\
    e = mrb_define_class_under(mrb, eno, #SYM, sce);			\
    mrb_define_const(mrb, e, "Errno", mrb_fixnum_value(SYM));		\
    mrb_define_method(mrb, e, "initialize", mrb_exxx_init, MRB_ARGS_OPT(1)); \
    mrb_hash_set(mrb, h, mrb_fixnum_value(SYM), mrb_obj_value(e));	\
    mrb_gc_arena_restore(mrb, ai);					\
  } while (0)

#define itsnotdefined(SYM) \
  do {									\
    mrb_define_const(mrb, eno, #SYM, noerror);				\
  } while (0)

#include "known_errors_def.cstub"
}
void
mrb_mruby_hs_regexp_gem_init(mrb_state* mrb)
{
    struct RClass *r;

    r = mrb_define_class(mrb, "HsRegexp", mrb->object_class);
    MRB_SET_INSTANCE_TT(r, MRB_TT_DATA);

    mrb_define_const(mrb, r, "IGNORECASE", mrb_fixnum_value(REGEXP_FLAG_IGNORECASE));
    mrb_define_const(mrb, r, "MULTILINE", mrb_fixnum_value(REGEXP_FLAG_MULTILINE));

    mrb_define_method(mrb, r, "initialize", hs_regexp_initialize, MRB_ARGS_ANY());
    mrb_define_method(mrb, r, "initialize_copy", hs_regexp_initialize_copy, MRB_ARGS_REQ(1));
    mrb_define_method(mrb, r, "match", hs_regexp_match, MRB_ARGS_REQ(1));
    mrb_define_method(mrb, r, "==", hs_regexp_equal, MRB_ARGS_REQ(1));
    mrb_define_method(mrb, r, "casefold?", hs_regexp_casefold_p, MRB_ARGS_NONE());

#ifdef HS_REGEXP_ENABLE_BUILT_IN_REGEXP
    mrb_define_global_const(mrb, "Regexp", mrb_obj_value(r));
#endif
}
Exemple #17
0
void
mrb_mruby_curl_gem_init(mrb_state* mrb)
{
  struct RClass* _class_curl;
  int ai = mrb_gc_arena_save(mrb); \
  _class_curl = mrb_define_module(mrb, "Curl");
  mrb_define_class_method(mrb, _class_curl, "get", mrb_curl_get, ARGS_REQ(1) | ARGS_OPT(1));
  mrb_define_class_method(mrb, _class_curl, "post", mrb_curl_post, ARGS_REQ(2) | ARGS_OPT(1));
  mrb_define_class_method(mrb, _class_curl, "send", mrb_curl_send, ARGS_REQ(2));
  mrb_define_const(mrb, _class_curl, "SSL_VERIFYPEER", mrb_fixnum_value(1));
  mrb_gc_arena_restore(mrb, ai);
}
Exemple #18
0
void
init_cfunc_rubyvm(mrb_state *mrb, struct RClass* module, void (*mrb_state_init)(mrb_state*))
{
    cfunc_state(mrb)->mrb_state_init = mrb_state_init;

    struct RClass *rubyvm_class = mrb_define_class_under(mrb, module, "RubyVM", mrb->object_class);
    cfunc_state(mrb)->rubyvm_class = rubyvm_class;

    mrb_define_class_method(mrb, rubyvm_class, "thread", cfunc_rubyvm_class_thread, ARGS_REQ(1));
    mrb_define_method(mrb, rubyvm_class, "dispatch", cfunc_rubyvm_dispatch, ARGS_ANY());

    struct RClass *rubyvm_task_class = mrb_define_class_under(mrb, cfunc_state(mrb)->rubyvm_class, "Task", mrb->object_class);
    cfunc_state(mrb)->rubyvm_task_class = rubyvm_task_class;

    mrb_define_method(mrb, rubyvm_task_class, "wait", cfunc_rubyvm_task_wait, ARGS_NONE());
    mrb_define_method(mrb, rubyvm_task_class, "result", cfunc_rubyvm_task_result, ARGS_NONE());
    mrb_define_method(mrb, rubyvm_task_class, "status", cfunc_rubyvm_task_status, ARGS_NONE());

    mrb_define_const(mrb, rubyvm_task_class, "QUEUED", mrb_fixnum_value(queue_task_queued));
    mrb_define_const(mrb, rubyvm_task_class, "RUNNING", mrb_fixnum_value(queue_task_running));
    mrb_define_const(mrb, rubyvm_task_class, "FINISHED", mrb_fixnum_value(queue_task_finished));
}
Exemple #19
0
/* ------------------------------------------------------------------------*/
void
mrb_init_math(mrb_state *mrb)
{
  struct RClass *mrb_math;
  mrb_math = mrb_define_module(mrb, "Math");
  
#ifdef M_PI
  mrb_define_const(mrb, mrb_math, "PI", mrb_float_value(M_PI));
#else
  mrb_define_const(mrb, mrb_math, "PI", mrb_float_value(atan(1.0)*4.0));
#endif
  
#ifdef M_E
  mrb_define_const(mrb, mrb_math, "E", mrb_float_value(M_E));
#else
  mrb_define_const(mrb, mrb_math, "E", mrb_float_value(exp(1.0)));
#endif

#ifdef MRB_USE_FLOAT
  mrb_define_const(mrb, mrb_math, "TOLERANCE", mrb_float_value(1e-5));
#else
  mrb_define_const(mrb, mrb_math, "TOLERANCE", mrb_float_value(1e-12));
#endif

  mrb_define_module_function(mrb, mrb_math, "sin", math_sin, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "cos", math_cos, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "tan", math_tan, ARGS_REQ(1));

  mrb_define_module_function(mrb, mrb_math, "asin", math_asin, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "acos", math_acos, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "atan", math_atan, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "atan2", math_atan2, ARGS_REQ(2));
  
  mrb_define_module_function(mrb, mrb_math, "sinh", math_sinh, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "cosh", math_cosh, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "tanh", math_tanh, ARGS_REQ(1));

  mrb_define_module_function(mrb, mrb_math, "asinh", math_asinh, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "acosh", math_acosh, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "atanh", math_atanh, ARGS_REQ(1));

  mrb_define_module_function(mrb, mrb_math, "exp", math_exp, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "log", math_log, ARGS_REQ(1)|ARGS_OPT(1));
  mrb_define_module_function(mrb, mrb_math, "log2", math_log2, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "log10", math_log10, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "sqrt", math_sqrt, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "cbrt", math_cbrt, ARGS_REQ(1));

  mrb_define_module_function(mrb, mrb_math, "frexp", math_frexp, ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "ldexp", math_ldexp, ARGS_REQ(2));

  mrb_define_module_function(mrb, mrb_math, "hypot", math_hypot, ARGS_REQ(2));

  mrb_define_module_function(mrb, mrb_math, "erf",  math_erf,  ARGS_REQ(1));
  mrb_define_module_function(mrb, mrb_math, "erfc", math_erfc, ARGS_REQ(1));
}
Exemple #20
0
void
mrb_init_file(mrb_state *mrb)
{
  struct RClass *io, *file, *cnst;

  io   = mrb_class_get(mrb, "IO");
  file = mrb_define_class(mrb, "File", io);
  MRB_SET_INSTANCE_TT(file, MRB_TT_DATA);
  mrb_define_class_method(mrb, file, "umask",  mrb_file_s_umask, MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, file, "delete", mrb_file_s_unlink, MRB_ARGS_ANY());
  mrb_define_class_method(mrb, file, "unlink", mrb_file_s_unlink, MRB_ARGS_ANY());
  mrb_define_class_method(mrb, file, "rename", mrb_file_s_rename, MRB_ARGS_REQ(2));
  mrb_define_class_method(mrb, file, "symlink", mrb_file_s_symlink, MRB_ARGS_REQ(2));
  mrb_define_class_method(mrb, file, "chmod", mrb_file_s_chmod, MRB_ARGS_REQ(1) | MRB_ARGS_REST());
  mrb_define_class_method(mrb, file, "readlink", mrb_file_s_readlink, MRB_ARGS_REQ(1));

  mrb_define_class_method(mrb, file, "dirname",   mrb_file_dirname,    MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, file, "basename",  mrb_file_basename,   MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, file, "realpath",  mrb_file_realpath,   MRB_ARGS_REQ(1)|MRB_ARGS_OPT(1));
  mrb_define_class_method(mrb, file, "_getwd",    mrb_file__getwd,     MRB_ARGS_NONE());
  mrb_define_class_method(mrb, file, "_gethome",  mrb_file__gethome,   MRB_ARGS_OPT(1));

  mrb_define_method(mrb, file, "flock", mrb_file_flock, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, file, "mtime", mrb_file_mtime, MRB_ARGS_NONE());

  cnst = mrb_define_module_under(mrb, file, "Constants");
  mrb_define_const(mrb, cnst, "LOCK_SH", mrb_fixnum_value(LOCK_SH));
  mrb_define_const(mrb, cnst, "LOCK_EX", mrb_fixnum_value(LOCK_EX));
  mrb_define_const(mrb, cnst, "LOCK_UN", mrb_fixnum_value(LOCK_UN));
  mrb_define_const(mrb, cnst, "LOCK_NB", mrb_fixnum_value(LOCK_NB));
  mrb_define_const(mrb, cnst, "SEPARATOR", mrb_str_new_cstr(mrb, FILE_SEPARATOR));
  mrb_define_const(mrb, cnst, "PATH_SEPARATOR", mrb_str_new_cstr(mrb, PATH_SEPARATOR));
#if defined(_WIN32) || defined(_WIN64)
  mrb_define_const(mrb, cnst, "ALT_SEPARATOR", mrb_str_new_cstr(mrb, FILE_ALT_SEPARATOR));
#else
  mrb_define_const(mrb, cnst, "ALT_SEPARATOR", mrb_nil_value());
#endif
  mrb_define_const(mrb, cnst, "NULL", mrb_str_new_cstr(mrb, NULL_FILE));

}
Exemple #21
0
void
mrb_mruby_yaml_gem_init(mrb_state *mrb)
{
  struct RClass *klass = mrb_define_module(mrb, "YAML");
  mrb_define_class_method(mrb, klass, "load", mrb_yaml_load, MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, klass, "dump", mrb_yaml_dump, MRB_ARGS_REQ(1));

  mrb_define_const(mrb, klass, "SUPPORT_NULL", mrb_bool_value(MRUBY_YAML_NULL));
  mrb_define_const(mrb, klass, "SUPPORT_BOOLEAN_ON", mrb_bool_value(MRUBY_YAML_BOOLEAN_ON));
  mrb_define_const(mrb, klass, "SUPPORT_BOOLEAN_YES", mrb_bool_value(MRUBY_YAML_BOOLEAN_YES));
  mrb_define_const(mrb, klass, "SUPPORT_BOOLEAN_SHORTHAND_YES", mrb_bool_value(MRUBY_YAML_BOOLEAN_SHORTHAND_YES));
  mrb_define_const(mrb, klass, "SUPPORT_BOOLEAN_OFF", mrb_bool_value(MRUBY_YAML_BOOLEAN_OFF));
  mrb_define_const(mrb, klass, "SUPPORT_BOOLEAN_NO", mrb_bool_value(MRUBY_YAML_BOOLEAN_NO));
  mrb_define_const(mrb, klass, "SUPPORT_BOOLEAN_SHORTHAND_NO", mrb_bool_value(MRUBY_YAML_BOOLEAN_SHORTHAND_NO));
}
Exemple #22
0
void mrb_mruby_curses_gem_init(mrb_state *mrb)
{
    struct RClass *curses;
    curses = mrb_define_class(mrb, "Curses", mrb->object_class);
    MRB_SET_INSTANCE_TT(curses, MRB_TT_DATA);

    mrb_define_method(mrb, curses, "initialize", mrb_curses_init, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "initscr", mrb_curses_initscr, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "cbreak", mrb_curses_cbreak, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "nocbreak", mrb_curses_cbreak, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "echo", mrb_curses_noecho, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "noecho", mrb_curses_noecho, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "keypad", mrb_curses_keypad, MRB_ARGS_ANY());
    mrb_define_class_method(mrb, curses, "clear", mrb_curses_clear, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "addstr", mrb_curses_addstr, MRB_ARGS_REQ(1));
    mrb_define_class_method(mrb, curses, "move", mrb_curses_move, MRB_ARGS_ANY());
    mrb_define_class_method(mrb, curses, "endwin", mrb_curses_endwin, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "start_color", mrb_curses_start_color, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "init_pair", mrb_curses_init_pair, MRB_ARGS_ANY());
    mrb_define_class_method(mrb, curses, "coloron", mrb_curses_coloron, MRB_ARGS_REQ(1));
    mrb_define_class_method(mrb, curses, "coloroff", mrb_curses_coloroff, MRB_ARGS_REQ(1));
    mrb_define_class_method(mrb, curses, "wbkgd", mrb_curses_wbkgd, MRB_ARGS_REQ(1));

    mrb_define_class_method(mrb, curses, "echoline", mrb_curses_echoline, MRB_ARGS_ANY());
    mrb_define_class_method(mrb, curses, "ewaddstr", mrb_curses_ewaddstr, MRB_ARGS_REQ(1));
    mrb_define_class_method(mrb, curses, "ewmove", mrb_curses_ewmove, MRB_ARGS_ANY());
    mrb_define_class_method(mrb, curses, "refresh", mrb_curses_refresh, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "ewgetstr", mrb_curses_ewgetstr, MRB_ARGS_NONE());

    mrb_define_class_method(mrb, curses, "screen_rows", mrb_curses_screen_rows, MRB_ARGS_NONE());
    mrb_define_class_method(mrb, curses, "screen_cols", mrb_curses_screen_cols, MRB_ARGS_NONE());

    mrb_define_const(mrb, curses, "COLOR_BLACK",  mrb_fixnum_value(COLOR_BLACK));
    mrb_define_const(mrb, curses, "COLOR_RED",  mrb_fixnum_value(COLOR_RED));
    mrb_define_const(mrb, curses, "COLOR_GREEN",  mrb_fixnum_value(COLOR_GREEN));
    mrb_define_const(mrb, curses, "COLOR_YELLOW",  mrb_fixnum_value(COLOR_YELLOW));
    mrb_define_const(mrb, curses, "COLOR_BLUE",  mrb_fixnum_value(COLOR_BLUE));
    mrb_define_const(mrb, curses, "COLOR_MAGENTA",  mrb_fixnum_value(COLOR_MAGENTA));
    mrb_define_const(mrb, curses, "COLOR_CYAN",  mrb_fixnum_value(COLOR_CYAN));
    mrb_define_const(mrb, curses, "COLOR_WHITE",  mrb_fixnum_value(COLOR_WHITE));

    DONE;
}
Exemple #23
0
void
mrb_mjruby_gem_init(mrb_state *mrb)
{
  struct RClass *java_support;

  mrb_define_method(mrb, mrb->kernel_module, "exec_java",  mrb_java_support_exec, MRB_ARGS_ANY());

  java_support = mrb_define_class(mrb, "JavaSupport", mrb->object_class);
  mrb_define_const(mrb, java_support, "JAVA_EXE", mrb_str_new_cstr(mrb, JAVA_EXE));
  mrb_define_const(mrb, java_support, "JAVA_SERVER_DL", mrb_str_new_cstr(mrb, JAVA_SERVER_DL));
  mrb_define_const(mrb, java_support, "JAVA_CLIENT_DL", mrb_str_new_cstr(mrb, JAVA_CLIENT_DL));
  mrb_define_const(mrb, java_support, "JLI_DL", mrb_str_new_cstr(mrb, JLI_DL));
  mrb_define_const(mrb, java_support, "SYSTEM_SHELL", mrb_str_new_cstr(mrb, SYSTEM_SHELL));
  mrb_define_const(mrb, java_support, "DEFAULT_JAVA_OPTS", mrb_str_new_cstr(mrb, DEFAULT_JAVA_OPTS));

  mrb_define_method(mrb, java_support, "find_native_java",  mrb_find_native_java, MRB_ARGS_ANY());

}
Exemple #24
0
void mrb_mruby_uv_gem_test(mrb_state* mrb) {
  mrb_define_method(mrb, mrb->object_class, "raise_signal", raise_signal, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, mrb->kernel_module, "get_work_result", get_work_result, MRB_ARGS_NONE());
  mrb_define_const(mrb, mrb->object_class, "WorkCFunc", mrb_obj_value(mrb_proc_new_cfunc(mrb, work_cfunc)));
}
Exemple #25
0
void
mrb_define_global_const(mrb_state *mrb, const char *name, mrb_value val)
{
    mrb_define_const(mrb, mrb->object_class, name, val);
}
Exemple #26
0
void
grn_mrb_expr_init(grn_ctx *ctx)
{
  mrb_state *mrb = ctx->impl->mrb.state;
  struct RClass *module = ctx->impl->mrb.module;
  struct RClass *object_class = ctx->impl->mrb.object_class;
  struct RClass *klass;

  klass = mrb_define_class_under(mrb, module, "ScanInfo", mrb->object_class);
  MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA);
  mrb_define_method(mrb, klass, "initialize",
                    mrb_grn_scan_info_initialize, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "put_index",
                    mrb_grn_scan_info_put_index, MRB_ARGS_REQ(6));
  mrb_define_method(mrb, klass, "op",
                    mrb_grn_scan_info_get_op, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "op=",
                    mrb_grn_scan_info_set_op, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "end=",
                    mrb_grn_scan_info_set_end, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "query=",
                    mrb_grn_scan_info_set_query, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "flags",
                    mrb_grn_scan_info_get_flags, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "flags=",
                    mrb_grn_scan_info_set_flags, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "logical_op",
                    mrb_grn_scan_info_get_logical_op, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "logical_op=",
                    mrb_grn_scan_info_set_logical_op, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "max_interval",
                    mrb_grn_scan_info_get_max_interval, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "max_interval=",
                    mrb_grn_scan_info_set_max_interval, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "similarity_threshold",
                    mrb_grn_scan_info_get_similarity_threshold, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "similarity_threshold=",
                    mrb_grn_scan_info_set_similarity_threshold, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "get_arg",
                    mrb_grn_scan_info_get_arg, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "push_arg",
                    mrb_grn_scan_info_push_arg, MRB_ARGS_REQ(1));

  klass = mrb_define_class_under(mrb, module,
                                 "ExpressionCode", mrb->object_class);
  MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA);
  mrb_define_method(mrb, klass, "initialize",
                    mrb_grn_expr_code_initialize, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "inspect",
                    mrb_grn_expr_code_inspect, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "weight",
                    mrb_grn_expr_code_get_weight, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "value",
                    mrb_grn_expr_code_get_value, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "op",
                    mrb_grn_expr_code_get_op, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "flags",
                    mrb_grn_expr_code_get_flags, MRB_ARGS_NONE());

  {
    struct RClass *expression_code_class = klass;
    struct RClass *flags_module;
    flags_module = mrb_define_module_under(mrb, expression_code_class, "Flags");
    mrb_define_const(mrb, flags_module, "RELATIONAL_EXPRESSION",
                     mrb_fixnum_value(GRN_EXPR_CODE_RELATIONAL_EXPRESSION));
  }

  klass = mrb_define_class_under(mrb, module, "Expression", object_class);
  MRB_SET_INSTANCE_TT(klass, MRB_TT_DATA);

  mrb_define_singleton_method(mrb, (struct RObject *)klass, "create",
                              mrb_grn_expression_singleton_create,
                              MRB_ARGS_REQ(1));

  mrb_define_method(mrb, klass, "initialize",
                    mrb_grn_expression_initialize, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "codes",
                    mrb_grn_expression_codes, MRB_ARGS_NONE());
  mrb_define_method(mrb, klass, "get_var_by_offset",
                    mrb_grn_expression_get_var_by_offset, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "take_object",
                    mrb_grn_expression_take_object, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, klass, "allocate_constant",
                    mrb_grn_expression_allocate_constant, MRB_ARGS_REQ(1));

  mrb_define_method(mrb, klass, "parse",
                    mrb_grn_expression_parse, MRB_ARGS_ARG(1, 1));

  mrb_define_method(mrb, klass, "append_object",
                    mrb_grn_expression_append_object, MRB_ARGS_REQ(2));
  mrb_define_method(mrb, klass, "append_constant",
                    mrb_grn_expression_append_constant, MRB_ARGS_REQ(3));
  mrb_define_method(mrb, klass, "append_operator",
                    mrb_grn_expression_append_operator, MRB_ARGS_REQ(2));
}
void
mrb_mruby_rx_gpio_gem_init(mrb_state* mrb) {


    struct RClass *gpio;
    gpio = mrb_define_class(mrb, "Rx_gpio", mrb->object_class);

    mrb_define_const(mrb,gpio, "LED0", mrb_fixnum_value(100));
    mrb_define_const(mrb,gpio, "LED1", mrb_fixnum_value(101));
    mrb_define_const(mrb,gpio, "LED2", mrb_fixnum_value(102));
    mrb_define_const(mrb,gpio, "LED3", mrb_fixnum_value(103));

    mrb_define_const(mrb,gpio, "IO2", mrb_fixnum_value(202));
    mrb_define_const(mrb,gpio, "IO3", mrb_fixnum_value(203));
    mrb_define_const(mrb,gpio, "IO4", mrb_fixnum_value(204));
    mrb_define_const(mrb,gpio, "IO5", mrb_fixnum_value(205));

    mrb_define_const(mrb,gpio, "IO44", mrb_fixnum_value(210));
    mrb_define_const(mrb,gpio, "IO45", mrb_fixnum_value(211));
    mrb_define_const(mrb,gpio, "IO46", mrb_fixnum_value(212));
    mrb_define_const(mrb,gpio, "IO47", mrb_fixnum_value(213));
    mrb_define_const(mrb,gpio, "IO48", mrb_fixnum_value(214));
    mrb_define_const(mrb,gpio, "IO49", mrb_fixnum_value(215));
    mrb_define_const(mrb,gpio, "IO50", mrb_fixnum_value(216));
    mrb_define_const(mrb,gpio, "IO51", mrb_fixnum_value(217));

    mrb_define_const(mrb,gpio, "IO11", mrb_fixnum_value(249));
    mrb_define_const(mrb,gpio, "IO12", mrb_fixnum_value(250));


    mrb_define_const(mrb,gpio, "IO2IN", mrb_fixnum_value(302));
    mrb_define_const(mrb,gpio, "IO3IN", mrb_fixnum_value(303));
    mrb_define_const(mrb,gpio, "IO4IN", mrb_fixnum_value(304));
    mrb_define_const(mrb,gpio, "IO5IN", mrb_fixnum_value(305));

    mrb_define_const(mrb,gpio, "IO44IN", mrb_fixnum_value(310));
    mrb_define_const(mrb,gpio, "IO45IN", mrb_fixnum_value(311));
    mrb_define_const(mrb,gpio, "IO46IN", mrb_fixnum_value(312));
    mrb_define_const(mrb,gpio, "IO47IN", mrb_fixnum_value(313));
    mrb_define_const(mrb,gpio, "IO48IN", mrb_fixnum_value(314));
    mrb_define_const(mrb,gpio, "IO49IN", mrb_fixnum_value(315));
    mrb_define_const(mrb,gpio, "IO50IN", mrb_fixnum_value(316));
    mrb_define_const(mrb,gpio, "IO51IN", mrb_fixnum_value(317));
    mrb_define_const(mrb,gpio, "IO12IN", mrb_fixnum_value(350));

    /* methods */
    mrb_define_method(mrb, gpio, "initialize", mrb_rx_gpio_initialize, ARGS_REQ(1));
    mrb_define_method(mrb, gpio, "on", mrb_rx_gpio_on, ARGS_NONE());
    mrb_define_method(mrb, gpio, "off", mrb_rx_gpio_off, ARGS_NONE());
    mrb_define_method(mrb, gpio, "in", mrb_rx_gpio_input, ARGS_NONE());

}
Exemple #28
0
void
grn_mrb_id_init(grn_ctx *ctx)
{
  mrb_state *mrb = ctx->impl->mrb.state;
  struct RClass *module = ctx->impl->mrb.module;
  struct RClass *id_module;

  id_module = mrb_define_module_under(mrb, module, "ID");

  mrb_define_const(mrb, id_module, "VOID",
                   mrb_fixnum_value(GRN_DB_VOID));
  mrb_define_const(mrb, id_module, "DB",
                   mrb_fixnum_value(GRN_DB_DB));
  mrb_define_const(mrb, id_module, "OBJECT",
                   mrb_fixnum_value(GRN_DB_OBJECT));
  mrb_define_const(mrb, id_module, "BOOL",
                   mrb_fixnum_value(GRN_DB_BOOL));
  mrb_define_const(mrb, id_module, "INT8",
                   mrb_fixnum_value(GRN_DB_INT8));
  mrb_define_const(mrb, id_module, "UINT8",
                   mrb_fixnum_value(GRN_DB_UINT8));
  mrb_define_const(mrb, id_module, "INT16",
                   mrb_fixnum_value(GRN_DB_INT16));
  mrb_define_const(mrb, id_module, "UINT16",
                   mrb_fixnum_value(GRN_DB_UINT16));
  mrb_define_const(mrb, id_module, "INT32",
                   mrb_fixnum_value(GRN_DB_INT32));
  mrb_define_const(mrb, id_module, "UINT32",
                   mrb_fixnum_value(GRN_DB_UINT32));
  mrb_define_const(mrb, id_module, "INT64",
                   mrb_fixnum_value(GRN_DB_INT64));
  mrb_define_const(mrb, id_module, "UINT64",
                   mrb_fixnum_value(GRN_DB_UINT64));
  mrb_define_const(mrb, id_module, "FLOAT",
                   mrb_fixnum_value(GRN_DB_FLOAT));
  mrb_define_const(mrb, id_module, "TIME",
                   mrb_fixnum_value(GRN_DB_TIME));
  mrb_define_const(mrb, id_module, "SHORT_TEXT",
                   mrb_fixnum_value(GRN_DB_SHORT_TEXT));
  mrb_define_const(mrb, id_module, "TEXT",
                   mrb_fixnum_value(GRN_DB_TEXT));
  mrb_define_const(mrb, id_module, "LONG_TEXT",
                   mrb_fixnum_value(GRN_DB_LONG_TEXT));
  mrb_define_const(mrb, id_module, "TOKYO_GEO_POINT",
                   mrb_fixnum_value(GRN_DB_TOKYO_GEO_POINT));
  mrb_define_const(mrb, id_module, "WGS84_GEO_POINT",
                   mrb_fixnum_value(GRN_DB_WGS84_GEO_POINT));
}
Exemple #29
0
void
mruby_sdl2_events_init(mrb_state *mrb)
{
  mod_Input = mrb_define_module_under(mrb, mod_SDL2, "Input");

  class_Event       = mrb_define_class_under(mrb, mod_Input, "Event",       mrb->object_class);

  class_ControllerAxisEvent   = mrb_define_class_under(mrb, mod_Input, "ControllerAxisEvent",   class_Event);
  class_ControllerButtonEvent = mrb_define_class_under(mrb, mod_Input, "ControllerButtonEvent", class_Event);
  class_ControllerDeviceEvent = mrb_define_class_under(mrb, mod_Input, "ControllerDeviceEvent", class_Event);
  class_DollarGestureEvent    = mrb_define_class_under(mrb, mod_Input, "DollarGestureEvent",    class_Event);
  class_DropEvent             = mrb_define_class_under(mrb, mod_Input, "DropEvent",             class_Event);
  class_JoyAxisEvent          = mrb_define_class_under(mrb, mod_Input, "JoyAxisEvent",          class_Event);
  class_JoyBallEvent          = mrb_define_class_under(mrb, mod_Input, "JoyBallEvent",          class_Event);
  class_JoyButtonEvent        = mrb_define_class_under(mrb, mod_Input, "JoyButtonEvent",        class_Event);
  class_JoyHatEvent           = mrb_define_class_under(mrb, mod_Input, "JoyHatEvent",           class_Event);
  class_JoyDeviceEvent        = mrb_define_class_under(mrb, mod_Input, "JoyDeviceEvent",        class_Event);
  class_KeyboardEvent         = mrb_define_class_under(mrb, mod_Input, "KeyboardEvent",         class_Event);
  class_MouseButtonEvent      = mrb_define_class_under(mrb, mod_Input, "MouseButtonEvent",      class_Event);
  class_MouseMotionEvent      = mrb_define_class_under(mrb, mod_Input, "MouseMotionEvent",      class_Event);
  class_MouseWheelEvent       = mrb_define_class_under(mrb, mod_Input, "MouseWheelEvent",       class_Event);
  class_MultiGestureEvent     = mrb_define_class_under(mrb, mod_Input, "MultiGestureEvent",     class_Event);
  class_OsEvent               = mrb_define_class_under(mrb, mod_Input, "OsEvent",               class_Event);
  class_QuitEvent             = mrb_define_class_under(mrb, mod_Input, "QuitEvent",             class_Event);
  class_SysWMEvent            = mrb_define_class_under(mrb, mod_Input, "SysWMEvent",            class_Event);
  class_TextEditingEvent      = mrb_define_class_under(mrb, mod_Input, "TextEditingEvent",      class_Event);
  class_TextInputEvent        = mrb_define_class_under(mrb, mod_Input, "TextInputEvent",        class_Event);
  class_TouchFingerEvent      = mrb_define_class_under(mrb, mod_Input, "TouchFingerEvent",      class_Event);
  class_UserEvent             = mrb_define_class_under(mrb, mod_Input, "UserEvent",             class_Event);
  class_WindowEvent           = mrb_define_class_under(mrb, mod_Input, "WindowEvent",           class_Event);

  MRB_SET_INSTANCE_TT(class_Event,                 MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_ControllerAxisEvent,   MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_ControllerButtonEvent, MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_ControllerDeviceEvent, MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_DollarGestureEvent,    MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_DropEvent,             MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_JoyAxisEvent,          MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_JoyBallEvent,          MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_JoyButtonEvent,        MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_JoyHatEvent,           MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_JoyDeviceEvent,        MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_KeyboardEvent,         MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_MouseButtonEvent,      MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_MouseMotionEvent,      MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_MouseWheelEvent,       MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_MultiGestureEvent,     MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_OsEvent,               MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_QuitEvent,             MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_SysWMEvent,            MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_TextEditingEvent,      MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_TextInputEvent,        MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_TouchFingerEvent,      MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_UserEvent,             MRB_TT_DATA);
  MRB_SET_INSTANCE_TT(class_WindowEvent,           MRB_TT_DATA);

  mrb_define_module_function(mrb, mod_Input, "poll",            mrb_sdl2_input_poll,              MRB_ARGS_NONE());
  mrb_define_module_function(mrb, mod_Input, "wait",            mrb_sdl2_input_wait,              MRB_ARGS_NONE());
  mrb_define_module_function(mrb, mod_Input, "wait_timeout",    mrb_sdl2_input_wait_timeout,      MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mod_Input, "event_state",     mrb_sdl2_input_event_state,       MRB_ARGS_REQ(2));
  mrb_define_module_function(mrb, mod_Input, "flush",           mrb_sdl2_input_flush_event,       MRB_ARGS_REQ(1) | MRB_ARGS_OPT(1));
  mrb_define_module_function(mrb, mod_Input, "has_events?",     mrb_sdl2_input_has_events,        MRB_ARGS_REQ(1) | MRB_ARGS_OPT(1));
  mrb_define_module_function(mrb, mod_Input, "quit_requested?", mrb_sdl2_input_is_quit_requested, MRB_ARGS_NONE());
  mrb_define_module_function(mrb, mod_Input, "register",        mrb_sdl2_input_register,          MRB_ARGS_REQ(1));
  mrb_define_module_function(mrb, mod_Input, "push",            mrb_sdl2_input_push,              MRB_ARGS_REQ(1));

  mrb_define_method(mrb, class_Event, "type", mrb_sdl2_input_event_get_type, MRB_ARGS_NONE());

  mrb_define_method(mrb, class_KeyboardEvent, "timestamp", mrb_sdl2_input_keyboardevent_get_timestamp, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_KeyboardEvent, "window_id", mrb_sdl2_input_keyboardevent_get_window_id, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_KeyboardEvent, "state",     mrb_sdl2_input_keyboardevent_get_state,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_KeyboardEvent, "repeat",    mrb_sdl2_input_keyboardevent_get_repeat,    MRB_ARGS_NONE());
  mrb_define_method(mrb, class_KeyboardEvent, "keysym",    mrb_sdl2_input_keyboardevent_get_keysym,    MRB_ARGS_NONE());

  mrb_define_method(mrb, class_MouseButtonEvent, "timestamp", mrb_sdl2_input_mousebuttonevent_get_timestamp, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseButtonEvent, "window_id", mrb_sdl2_input_mousebuttonevent_get_window_id, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseButtonEvent, "which",     mrb_sdl2_input_mousebuttonevent_get_which,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseButtonEvent, "button",    mrb_sdl2_input_mousebuttonevent_get_button,    MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseButtonEvent, "state",     mrb_sdl2_input_mousebuttonevent_get_state,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseButtonEvent, "x",         mrb_sdl2_input_mousebuttonevent_get_x,         MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseButtonEvent, "y",         mrb_sdl2_input_mousebuttonevent_get_y,         MRB_ARGS_NONE());

  mrb_define_method(mrb, class_MouseMotionEvent, "timestamp", mrb_sdl2_input_mousemotionevent_get_timestamp, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseMotionEvent, "window_id", mrb_sdl2_input_mousemotionevent_get_window_id, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseMotionEvent, "which",     mrb_sdl2_input_mousemotionevent_get_which,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseMotionEvent, "state",     mrb_sdl2_input_mousemotionevent_get_state,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseMotionEvent, "x",         mrb_sdl2_input_mousemotionevent_get_x,         MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseMotionEvent, "y",         mrb_sdl2_input_mousemotionevent_get_y,         MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseMotionEvent, "xrel",      mrb_sdl2_input_mousemotionevent_get_xrel,      MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseMotionEvent, "yrel",      mrb_sdl2_input_mousemotionevent_get_yrel,      MRB_ARGS_NONE());

  mrb_define_method(mrb, class_MouseWheelEvent, "timestamp", mrb_sdl2_input_mousewheelevent_get_timestamp, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseWheelEvent, "window_id", mrb_sdl2_input_mousewheelevent_get_window_id, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseWheelEvent, "which",     mrb_sdl2_input_mousewheelevent_get_which,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseWheelEvent, "x",         mrb_sdl2_input_mousewheelevent_get_x,         MRB_ARGS_NONE());
  mrb_define_method(mrb, class_MouseWheelEvent, "y",         mrb_sdl2_input_mousewheelevent_get_y,         MRB_ARGS_NONE());

  mrb_define_method(mrb, class_QuitEvent, "timestamp", mrb_sdl2_input_quitevent_timestamp, MRB_ARGS_NONE());

  mrb_define_method(mrb, class_UserEvent, "initialize",  mrb_sdl2_input_userevent_initialize,    MRB_ARGS_REQ(2) | MRB_ARGS_OPT(2));
  mrb_define_method(mrb, class_UserEvent, "type=",       mrb_sdl2_input_userevent_set_type,      MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_UserEvent, "timestamp",   mrb_sdl2_input_userevent_get_timestamp, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_UserEvent, "timestamp=",  mrb_sdl2_input_userevent_set_timestamp, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_UserEvent, "window_id",   mrb_sdl2_input_userevent_get_window_id, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_UserEvent, "window_id=",  mrb_sdl2_input_userevent_set_window_id, MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_UserEvent, "code",        mrb_sdl2_input_userevent_get_code,      MRB_ARGS_NONE());
  mrb_define_method(mrb, class_UserEvent, "code=",       mrb_sdl2_input_userevent_set_code,      MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_UserEvent, "data1",       mrb_sdl2_input_userevent_get_data1,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_UserEvent, "data1=",      mrb_sdl2_input_userevent_set_data1,     MRB_ARGS_REQ(1));
  mrb_define_method(mrb, class_UserEvent, "data2",       mrb_sdl2_input_userevent_get_data2,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_UserEvent, "data2=",      mrb_sdl2_input_userevent_set_data2,     MRB_ARGS_REQ(1));

  mrb_define_method(mrb, class_WindowEvent, "timestamp", mrb_sdl2_input_windowevent_get_timestamp, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_WindowEvent, "window_id", mrb_sdl2_input_windowevent_get_window_id, MRB_ARGS_NONE());
  mrb_define_method(mrb, class_WindowEvent, "event",     mrb_sdl2_input_windowevent_get_event,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_WindowEvent, "data1",     mrb_sdl2_input_windowevent_get_data1,     MRB_ARGS_NONE());
  mrb_define_method(mrb, class_WindowEvent, "data2",     mrb_sdl2_input_windowevent_get_data2,     MRB_ARGS_NONE());

  int arena_size = mrb_gc_arena_save(mrb);

  /* SDL_EventType */
  mrb_define_const(mrb, mod_Input, "SDL_FIRSTEVENT",               mrb_fixnum_value(SDL_FIRSTEVENT));
  mrb_define_const(mrb, mod_Input, "SDL_QUIT",                     mrb_fixnum_value(SDL_QUIT));
  mrb_define_const(mrb, mod_Input, "SDL_APP_TERMINATING",          mrb_fixnum_value(SDL_APP_TERMINATING));
  mrb_define_const(mrb, mod_Input, "SDL_APP_LOWMEMORY",            mrb_fixnum_value(SDL_APP_LOWMEMORY));
  mrb_define_const(mrb, mod_Input, "SDL_APP_WILLENTERBACKGROUND",  mrb_fixnum_value(SDL_APP_WILLENTERBACKGROUND));
  mrb_define_const(mrb, mod_Input, "SDL_APP_DIDENTERBACKGROUND",   mrb_fixnum_value(SDL_APP_DIDENTERBACKGROUND));
  mrb_define_const(mrb, mod_Input, "SDL_APP_WILLENTERFOREGROUND",  mrb_fixnum_value(SDL_APP_WILLENTERFOREGROUND));
  mrb_define_const(mrb, mod_Input, "SDL_APP_DIDENTERFOREGROUND",   mrb_fixnum_value(SDL_APP_DIDENTERFOREGROUND));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT",              mrb_fixnum_value(SDL_WINDOWEVENT));
  mrb_define_const(mrb, mod_Input, "SDL_SYSWMEVENT",               mrb_fixnum_value(SDL_SYSWMEVENT));
  mrb_define_const(mrb, mod_Input, "SDL_KEYDOWN",                  mrb_fixnum_value(SDL_KEYDOWN));
  mrb_define_const(mrb, mod_Input, "SDL_KEYUP",                    mrb_fixnum_value(SDL_KEYUP));
  mrb_define_const(mrb, mod_Input, "SDL_TEXTEDITING",              mrb_fixnum_value(SDL_TEXTEDITING));
  mrb_define_const(mrb, mod_Input, "SDL_TEXTINPUT",                mrb_fixnum_value(SDL_TEXTINPUT));
  mrb_define_const(mrb, mod_Input, "SDL_MOUSEMOTION",              mrb_fixnum_value(SDL_MOUSEMOTION));
  mrb_define_const(mrb, mod_Input, "SDL_MOUSEBUTTONDOWN",          mrb_fixnum_value(SDL_MOUSEBUTTONDOWN));
  mrb_define_const(mrb, mod_Input, "SDL_MOUSEBUTTONUP",            mrb_fixnum_value(SDL_MOUSEBUTTONUP));
  mrb_define_const(mrb, mod_Input, "SDL_MOUSEWHEEL",               mrb_fixnum_value(SDL_MOUSEWHEEL));
  mrb_define_const(mrb, mod_Input, "SDL_JOYAXISMOTION",            mrb_fixnum_value(SDL_JOYAXISMOTION));
  mrb_define_const(mrb, mod_Input, "SDL_JOYBALLMOTION",            mrb_fixnum_value(SDL_JOYBALLMOTION));
  mrb_define_const(mrb, mod_Input, "SDL_JOYHATMOTION",             mrb_fixnum_value(SDL_JOYHATMOTION));
  mrb_define_const(mrb, mod_Input, "SDL_JOYBUTTONDOWN",            mrb_fixnum_value(SDL_JOYBUTTONDOWN));
  mrb_define_const(mrb, mod_Input, "SDL_JOYBUTTONUP",              mrb_fixnum_value(SDL_JOYBUTTONUP));
  mrb_define_const(mrb, mod_Input, "SDL_JOYDEVICEADDED",           mrb_fixnum_value(SDL_JOYDEVICEADDED));
  mrb_define_const(mrb, mod_Input, "SDL_JOYDEVICEREMOVED",         mrb_fixnum_value(SDL_JOYDEVICEREMOVED));
  mrb_define_const(mrb, mod_Input, "SDL_CONTROLLERAXISMOTION",     mrb_fixnum_value(SDL_CONTROLLERAXISMOTION));
  mrb_define_const(mrb, mod_Input, "SDL_CONTROLLERBUTTONDOWN",     mrb_fixnum_value(SDL_CONTROLLERBUTTONDOWN));
  mrb_define_const(mrb, mod_Input, "SDL_CONTROLLERBUTTONUP",       mrb_fixnum_value(SDL_CONTROLLERBUTTONUP));
  mrb_define_const(mrb, mod_Input, "SDL_CONTROLLERDEVICEADDED",    mrb_fixnum_value(SDL_CONTROLLERDEVICEADDED));
  mrb_define_const(mrb, mod_Input, "SDL_CONTROLLERDEVICEREMOVED",  mrb_fixnum_value(SDL_CONTROLLERDEVICEREMOVED));
  mrb_define_const(mrb, mod_Input, "SDL_CONTROLLERDEVICEREMAPPED", mrb_fixnum_value(SDL_CONTROLLERDEVICEREMAPPED));
  mrb_define_const(mrb, mod_Input, "SDL_FINGERDOWN",               mrb_fixnum_value(SDL_FINGERDOWN));
  mrb_define_const(mrb, mod_Input, "SDL_FINGERUP",                 mrb_fixnum_value(SDL_FINGERUP));
  mrb_define_const(mrb, mod_Input, "SDL_FINGERMOTION",             mrb_fixnum_value(SDL_FINGERMOTION));
  mrb_define_const(mrb, mod_Input, "SDL_DOLLARGESTURE",            mrb_fixnum_value(SDL_DOLLARGESTURE));
  mrb_define_const(mrb, mod_Input, "SDL_DOLLARRECORD",             mrb_fixnum_value(SDL_DOLLARRECORD));
  mrb_define_const(mrb, mod_Input, "SDL_MULTIGESTURE",             mrb_fixnum_value(SDL_MULTIGESTURE));
  mrb_define_const(mrb, mod_Input, "SDL_CLIPBOARDUPDATE",          mrb_fixnum_value(SDL_CLIPBOARDUPDATE));
  mrb_define_const(mrb, mod_Input, "SDL_DROPFILE",                 mrb_fixnum_value(SDL_DROPFILE));
  mrb_define_const(mrb, mod_Input, "SDL_USEREVENT",                mrb_fixnum_value(SDL_USEREVENT));
  mrb_define_const(mrb, mod_Input, "SDL_LASTEVENT",                mrb_fixnum_value(SDL_LASTEVENT));

  mrb_gc_arena_restore(mrb, arena_size);
  arena_size = mrb_gc_arena_save(mrb);

  /* SDL_WindowEventID */
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_NONE",         mrb_fixnum_value(SDL_WINDOWEVENT_NONE));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_SHOWN",        mrb_fixnum_value(SDL_WINDOWEVENT_SHOWN));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_HIDDEN",       mrb_fixnum_value(SDL_WINDOWEVENT_HIDDEN));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_EXPOSED",      mrb_fixnum_value(SDL_WINDOWEVENT_EXPOSED));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_MOVED",        mrb_fixnum_value(SDL_WINDOWEVENT_MOVED));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_RESIZED",      mrb_fixnum_value(SDL_WINDOWEVENT_RESIZED));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_SIZE_CHANGED", mrb_fixnum_value(SDL_WINDOWEVENT_SIZE_CHANGED));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_MINIMIZED",    mrb_fixnum_value(SDL_WINDOWEVENT_MINIMIZED));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_MAXIMIZED",    mrb_fixnum_value(SDL_WINDOWEVENT_MAXIMIZED));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_RESTORED",     mrb_fixnum_value(SDL_WINDOWEVENT_RESTORED));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_ENTER",        mrb_fixnum_value(SDL_WINDOWEVENT_ENTER));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_LEAVE",        mrb_fixnum_value(SDL_WINDOWEVENT_LEAVE));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_FOCUS_GAINED", mrb_fixnum_value(SDL_WINDOWEVENT_FOCUS_GAINED));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_FOCUS_LOST",   mrb_fixnum_value(SDL_WINDOWEVENT_FOCUS_LOST));
  mrb_define_const(mrb, mod_Input, "SDL_WINDOWEVENT_CLOSE",        mrb_fixnum_value(SDL_WINDOWEVENT_CLOSE));

  /* Event state */
  mrb_define_const(mrb, mod_Input, "SDL_QUERY",   mrb_fixnum_value(SDL_QUERY));
  mrb_define_const(mrb, mod_Input, "SDL_IGNORE",  mrb_fixnum_value(SDL_IGNORE));
  mrb_define_const(mrb, mod_Input, "SDL_DISABLE", mrb_fixnum_value(SDL_DISABLE));
  mrb_define_const(mrb, mod_Input, "SDL_ENABLE",  mrb_fixnum_value(SDL_ENABLE));

  mrb_gc_arena_restore(mrb, arena_size);
}
Exemple #30
0
void
mrb_init_class(mrb_state *mrb)
{
  struct RClass *bob;           /* BasicObject */
  struct RClass *obj;           /* Object */
  struct RClass *mod;           /* Module */
  struct RClass *cls;           /* Class */
  //struct RClass *krn;    /* Kernel */

  /* boot class hierarchy */
  bob = boot_defclass(mrb, 0);
  obj = boot_defclass(mrb, bob); mrb->object_class = obj;
  mod = boot_defclass(mrb, obj); mrb->module_class = mod;/* obj -> mod */
  cls = boot_defclass(mrb, mod); mrb->class_class = cls; /* obj -> cls */
  /* fix-up loose ends */
  bob->c = obj->c = mod->c = cls->c = cls;
  make_metaclass(mrb, bob);
  make_metaclass(mrb, obj);
  make_metaclass(mrb, mod);
  make_metaclass(mrb, cls);

  /* name basic classes */
  mrb_define_const(mrb, bob, "BasicObject", mrb_obj_value(bob));
  mrb_define_const(mrb, obj, "BasicObject", mrb_obj_value(bob));
  mrb_define_const(mrb, obj, "Object",      mrb_obj_value(obj));
  mrb_define_const(mrb, obj, "Module",      mrb_obj_value(mod));
  mrb_define_const(mrb, obj, "Class",       mrb_obj_value(cls));

  /* name each classes */
  mrb_name_class(mrb, bob, mrb_intern(mrb, "BasicObject"));
  mrb_name_class(mrb, obj, mrb_intern(mrb, "Object"));
  mrb_name_class(mrb, mod, mrb_intern(mrb, "Module"));
  mrb_name_class(mrb, cls, mrb_intern(mrb, "Class"));

  mrb_undef_method(mrb, mod, "new");
  MRB_SET_INSTANCE_TT(cls, MRB_TT_CLASS);
  mrb_define_method(mrb, bob, "initialize",              mrb_bob_init,             MRB_ARGS_NONE());
  mrb_define_method(mrb, bob, "!",                       mrb_bob_not,              MRB_ARGS_NONE());
  mrb_define_method(mrb, bob, "method_missing",          mrb_bob_missing,          MRB_ARGS_ANY());  /* 15.3.1.3.30 */

  mrb_define_class_method(mrb, cls, "new",               mrb_class_new_class,      MRB_ARGS_ANY());
  mrb_define_method(mrb, cls, "superclass",              mrb_class_superclass,     MRB_ARGS_NONE()); /* 15.2.3.3.4 */
  mrb_define_method(mrb, cls, "new",                     mrb_instance_new,         MRB_ARGS_ANY());  /* 15.2.3.3.3 */
  mrb_define_method(mrb, cls, "inherited",               mrb_bob_init,             MRB_ARGS_REQ(1));

  MRB_SET_INSTANCE_TT(mod, MRB_TT_MODULE);
  mrb_define_method(mrb, mod, "class_variable_defined?", mrb_mod_cvar_defined,     MRB_ARGS_REQ(1)); /* 15.2.2.4.16 */
  mrb_define_method(mrb, mod, "class_variable_get",      mrb_mod_cvar_get,         MRB_ARGS_REQ(1)); /* 15.2.2.4.17 */
  mrb_define_method(mrb, mod, "class_variable_set",      mrb_mod_cvar_set,         MRB_ARGS_REQ(2)); /* 15.2.2.4.18 */
  mrb_define_method(mrb, mod, "extend_object",           mrb_mod_extend_object,    MRB_ARGS_REQ(1)); /* 15.2.2.4.25 */
  mrb_define_method(mrb, mod, "extended",                mrb_bob_init,             MRB_ARGS_REQ(1)); /* 15.2.2.4.26 */
  mrb_define_method(mrb, mod, "include",                 mrb_mod_include,          MRB_ARGS_ANY());  /* 15.2.2.4.27 */
  mrb_define_method(mrb, mod, "include?",                mrb_mod_include_p,        MRB_ARGS_REQ(1)); /* 15.2.2.4.28 */
  mrb_define_method(mrb, mod, "append_features",         mrb_mod_append_features,  MRB_ARGS_REQ(1)); /* 15.2.2.4.10 */
  mrb_define_method(mrb, mod, "class_eval",              mrb_mod_module_eval,      MRB_ARGS_ANY());  /* 15.2.2.4.15 */
  mrb_define_method(mrb, mod, "included",                mrb_bob_init,             MRB_ARGS_REQ(1)); /* 15.2.2.4.29 */
  mrb_define_method(mrb, mod, "included_modules",        mrb_mod_included_modules, MRB_ARGS_NONE()); /* 15.2.2.4.30 */
  mrb_define_method(mrb, mod, "instance_methods",        mrb_mod_instance_methods, MRB_ARGS_ANY());  /* 15.2.2.4.33 */
  mrb_define_method(mrb, mod, "method_defined?",         mrb_mod_method_defined,   MRB_ARGS_REQ(1)); /* 15.2.2.4.34 */
  mrb_define_method(mrb, mod, "module_eval",             mrb_mod_module_eval,      MRB_ARGS_ANY());  /* 15.2.2.4.35 */
  mrb_define_method(mrb, mod, "remove_class_variable",   mrb_mod_remove_cvar,      MRB_ARGS_REQ(1)); /* 15.2.2.4.39 */
  mrb_define_method(mrb, mod, "remove_method",           mrb_mod_remove_method,    MRB_ARGS_ANY());  /* 15.2.2.4.41 */
  mrb_define_method(mrb, mod, "to_s",                    mrb_mod_to_s,             MRB_ARGS_NONE());
  mrb_define_method(mrb, mod, "inspect",                 mrb_mod_to_s,             MRB_ARGS_NONE());
  mrb_define_method(mrb, mod, "alias_method",            mrb_mod_alias,            MRB_ARGS_ANY());  /* 15.2.2.4.8 */
  mrb_define_method(mrb, mod, "ancestors",               mrb_mod_ancestors,        MRB_ARGS_NONE()); /* 15.2.2.4.9 */
  mrb_define_method(mrb, mod, "undef_method",            mrb_mod_undef,            MRB_ARGS_ANY());  /* 15.2.2.4.41 */
  mrb_define_method(mrb, mod, "const_defined?",          mrb_mod_const_defined,    MRB_ARGS_REQ(1)); /* 15.2.2.4.20 */
  mrb_define_method(mrb, mod, "const_get",               mrb_mod_const_get,        MRB_ARGS_REQ(1)); /* 15.2.2.4.21 */
  mrb_define_method(mrb, mod, "const_set",               mrb_mod_const_set,        MRB_ARGS_REQ(2)); /* 15.2.2.4.23 */
  mrb_define_method(mrb, mod, "constants",               mrb_mod_constants,        MRB_ARGS_NONE()); /* 15.2.2.4.24 */
  mrb_define_method(mrb, mod, "remove_const",            mrb_mod_remove_const,     MRB_ARGS_REQ(1)); /* 15.2.2.4.40 */
  mrb_define_method(mrb, mod, "define_method",           mod_define_method,        MRB_ARGS_REQ(1));
  mrb_define_method(mrb, mod, "class_variables",         mrb_mod_class_variables,  MRB_ARGS_NONE()); /* 15.2.2.4.19 */
  mrb_define_method(mrb, mod, "===",                     mrb_mod_eqq,              MRB_ARGS_REQ(1));
  mrb_define_class_method(mrb, mod, "constants",         mrb_mod_s_constants,      MRB_ARGS_ANY());  /* 15.2.2.3.1 */

  mrb_undef_method(mrb, cls, "append_features");
  mrb_undef_method(mrb, cls, "extend_object");
}