9.6. Automatyczne ładowanie bibliotek na żądanie

Problem

Stworzyliśmy dużą bibliotekę, zawierającą wiele komponentów. Chcemy ją podzielić na kilka fragmentów, by użytkownik potrzebujący tylko jednego z nich nie musiał ładować do pamięci pozostałych. Chcemy jednak uniknąć konieczności identyfikowania (przez użytkownika) każdego z tych fragmentów z osobna w instrukcji require.

Rozwiązanie

Należy podzielić bibliotekę na kilka plików i do każdego z nich zastosować mechanizm automatycznego ładowania, dostępny za pośrednictwem metody Kernel#autoload. Poszczególne pliki będą ładowane dopiero w momencie pierwszego odwołania się do nich.

# functions.rb module Decidable # ... Tu są definicje bardzo wielu metod. end module Semidecidable # ... ...

Get Ruby. Receptury now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.