mirror of
https://github.com/mruby/mruby
synced 2026-06-08 16:11:16 +00:00
Move Kernel#fail definition to mruby-kernel-ext mrbgem.
This commit is contained in:
@@ -21,6 +21,9 @@ void mrb_print_backtrace(mrb_state *mrb);
|
||||
mrb_value mrb_exc_backtrace(mrb_state *mrb, mrb_value exc);
|
||||
mrb_value mrb_get_backtrace(mrb_state *mrb);
|
||||
|
||||
/* declaration for fail method */
|
||||
mrb_value mrb_f_raise(mrb_state*, mrb_value);
|
||||
|
||||
#if defined(__cplusplus)
|
||||
} /* extern "C" { */
|
||||
#endif
|
||||
|
||||
@@ -0,0 +1,5 @@
|
||||
MRuby::Gem::Specification.new('mruby-kernel-ext') do |spec|
|
||||
spec.license = 'MIT'
|
||||
spec.author = 'mruby developers'
|
||||
spec.summary = 'extensional Kernel module'
|
||||
end
|
||||
@@ -0,0 +1,15 @@
|
||||
#include <mruby.h>
|
||||
#include <mruby/error.h>
|
||||
|
||||
void
|
||||
mrb_mruby_kernel_ext_gem_init(mrb_state *mrb)
|
||||
{
|
||||
struct RClass *krn = mrb->kernel_module;
|
||||
|
||||
mrb_define_module_function(mrb, krn, "fail", mrb_f_raise, MRB_ARGS_NONE());
|
||||
}
|
||||
|
||||
void
|
||||
mrb_mruby_kernel_ext_gem_final(mrb_state *mrb)
|
||||
{
|
||||
}
|
||||
@@ -0,0 +1,4 @@
|
||||
assert('Kernel.fail, Kernel#fail') do
|
||||
assert_raise(RuntimeError) { fail }
|
||||
assert_raise(RuntimeError) { Kernel.fail }
|
||||
end
|
||||
+1
-3
@@ -924,7 +924,7 @@ mrb_obj_public_methods(mrb_state *mrb, mrb_value self)
|
||||
* raise "Failed to create socket"
|
||||
* raise ArgumentError, "No parameters", caller
|
||||
*/
|
||||
static mrb_value
|
||||
mrb_value
|
||||
mrb_f_raise(mrb_state *mrb, mrb_value self)
|
||||
{
|
||||
mrb_value a[2], exc;
|
||||
@@ -1189,8 +1189,6 @@ mrb_init_kernel(mrb_state *mrb)
|
||||
mrb_define_method(mrb, krn, "to_s", mrb_any_to_s, MRB_ARGS_NONE()); /* 15.3.1.3.46 */
|
||||
mrb_define_method(mrb, krn, "__case_eqq", mrb_obj_ceqq, MRB_ARGS_REQ(1)); /* internal */
|
||||
|
||||
mrb_define_module_function(mrb, krn, "fail", mrb_f_raise, MRB_ARGS_NONE());
|
||||
|
||||
mrb_include_module(mrb, mrb->object_class, mrb->kernel_module);
|
||||
mrb_alias_method(mrb, mrb->module_class, mrb_intern_lit(mrb, "dup"), mrb_intern_lit(mrb, "clone"));
|
||||
}
|
||||
|
||||
@@ -563,7 +563,3 @@ assert('stack extend') do
|
||||
end
|
||||
end
|
||||
|
||||
assert('Kernel.fail, Kernel#fail') do
|
||||
assert_raise(RuntimeError) { fail }
|
||||
assert_raise(RuntimeError) { Kernel.fail }
|
||||
end
|
||||
|
||||
Reference in New Issue
Block a user