isoloom-render 0.11.1

What every Isoloom backend renders with: the backend port, the builders (HCL, Ruby, PowerShell, Dockerfile, the Ansible inventory), a VM's set-up steps, the network pieces and the containers' shared parts.
Documentation
//! Ruby, as a Vagrantfile is written: string literals that hold any text.

/// A Ruby double-quoted string literal reading as `s`: backslashes and quotes escaped, and every
/// `#` that could start an interpolation (`#{...}`, `#$global`, `#@ivar`) made literal.
#[must_use]
pub fn quote(s: &str) -> String {
    let escaped = s
        .replace('\\', "\\\\")
        .replace('"', "\\\"")
        .replace("#{", "\\#{")
        .replace("#$", "\\#$")
        .replace("#@", "\\#@");
    format!("\"{escaped}\"")
}

#[cfg(test)]
mod tests {
    use super::quote;

    #[test]
    fn quotes_backslashes_and_interpolations_are_escaped() {
        assert_eq!(quote(r#"a"b\c"#), r#""a\"b\\c""#);
        assert_eq!(quote("#{x} #$y #@z # {"), r#""\#{x} \#$y \#@z # {""#);
    }
}