A partir da versão 3.0.0 do Ruby é possível utilizar o método except
em hashes. Com ajuda dele, podemos retornar chaves e valores, exceto da chave passada como argumento. Vamos ver o exemplo mostrado no artigo oficial do lançamento:
h = { a: 1, b: 2, c: 3 }
p h.except(:a) #=> {:b=>2, :c=>3}
Anteriormente, para obtermos o mesmo resultado seria necessário utilizar lógicas indiretas com métodos como o delete
ou reject
, por exemplo:
h = { a: 1, b: 2, c: 3 }
h.reject { |key, value| key == :a }
#=> {:b=>2, :c=>3}
Você pode ver mais sobre esse método e outras novidades aqui.