//! crystal - Ruby-like language with static typing
//!
//! Crystal is a programming language with the following goals:
//! - Have syntax similar to Ruby
//! - Statically type-checked, but without having to specify types
//! - Compile to efficient native code
//!
//! This tool uses the ToolSpec pattern for declarative installation.

use crate::define_tool;

define_tool!(CRYSTAL, {
    command: "crystal",
    macos: { brew: "crystal" },
    linux: { apt: "crystal", dnf: "crystal", pacman: "crystal", apk: "crystal" },
    bsd: { pkg: "crystal" },
});

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

    #[test]
    fn crystal_registration_shape() {
        assert_eq!(CRYSTAL.command, "crystal");
        let mac = CRYSTAL.macos.expect("must support macOS");
        assert_eq!(mac.brew, Some("crystal"));
    }
}
