mri-sys 0.2.6

Rust bindings to Mat'z Ruby interpreter
Documentation
use std::io::Write;

fn main() {
    unsafe { mri_sys::ruby_init() };

    loop {
        print!("cool-interpreter:8=====D -- ");
        std::io::stdout().flush().unwrap();

        let mut input = String::new();
        std::io::stdin().read_line(&mut input).expect("could not read from stdin");

        match &input.trim().to_lowercase()[..] {
            "exit" | "quit" => break,
            "help" => println!("-> https://www.eapservices.co.nz/"),
            _ => match mri_sys::helpers::eval(&input, mri_sys::helpers::Binding::top_level(), Some("mock-filename.rb")) {
                Ok(value) => println!("-> {:?}", value),
                Err(e) => eprintln!("ERROR, EXCEPTION RAISED: {}", e),
            },
        }
    }

    unsafe { mri_sys::ruby_cleanup(0) };
}