Мне нужен рубиновый хеш H с ключами: a,: b,: c, чтобы H [: b] = H [: a] + 1; H [: c] = H [: b] + 2 и т. Д.
Как определить такой хеш в однострочном объявлении, например, H = {: a => 1,: b => H [: a] + 1,: c => H [: b] +2, ...}?
Мне нужно что-то похожее на объявление свойств DataMapper:
свойство: путь, FilePath
свойство: md5sum, String,: default => lambda {| r, p | Digest :: MD5.hexdigest (r.path.read)}
где: значение по умолчанию md5sum ссылается на свойство: path