To jest trochę mikro pytanie, ale za każdym razem, gdy tworzę klejnot i trzeba załadować wszystkie pliki w podkatalogu dla jakiegoś celu odblaskowego (lub po prostu szybkie i brudne wstępne obciążenie), zadaję sobie pytanie " na pewno nie musi być bardziej przejrzysty sposób „, w odniesieniu do tego wspólnego wzoru:Krótsza wersja katalogu Dir [File.join (nazwa pliku.display (__ FILE__), "podkatalog/**/*. Rb")]?
Dir[File.join(File.dirname(__FILE__), "subdirectory/**/*.rb")].each { |f| require f }
konieczności wywoływania File.dirname
na __FILE__
sprawia, że niepotrzebnie gadatliwy. Nie można tak naprawdę użyć względnej ścieżki wewnątrz klejnotu, ponieważ nie masz pojęcia, skąd jesteś ładowany.
interpolować nazwę katalogu zamiast wywoływać 'File.join' – cam
Heh, chyba to działa :) File.join robi pewne rzeczy dla Windowsa , ale biorąc pod uwagę, że ruby załaduje pliki używając '/' niezależnie od tego, tak naprawdę nie ma to znaczenia. – d11wtq
Zobacz także http://stackoverflow.com/questions/788550/is-there-a-shorter-way-to-require-a-file-in-tame-firma-in-ruby i http: // stackoverflow .pl/questions/735073/best-way-to-require-all-files-from-a-directory-in-ruby – knut