src/pathname_sys.rs in faster_path-0.2.5 vs src/pathname_sys.rs in faster_path-0.2.6
- old
+ new
@@ -1,23 +1,27 @@
-use ruru::{AnyObject, Array, Object};
+use ruru::{AnyObject, Array, Object, AnyException};
use ruru::types::{Argc, Value, CallbackPtr};
use ruru::util::str_to_cstring;
extern crate ruby_sys;
-use self::ruby_sys::{class, util};
+use self::ruby_sys::{class, util, vm};
use ::pathname;
+pub fn raise(exception: AnyException) {
+ unsafe { vm::rb_exc_raise(exception.value()); }
+}
+
pub type ValueCallback<I, O> = extern "C" fn(Argc, *const Value, I) -> O;
pub fn define_singleton_method<I: Object, O: Object>(
- klass: Value,
- name: &str,
- callback: ValueCallback<I, O>,
+ klass: Value,
+ name: &str,
+ callback: ValueCallback<I, O>,
) {
- let name = str_to_cstring(name);
+ let name = str_to_cstring(name);
- unsafe {
- class::rb_define_singleton_method(klass, name.as_ptr(), callback as CallbackPtr, -1);
- }
+ unsafe {
+ class::rb_define_singleton_method(klass, name.as_ptr(), callback as CallbackPtr, -1);
+ }
}
// ruru doesn't support splat arguments yet
pub extern fn pub_join(argc: Argc, argv: *const Value, _: AnyObject) -> AnyObject {
let args = Value::from(0);