#!/usr/bin/ruby

var data = Hash(
        lang => [
            Hash(
                name => "Sidef"
            ),
            Hash(
                name => "Ruby",
            ),
            Hash(
                name => "Perl",
            )
        ]
)

say data.dig(:lang, 0, :name);
say data.dig(:lang, 1, :name);
say data.dig(:lang, 2, :name);

# Successful digging
assert_eq(data.dig(:lang, 0, :name), "Sidef");
assert_eq(data{:lang}.dig(-1, :name), "Perl");
assert_eq(data{:lang}[1].dig(:name), "Ruby");

# Fail digging
assert_eq(data.dig(:lang, 42, :name), nil);
assert_eq(data.dig(:hello, 0, :name), nil);
assert_eq(data{:lang}.dig(42, :name), nil);