Niedawno mieliśmy problem z tym, że po serii zatwierdzeń proces backendu nie został uruchomiony. Byliśmy dobrymi małymi chłopcami i dziewczynkami i biegaliśmy rake test
po każdym zameldowaniu, ale z powodu pewnych dziwnych cech w ładowaniu biblioteki Rails, pojawiło się to tylko wtedy, gdy uruchomiliśmy go bezpośrednio z Mongrel w trybie produkcyjnym.
Wyśledziłem błąd i było to spowodowane tym, że nowy klejnot Rails nadpisał metodę w klasie String w sposób, który przerwał jedno wąskie zastosowanie w kodzie wykonawczym Railsa.
W każdym razie, w skrócie, czy jest sposób, aby w czasie wykonywania zapytać Ruby, gdzie zdefiniowano metodę? Coś takiego whereami( :foo )
powraca /path/to/some/file.rb line #45
? W takim przypadku powiedzenie mi, że został zdefiniowany w klasie String, byłoby nieprzydatne, ponieważ zostało przeciążone przez jakąś bibliotekę.
Nie mogę zagwarantować, że źródło będzie żyło w moim projekcie, więc szukanie 'def foo'
go niekoniecznie da mi to, czego potrzebuję, nie wspominając o tym, że mam wiele def foo
, czasem nie wiem do czasu uruchomienia, z którego mogę korzystać.