Если вы хотите проверить равенство для каждого элемента, есть элегантное решение:
response.slice(:payment_status, :receiver_email, :foo) == { :payment_status => 'Completed', :receiver_email => 'test@example.com', :foo => 'Bar'}
В моем случае мне нужно сравнить неравенство. Это можно сделать, позвонив по номеру BasicObject#instance_eval
.
Тогда пишет:
response.instance_eval{ |hash| hash[:payment_status] != 'Pending' && hash[:receiver_email] == 'test@example.com' && hash[:boolean_result] }