Anti-Pattern: Iteratively Building a Collection
robots.thoughtbot.com
robots.thoughtbot.com
def signer_keys_and_uids signers.inject({}) do |result, signer| result.merge(signer.key_id => signer.uids) end end
builds not only one but two new hash objects on each iteration, while the "bad" code does neither. Array to Hash is probably best done using Hash[]
signers.map.with_object({}) { |signer, result| result[signer.key_id] = signer.uids }