Salah satu gayanya adalah mengelompokkan metode bersama sehingga Anda hanya menggunakan privatedan paling banyak protectedsekali per kelas. Gaya lainnya adalah menentukan visibilitas tepat setelah definisi metode:
class Example
def my_private_method
end
private :my_private_method
def my_public_method
end
end
Sejak Ruby 2.1.0 defmengembalikan nama metode sebagai simbol, jadi gaya yang lebih ramping dimungkinkan:
class Example
private def my_private_method
end
def my_public_method
end
protected def my_protected_method
end
private_class_method def self.my_private_class_method
end
end
(Perhatikan bahwa kami menggunakan private_class_methoduntuk metode kelas - jika tidak, kami akan mendapatkannya NameError: undefined methodkarena privatemengharapkan metode instance. Bahkan ketika menggunakannya sebagai makro seperti dalam contoh asli, itu hanya memengaruhi visibilitas metode instance.)
Saya paling suka gaya visibilitas sebaris ini, karena memungkinkan Anda mengatur metode sesuai keinginan. Ini mengurangi risiko menambahkan metode baru di tempat yang salah dan secara tidak sengaja menjadikannya pribadi.
Sedangkan untuk sintaks metode kelas, Anda dapat menanganinya dengan cara ini:
class Example
private def my_private_method
end
class << self
private def my_private_class_method
end
end
end
private def my_method...end