In meinem Ruby-Programm versuche ich eine Bibliothek zu laden (crack für Neugierige).`autoload` löst einen Fehler aus, aber` require` nicht (ruby)
Wenn ich dies tun:
require 'rubygems'
require 'crack'
Alles funktioniert gut. Wenn ich dies jedoch versuche:
require 'rubygems'
autoload :Crack, 'crack'
Ein LoadError wird ausgelöst. (keine solche Datei zu laden - Crack)
Warum wird dieser Fehler ausgelöst? Liegt es daran, dass "crack" (und damit meine anderen von Nutzern installierten Edelsteine) nicht in meinem $ LOAD_PATH enthalten sind?
edit:
Außerdem autoload
funktioniert mit der Standardbibliothek:
autoload :Yaml, 'yaml'
funktioniert gut, und erhebt keinen Fehler.
Ausgezeichnet! Danke für die Erklärung von Kernel #, auch! Muss ich das vor oder nach "require" Rubygems platzieren oder spielt es eine Rolle? –
nachher: die "gem" -Methode wird von rubygems zum Kernel hinzugefügt, sie wird also erst verfügbar sein, wenn Rubygems benötigt werden. –