Truques do Ruby Array

  • Faça uma iteração facilmente por meio de uma matriz de matrizes:
[[:a, 100], [:b, 200]].each { |k, v| puts [k, v].inspect }
#=> [:a, 100]
#=> [:b, 200]
  • Argumentos lambda combinados:
{a: 100, b: 200}.each_with_object({}) { |(k, v), h| puts [k, v, h].inspect }
#=> [:a, 100, {}]
#=> [:b, 200, {}]
  • Converta hash em array com índices:
{a: 100, b: 200}.map.with_index { |(k, v), i| [k, v, i] }
#=> [[:a, 100, 0], [:b, 200, 1]]
  • Argumentos lambda Mega-combinados e with_indexexemplo:
{a: 100, b: 200}.each_with_object({}).with_index { |((k, v), h), i| puts [k, v, h, i].inspect }
#=> [:a, 100, {}, 0]
#=> [:b, 200, {}, 1]
  • Oculte o aviso de «variável não utilizada» no IDE:
{a: 100, b: 200}.select { |_k, v| v == 200 }
  • Converta matriz de matrizes em hash:
[[:a, 100], [:b, 200]].to_h
#=> {:a=>100, :b=>200}