Это называется отправка сообщения (другие языки называют это вызов метода ).Отправка сообщений является фундаментальной особенностью Ruby.В Ruby, в отличие от других языков (например, Python), вам не нужно указывать получателя сообщения, отправленного явно, получатель будет неявно равен self
, если он не указан явно.
Итак, вашкод по существу (в некоторой степени) эквивалентен
self.OFX("file.ofx") do
self.p(self.account())
self.p(self.account().balance())
self.p(self.account().transactions())
end
Примечание: он не эквивалентен на 100% из-за правил для private
методов.Методы private
могут быть вызваны только в результате отправки сообщения с неявным получателем, поэтому даже если p
и self.p
отправляют одно и то же сообщение одному и тому же получателю, работает только первоепотому что p
равен private
и может вызываться только без явного получателя.