Ruby Cookbook
Classes and Modules
extern crate sigil_stitch;
use sigil_stitch::prelude::*;
fn main() -> Result<(), Box<dyn std::error::Error>> {
sigil_quote!(Ruby {
class Greeter {
attr_reader :name
def initialize(name) {
@name = name
}
def greet {
$V("Hello, #{@name}!")
}
}
})?;
Ok(())
}
Key points:
- Ruby uses
{ }blocks insigil_quote!— the Ruby backend translates them todo/endor indent/dedent as appropriate. - Symbol literals like
:nameget correct spacing (space before:, none after). - Inheritance uses
<with space before it:class Dog < Animal. $Vpasses strings through for Ruby interpolation (#{...}).