Ejemplo n.º 1
0
mrb_value
mrb_mod_const_defined(mrb_state *mrb, mrb_value mod)
{
  mrb_value id;
  mrb_bool const_defined_p;

  id = get_sym_or_str_arg(mrb);
  if (mrb_type(id) == MRB_TT_SYMBOL) {
    check_const_name_sym(mrb, mrb_symbol(id));
    const_defined_p = mrb_const_defined(mrb, mod, mrb_symbol(id));
  }
  else {
    mrb_value sym;
    check_const_name_str(mrb, id);
    sym = mrb_check_intern_str(mrb, id);
    if (mrb_nil_p(sym)) {
      const_defined_p = FALSE;
    }
    else {
      const_defined_p = mrb_const_defined(mrb, mod, mrb_symbol(sym));
    }
  }

  return mrb_bool_value(const_defined_p);
}
Ejemplo n.º 2
0
static mrb_value
mrb_mod_method_defined(mrb_state *mrb, mrb_value mod)
{
  mrb_value id;
  mrb_bool method_defined_p;

  id = get_sym_or_str_arg(mrb);
  if (mrb_symbol_p(id)) {
    method_defined_p = mrb_obj_respond_to(mrb_class_ptr(mod), mrb_symbol(id));
  } else {
    mrb_value sym = mrb_check_intern_str(mrb, id);
    if (mrb_nil_p(sym)) {
      method_defined_p = FALSE;
    }
    else {
      method_defined_p = mrb_obj_respond_to(mrb_class_ptr(mod), mrb_symbol(sym));
    }
  }
  return mrb_bool_value(method_defined_p);
}
Ejemplo n.º 3
0
static mrb_value
mrb_mod_cvar_defined(mrb_state *mrb, mrb_value mod)
{
  mrb_value id;
  mrb_bool defined_p;

  id = get_sym_or_str_arg(mrb);
  if (mrb_symbol_p(id)) {
    check_cv_name_sym(mrb, mrb_symbol(id));
    defined_p = mrb_cv_defined(mrb, mod, mrb_symbol(id));
  } else {
    mrb_value sym;
    check_cv_name_str(mrb, id);
    sym = mrb_check_intern_str(mrb, id);
    if (mrb_nil_p(sym)) {
      defined_p = FALSE;
    }
    else {
      defined_p = mrb_cv_defined(mrb, mod, mrb_symbol(sym));
    }
  }
  return mrb_bool_value(defined_p);
}