Metodele caller și caller_locations returnează stiva curentă de execuție sub forma unui tablou de șiruri de caractere sau obiecte Thread::Backtrace::Location, indicând fișierele și numerele de linie de unde a fost apelată funcția curentă.
def metoda_c
puts "Stiva de apeluri (Call Stack):"
caller.each_with_index do |linie, idx|
puts " [Nivel #{idx}]: #{linie}"
end
end
def metoda_b; metoda_c; end
def metoda_a; metoda_b; end
metoda_a
# caller_locations oferă obiecte bogate cu metode: .path, .lineno, .label
locatie = caller_locations(1, 1).first
puts "Apelat din metoda: #{locatie.label} la linia #{locatie.lineno}"
Utilitate: Esențială pentru dezvoltarea librăriilor de logging, framework-uri de instrumentare APM (NewRelic, Datadog) și avertizări de depreciere (deprecations).
Întrebări & Exemple de Cod:
Kernel#caller în Ruby: Inspectarea Urmelor de Stivă la RuntimeAi o nelămurire despre utilizarea comenzii
Kernel#caller în Ruby: Inspectarea Urmelor de Stivă la Runtimesau ai descoperit un truc / fragment de cod util? Distribuie-l cu ceilalți programatori!Fii primul care pune o întrebare sau distribuie un fragment de cod / prompt!
Nu au fost adăugate încă întrebări sau exemple de cod pentru această pagină. Dacă ai întâlnit o problemă sau ai un snippet util, adaugă-l mai jos pentru a-i ajuta pe ceilalți.