Jon z przeszłości! Jak wiesz, mam odpowiedzi na (prawie) wszystkie twoje problemy.
W tym przypadku opisujesz dwa problemy: (a) nie możesz require 'pry'
, gdy Pry nie znajduje się w Gemfile, (b) nie możesz użyć Pry, jeśli nie jesteś require
go.
Co Bundler, jak Conrad Irwin writes:
Bundler jest niesamowite klejnot, który daje dobry stopień pewności, że „jeśli działa w rozwoju, to działa w produkcji”. Może to zrobić, ponieważ jest błędny w odniesieniu do zależności gem: jeśli nie znajduje się w Gemfile, nie jest wymagany. Zapewnia to również, że środowisko programistyczne każdego użytkownika jest identyczne, nie ma już "pracy na moim komputerze", co jest pretekstem.
Istnieją okoliczności, w których ta dogmatyczna dedykacja do służby może stać na przeszkodzie. W szczególności wszyscy dobrzy programiści bardzo osobiście skonfigurowali swoje środowisko programistyczne. Oczywiście nie jest ważne, że moje lokalne narzędzia pracują w produkcji, a to jest pozytywnie złe dla wydajności, jeśli wszyscy są zmuszeni do stworzenia identycznej konfiguracji.
Więc robiąc wszystkie dobre rzeczy Bundler robi dla nas programistów Ruby, chodzi o projekt z zastrzeżeniem: „co na zewnątrz pakietu/Gemfile (np kamieniem szlachetnym System) nie istnieje już."Jak to robi to poprzez przekształcenie procesu require
i zmienia swój PATH
tak, że widzi tylko to, co znajduje się w zestawie.
Oznacza to, że nie można użyć Pry w ogóle nie zanieczyszczają Gemfile, można powiedzieć, prawda? Nie Conrad Irwin, który jest sprytnym ciasteczkiem, jakim jest, wymyślił rozwiązanie i zrobił Pry Debundle, klejnot, który tymczasowo odwraca łatki, które Bundler wykonał na nasze żądanie.
Wszystko, co musisz zrobić, to tylko require 'pry-debundle'
, prawda? Oh ... poczekaj ... Tak, Debundle prawdopodobnie nie jest w Gemfile
Poprawka małpy polega na wydrukowaniu źródła pry-debundle.rb
do ~/debundle.rb
, a następnie load
, że. (Na razie potrzebujesz Pry załadowanego do uruchomienia tego pliku źródłowego, ale możesz uruchomić tylko metodę debundle!
, aby się tam dostać, wymagać Pry i podążać ciekawie.) Potrzebuję trochę monkeypatchingu, ale pracuję nad PR .)
Mam ten sam problem. Jedną z technik, którą rozważałem (ale jej nie implementowałem) było używanie haków git do sprawdzania wystąpienia 'pry' w moim kodzie podczas zatwierdzania. Następnie w Gemfile Railsa dodaj informacje do grupy deweloperskiej; w gem, dodaj do Gemfile'a (nie gemspec.). –
Twoje testy jednostkowe również powinny zakończyć się niepowodzeniem, jeśli gdzieś trzymasz "pry". –