ruru::class! [] [src]

macro_rules! class {
    ($class: ident) => { ... };
}

Creates Rust structure for new Ruby class

Examples

#[macro_use]
extern crate ruru;

use ruru::{Class, RString, VM};
use ruru::traits::Object;

class!(Greeter);

methods!(
    Greeter,
    itself,

    fn anonymous_greeting() -> RString {
        RString::new("Hello stranger!")
    }

    fn friendly_greeting(name: RString) -> RString {
        let greeting = format!("Hello dear {}!", name.to_string());

        RString::new(&greeting)
    }
);

fn main() {
    Class::new("Greeter").define(|itself| {
        itself.def("anonymous_greeting", anonymous_greeting);
        itself.def("friendly_greeting", friendly_greeting);
    });
}

Ruby:

class Greeter
  def anonymous_greeting
    'Hello stranger!'
  end

  def friendly_greeting(name)
    "Hello dear #{name}"
  end
end