Jika Anda memeriksa untuk melihat apakah suatu objek dapat merespons serangkaian metode, Anda dapat melakukan sesuatu seperti:
methods = [:valid?, :chase, :test]
def has_methods?(something, methods)
methods & something.methods == methods
end
yang methods & something.methods
akan bergabung dengan dua array pada umum / pencocokan elemen mereka. something.methods mencakup semua metode yang Anda periksa, itu akan sama dengan metode. Sebagai contoh:
[1,2] & [1,2,3,4,5]
==> [1,2]
begitu
[1,2] & [1,2,3,4,5] == [1,2]
==> true
Dalam situasi ini, Anda ingin menggunakan simbol, karena ketika Anda memanggil .methods, ia mengembalikan array simbol dan jika Anda menggunakannya ["my", "methods"]
, itu akan mengembalikan false.