Czy mógłbym poprosić kogoś o łopatologiczne wytłumaczenie składni następującej metody?
def public_path
@@public_path ||= self.root ? File.join(self.root, "public") : "public"
end
Chodzi dokładnie o operator ||= oraz to co się za nim dzieje.
Niestety w książce takiego operatora nie znalazłem a i w necie ciężko coś znaleźć.
def public_path
if self.root
root = File.join(self.root, "public")
else
root = "public"
end
@@public_path = root if @@public_path.nil?
end
Coś mniej więcej takiego bez Ruby idiomów. Według mnie wersja, którą podałeś jest trochę nieczytelna, takie na siłę “napiszę to w jednej linii”