static mrb_value mrb_mod_eqq(mrb_state *mrb, mrb_value mod) { mrb_value obj; mrb_get_args(mrb, "o", &obj); if (!mrb_obj_is_kind_of(mrb, obj, mrb_class_ptr(mod))) return mrb_false_value(); return mrb_true_value(); }
static mrb_value mrb_mod_eqq(mrb_state *mrb, mrb_value mod) { mrb_value obj; mrb_bool eqq; mrb_get_args(mrb, "o", &obj); eqq = mrb_obj_is_kind_of(mrb, obj, mrb_class_ptr(mod)); return mrb_bool_value(eqq); }
/* * call-seq: * obj.is_a?(class) -> true or false * obj.kind_of?(class) -> true or false * * Returns <code>true</code> if <i>class</i> is the class of * <i>obj</i>, or if <i>class</i> is one of the superclasses of * <i>obj</i> or modules included in <i>obj</i>. * * module M; end * class A * include M * end * class B < A; end * class C < B; end * b = B.new * b.instance_of? A #=> false * b.instance_of? B #=> true * b.instance_of? C #=> false * b.instance_of? M #=> false * b.kind_of? A #=> true * b.kind_of? B #=> true * b.kind_of? C #=> false * b.kind_of? M #=> true */ mrb_value mrb_obj_is_kind_of_m(mrb_state *mrb, mrb_value self) { mrb_value arg; mrb_bool kind_of_p; mrb_get_args(mrb, "C", &arg); kind_of_p = mrb_obj_is_kind_of(mrb, self, mrb_class_ptr(arg)); return mrb_bool_value(kind_of_p); }
static mrb_value range_eql(mrb_state *mrb, mrb_value range) { mrb_value obj; mrb_get_args(mrb, "o", &obj); if (mrb_obj_equal(mrb, range, obj)) return mrb_true_value(); if (!mrb_obj_is_kind_of(mrb, obj, mrb->range_class)) return mrb_false_value(); return mrb_exec_recursive_paired(mrb, recursive_eql, range, obj, &obj); }
static mrb_value make_exception(mrb_state *mrb, int argc, const mrb_value *argv, mrb_bool isstr) { mrb_value mesg; int n; mesg = mrb_nil_value(); switch (argc) { case 0: break; case 1: if (mrb_nil_p(argv[0])) break; if (isstr) { mesg = mrb_check_string_type(mrb, argv[0]); if (!mrb_nil_p(mesg)) { mesg = mrb_exc_new_str(mrb, E_RUNTIME_ERROR, mesg); break; } } n = 0; goto exception_call; case 2: case 3: n = 1; exception_call: { mrb_sym exc = mrb_intern_lit(mrb, "exception"); if (mrb_respond_to(mrb, argv[0], exc)) { mesg = mrb_funcall_argv(mrb, argv[0], exc, n, argv+1); } else { /* undef */ mrb_raise(mrb, E_TYPE_ERROR, "exception class/object expected"); } } break; default: mrb_raisef(mrb, E_ARGUMENT_ERROR, "wrong number of arguments (%S for 0..3)", mrb_fixnum_value(argc)); break; } if (argc > 0) { if (!mrb_obj_is_kind_of(mrb, mesg, mrb->eException_class)) mrb_raise(mrb, mrb->eException_class, "exception object expected"); if (argc > 2) set_backtrace(mrb, mesg, argv[2]); } return mesg; }
MRB_API void mrb_print_backtrace(mrb_state *mrb) { struct print_backtrace_args args; if (!mrb->exc || mrb_obj_is_kind_of(mrb, mrb_obj_value(mrb->exc), E_SYSSTACK_ERROR)) { return; } args.stream = stderr; args.tracehead = TRUE; exc_output_backtrace(mrb, mrb->exc, print_backtrace_i, (void*)&args); }
static mrb_value mrb_to_integer(mrb_state *mrb, mrb_value val, const char *method) { mrb_value v; if (mrb_fixnum_p(val)) return val; v = convert_type(mrb, val, "Integer", method, TRUE); if (!mrb_obj_is_kind_of(mrb, v, mrb->fixnum_class)) { mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %S to Integer (%S#%S gives %S)", val, val, mrb_str_new_cstr(mrb, method), v); } return v; }
static mrb_value mrb_grn_bulk_equal(mrb_state *mrb, mrb_value self) { mrb_value mrb_other; mrb_get_args(mrb, "o", &mrb_other); if (!mrb_obj_is_kind_of(mrb, mrb_other, mrb_class(mrb, self))) { return mrb_false_value(); } return mrb_bool_value(DATA_PTR(self) == DATA_PTR(mrb_other)); }
/* * call-seq: * obj.is_a?(class) -> true or false * obj.kind_of?(class) -> true or false * * Returns <code>true</code> if <i>class</i> is the class of * <i>obj</i>, or if <i>class</i> is one of the superclasses of * <i>obj</i> or modules included in <i>obj</i>. * * module M; end * class A * include M * end * class B < A; end * class C < B; end * b = B.new * b.instance_of? A #=> false * b.instance_of? B #=> true * b.instance_of? C #=> false * b.instance_of? M #=> false * b.kind_of? A #=> true * b.kind_of? B #=> true * b.kind_of? C #=> false * b.kind_of? M #=> true */ mrb_value mrb_obj_is_kind_of_m(mrb_state *mrb, mrb_value self) { mrb_value arg; mrb_get_args(mrb, "o", &arg); if (mrb_obj_is_kind_of(mrb, self, mrb_class_ptr(arg))) { return mrb_true_value(); } else { return mrb_false_value(); } }
int rbIsRVector(mrb_value rbobj) { mrb_value rbobj2; int i,n; if(!mrb_obj_is_kind_of(mrb,rbobj,mrb->array_class)) { if(!(mrb_obj_is_kind_of(mrb,rbobj,mrb->fixnum_class) || mrb_obj_is_kind_of(mrb,rbobj,mrb->float_class) || mrb_obj_is_kind_of(mrb,rbobj,mrb->string_class) || mrb_obj_is_kind_of(mrb,rbobj,mrb->true_class) || mrb_obj_is_kind_of(mrb,rbobj,mrb->false_class))) return 0; rbobj2=mrb_ary_new_capa(mrb,1); mrb_ary_push(mrb,rbobj2,rbobj); rbobj=rbobj2; //Seems that the 3 previous lines could be replaced by: // return 1; } n=RARRAY_LEN(rbobj); for(i=0;i<n;i++) { rbobj2=mrb_ary_entry(rbobj,i); if(!(mrb_obj_is_kind_of(mrb,rbobj2,mrb->fixnum_class) || mrb_obj_is_kind_of(mrb,rbobj2,mrb->float_class) || mrb_obj_is_kind_of(mrb,rbobj2,mrb->string_class) || mrb_obj_is_kind_of(mrb,rbobj2,mrb->true_class) || mrb_obj_is_kind_of(mrb,rbobj2,mrb->false_class))) { return 0; } } return 1; }
mrb_value mrb_check_to_integer(mrb_state *mrb, mrb_value val, const char *method) { mrb_value v; if (mrb_type(val) == MRB_TT_FIXNUM) return val; v = convert_type(mrb, val, "Integer", method, FALSE); if (mrb_nil_p(v)) return (v); if (!mrb_obj_is_kind_of(mrb, v, mrb_obj_class(mrb, v))) { return mrb_nil_value(); } return v; }
mrb_value mrb_Pi_WiringPiNodeStruct_disown(mrb_state* mrb, mrb_value self) { mrb_value ruby_object; mrb_get_args(mrb, "o", &ruby_object); if (!mrb_obj_is_kind_of(mrb, ruby_object, mrb_class_ptr(self))) { mrb_raise(mrb, E_TYPE_ERROR, "Pi::WiringPiNodeStruct.disown only accepts objects of type Pi::WiringPiNodeStruct"); return mrb_nil_value(); } ((mruby_to_native_ref*)(DATA_PTR(ruby_object)))->belongs_to_ruby = FALSE; return mrb_nil_value(); }
mrb_value mrb_SDL_SDLTexture_disown(mrb_state* mrb, mrb_value self) { mrb_value ruby_object; mrb_get_args(mrb, "o", &ruby_object); if (!mrb_obj_is_kind_of(mrb, ruby_object, mrb_class_ptr(self))) { mrb_raise(mrb, E_TYPE_ERROR, "SDL::SDLTexture.disown only accepts objects of type SDL::SDLTexture"); return mrb_nil_value(); } ((mruby_to_native_ref*)(DATA_PTR(ruby_object)))->belongs_to_ruby = FALSE; return mrb_nil_value(); }
static mrb_value mrb_to_integer(mrb_state *mrb, mrb_value val, const char *method) { mrb_value v; if (mrb_fixnum_p(val)) return val; v = convert_type(mrb, val, "Integer", method, TRUE); if (!mrb_obj_is_kind_of(mrb, v, mrb->fixnum_class)) { const char *cname = mrb_obj_classname(mrb, val); mrb_raisef(mrb, E_TYPE_ERROR, "can't convert %s to Integer (%s#%s gives %s)", cname, cname, method, mrb_obj_classname(mrb, v)); } return v; }
mrb_value mrb_Curses_MEVENT_disown(mrb_state* mrb, mrb_value self) { mrb_value ruby_object = mrb_nil_value(); mrb_get_args(mrb, "o", &ruby_object); if (!mrb_obj_is_kind_of(mrb, ruby_object, mrb_class_ptr(self))) { mrb_raise(mrb, E_TYPE_ERROR, "Curses::MEVENT.disown only accepts objects of type Curses::MEVENT"); return mrb_nil_value(); } ((mruby_to_native_ref*)(DATA_PTR(ruby_object)))->belongs_to_ruby = FALSE; return mrb_nil_value(); }
/* set_num_texture_formats * * Parameters: * - value: Uint32 */ mrb_value mrb_SDL_SDLRendererInfo_set_num_texture_formats(mrb_state* mrb, mrb_value self) { struct SDL_RendererInfo * native_self = mruby_unbox_SDL_RendererInfo(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->fixnum_class)) { mrb_raise(mrb, E_TYPE_ERROR, "Fixnum expected"); return mrb_nil_value(); } Uint32 native_field = mrb_fixnum(ruby_field); native_self->num_texture_formats = native_field; return ruby_field; }
/* set_checkout_options * * Parameters: * - value: int */ mrb_value mrb_Git_StashApplyOptions_set_checkout_options(mrb_state* mrb, mrb_value self) { git_stash_apply_options * native_self = mruby_unbox_git_stash_apply_options(self); mrb_value checkout_options; git_checkout_options * native_checkout_options; mrb_get_args(mrb, "o", &checkout_options); if (!mrb_obj_is_kind_of(mrb, checkout_options, CheckoutOptions_class(mrb))) { mrb_raise(mrb, E_TYPE_ERROR, "CheckoutOptions expected"); return mrb_nil_value(); } native_self->checkout_options = *mruby_unbox_git_checkout_options(checkout_options); return checkout_options; }
/* set_BytesPerPixel * * Parameters: * - value: Uint8 */ mrb_value mrb_SDL_SDLPixelFormat_set_BytesPerPixel(mrb_state* mrb, mrb_value self) { struct SDL_PixelFormat * native_self = mruby_unbox_SDL_PixelFormat(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->fixnum_class)) { mrb_raise(mrb, E_TYPE_ERROR, "Fixnum expected"); return mrb_nil_value(); } Uint8 native_field = mrb_fixnum(ruby_field); native_self->BytesPerPixel = native_field; return ruby_field; }
/* set_flags * * Parameters: * - value: Uint32 */ mrb_value mrb_SDL_SDLMessageBoxButtonData_set_flags(mrb_state* mrb, mrb_value self) { SDL_MessageBoxButtonData * native_self = mruby_unbox_SDL_MessageBoxButtonData(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->fixnum_class)) { mrb_raise(mrb, E_TYPE_ERROR, "Fixnum expected"); return mrb_nil_value(); } Uint32 native_field = mrb_fixnum(ruby_field); native_self->flags = native_field; return ruby_field; }
/* set_major * * Parameters: * - value: Uint8 */ mrb_value mrb_SDL_SDLVersion_set_major(mrb_state* mrb, mrb_value self) { struct SDL_version * native_self = mruby_unbox_SDL_version(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->fixnum_class)) { mrb_raise(mrb, E_TYPE_ERROR, "Fixnum expected"); return mrb_nil_value(); } Uint8 native_field = mrb_fixnum(ruby_field); native_self->major = native_field; return ruby_field; }
/* set_format * * Parameters: * - value: Uint32 */ mrb_value mrb_SDL_SDLDisplayMode_set_format(mrb_state* mrb, mrb_value self) { SDL_DisplayMode * native_self = mruby_unbox_SDL_DisplayMode(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->fixnum_class)) { mrb_raise(mrb, E_TYPE_ERROR, "Fixnum expected"); return mrb_nil_value(); } Uint32 native_field = mrb_fixnum(ruby_field); native_self->format = native_field; return ruby_field; }
mrb_value mrb_SDL_SDLTexture_belongs_to_ruby(mrb_state* mrb, mrb_value self) { mrb_value ruby_object; mrb_get_args(mrb, "o", &ruby_object); if (!mrb_obj_is_kind_of(mrb, ruby_object, mrb_class_ptr(self))) { mrb_raise(mrb, E_TYPE_ERROR, "SDL::SDLTexture.belongs_to_ruby only accepts objects of type SDL::SDLTexture"); return mrb_nil_value(); } if ( ((mruby_to_native_ref*)(DATA_PTR(ruby_object)))->belongs_to_ruby ) { return mrb_true_value(); } else { return mrb_false_value(); } }
/* set_attack_length * * Parameters: * - value: Uint16 */ mrb_value mrb_SDL_SDLHapticConstant_set_attack_length(mrb_state* mrb, mrb_value self) { struct SDL_HapticConstant * native_self = mruby_unbox_SDL_HapticConstant(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->fixnum_class)) { mrb_raise(mrb, E_TYPE_ERROR, "Fixnum expected"); return mrb_nil_value(); } Uint16 native_field = mrb_fixnum(ruby_field); native_self->attack_length = native_field; return ruby_field; }
/* set_type * * Parameters: * - value: Uint32 */ mrb_value mrb_SDL_SDLSysWMEvent_set_type(mrb_state* mrb, mrb_value self) { struct SDL_SysWMEvent * native_self = mruby_unbox_SDL_SysWMEvent(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->fixnum_class)) { mrb_raise(mrb, E_TYPE_ERROR, "Fixnum expected"); return mrb_nil_value(); } Uint32 native_field = mrb_fixnum(ruby_field); native_self->type = native_field; return ruby_field; }
static mrb_value mrb_sdl2_video_surface_set_color_mod(mrb_state *mrb, mrb_value self) { mrb_value color; SDL_Surface *s = mrb_sdl2_video_surface_get_ptr(mrb, self); mrb_get_args(mrb, "o", &color); if (!mrb_obj_is_kind_of(mrb, color, mrb_class_get_under(mrb, mod_SDL2, "RGB"))) { mrb_raise(mrb, E_TYPE_ERROR, "given 1st argument is unexpected type (expected RGB)."); } uint8_t const r = mrb_fixnum(mrb_iv_get(mrb, color, mrb_intern(mrb, "@r", 2))); uint8_t const g = mrb_fixnum(mrb_iv_get(mrb, color, mrb_intern(mrb, "@g", 2))); uint8_t const b = mrb_fixnum(mrb_iv_get(mrb, color, mrb_intern(mrb, "@b", 2))); if (0 != SDL_SetSurfaceColorMod(s, r, g, b)) { mruby_sdl2_raise_error(mrb); } return self; }
static void os_each_object_cb(mrb_state *mrb, struct RBasic *obj, void *ud) { struct os_each_object_data *d = (struct os_each_object_data*)ud; /* filter dead objects */ if (is_dead(mrb, obj)) { return; } /* filter class kind if target module defined */ if (d->target_module && !mrb_obj_is_kind_of(mrb, mrb_obj_value(obj), d->target_module)) { return; } mrb_yield(mrb, d->block, mrb_obj_value(obj)); ++d->count; }
/* set_a * * Parameters: * - value: unsigned int */ mrb_value mrb_SDL_SDLTestRandomContext_set_a(mrb_state* mrb, mrb_value self) { SDLTest_RandomContext * native_self = mruby_unbox_SDLTest_RandomContext(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->fixnum_class)) { mrb_raise(mrb, E_TYPE_ERROR, "Fixnum expected"); return mrb_nil_value(); } unsigned int native_field = mrb_fixnum(ruby_field); native_self->a = native_field; return ruby_field; }
/* set_msg * * Parameters: * - value: SDL_SysWMmsg * */ mrb_value mrb_SDL_SDLSysWMEvent_set_msg(mrb_state* mrb, mrb_value self) { struct SDL_SysWMEvent * native_self = mruby_unbox_SDL_SysWMEvent(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, SDLSysWMmsg_class(mrb))) { mrb_raise(mrb, E_TYPE_ERROR, "SDLSysWMmsg expected"); return mrb_nil_value(); } SDL_SysWMmsg * native_field = (mrb_nil_p(ruby_field) ? NULL : mruby_unbox_SDL_SysWMmsg(ruby_field)); native_self->msg = native_field; return ruby_field; }
static mrb_value object_equal(mrb_state *mrb, mrb_value self) { grn_obj *object, *other_object; mrb_value mrb_other; mrb_get_args(mrb, "o", &mrb_other); if (!mrb_obj_is_kind_of(mrb, mrb_other, mrb_obj_class(mrb, self))) { return mrb_false_value(); } object = DATA_PTR(self); other_object = DATA_PTR(mrb_other); if (object == other_object) { return mrb_true_value(); } else { return mrb_false_value(); } }
/* set_name * * Parameters: * - value: const char * */ mrb_value mrb_SDL_SDLRendererInfo_set_name(mrb_state* mrb, mrb_value self) { struct SDL_RendererInfo * native_self = mruby_unbox_SDL_RendererInfo(self); mrb_value ruby_field; mrb_get_args(mrb, "o", &ruby_field); /* type checking */ if (!mrb_obj_is_kind_of(mrb, ruby_field, mrb->string_class)) { mrb_raise(mrb, E_TYPE_ERROR, "String expected"); return mrb_nil_value(); } const char * native_field = mrb_string_value_cstr(mrb, &ruby_field); native_self->name = native_field; return ruby_field; }