Весь штраф, кроме путаницы не действительно подобен шифрованию - иногда это даже не включает шифры, столь же простые как ROT13.
Попробуйте активную поддержку с Hash # slice
и / или Hash #, кроме
. Также существуют методы взрыва:
$ irb
>> require 'active_support/core_ext'
=> true
>> hash = {:a => 1, :b => 2, :c => 3, :d => 4}
=> {:a=>1, :d=>4, :b=>2, :c=>3}
>> keyset = [:a, :c]
=> [:a, :c]
>> remainders = hash.slice!(*keyset)
=> {:d=>4, :b=>2}
>> remainders
=> {:d=>4, :b=>2}
>> hash
=> {:a=>1, :c=>3}
new_hash = {}
keyset.each {|i| new_hash[i] = hash.delete(i)}
Мне показалось, что это сработало, без дополнительных требований