64 Stimmen

Ich habe ein Gem installiert, aber require 'gemname' funktioniert nicht. Warum?

Die eigentliche Frage, die ich mir stelle, ist, warum die Anforderung nicht den Namen des Edelsteins annimmt. Außerdem, für den Fall, dass es nicht, was ist der einfachste Weg, um die geheime Beschwörung zu finden, um das verdammte Ding zu verlangen!

Wenn ich zum Beispiel Folgendes habe memcache-client installiert ist, muss ich es mit

require 'rubygems'
require 'memcache'

2voto

Orion Edwards Punkte 117361

Die Frage, die ich mir stelle, ist, warum die Anforderung nicht den Namen des Edelsteins annimmt.

Die Installation eines Edelsteins bringt die Dateien auf Ihr System. Es werden keine Angaben darüber gemacht, wie diese Dateien heißen werden.
Wie Laurie hervorhebt Es gibt verschiedene Konventionen für die Benennung von Edelsteinen, aber es gibt nichts, was dies erzwingt, und viele Edelsteinautoren halten sich leider nicht daran.

Und für den Fall, dass dies nicht der Fall ist, wie findet man am einfachsten die geheime Beschwörungsformel, um das verdammte Ding zu benötigen?

Haben Sie die Dokumentation für Ihren Edelstein gelesen?
Ich finde das Googeln nach rdoc gemname finden in der Regel die offiziellen rdocs für Ihr Juwel die Ihnen in der Regel zeigen, wie man sie benutzt.

Memcache ist vielleicht nicht das beste Beispiel, da davon ausgegangen wird, dass Sie es von Rails aus verwenden, und das "require" bereits für Sie erledigt wurde, aber die meisten anderen, die ich gesehen habe, haben Beispiele, die die korrekten "require"-Beschwörungen zeigen

1voto

Dreyfuzz Punkte 486

Ich hatte dieses Problem, weil ich rvm verwende und versucht habe, die falsche Version von Ruby zu verwenden. Das fragliche Gem benötigte 1.9.2 und ich hatte 2.0.0 als Standard eingestellt! Vielleicht ein dummer Fehler, aber einer, den jemand anderes, der auf dieser Seite ankommt, wahrscheinlich auch gemacht hat.

1voto

Gerry Punkte 9777

Ein Problem, auf das ich gerade gestoßen bin, war, dass der tatsächlich erstellte Edelstein nicht alle Dateien enthielt, die er enthalten sollte.

Das Problem mit files war, dass es einen Syntaxfehler in der gemspec gab, aber während des Builds wurden keine Fehler ausgelöst.

Ich füge dies nur für den Fall hinzu, dass jemand anderes auf das gleiche Problem stößt.

1voto

Hahn Punkte 395

Es könnte auch sein, dass der Name des Edelsteins nicht übereinstimmt:

z.B.. dummy-spi-0.1.1/lib/spi.rb genannt werden sollte dummy-spi-0.1.1/lib/dummy-spi.rb

dann können Sie

require 'dummy-spi'

0voto

Matthew O'Riordan Punkte 7713

Auch ich hatte dieses Problem, nachdem ich OS X Lion installiert hatte, und stellte fest, dass die Warnmeldung auch dann noch erschien, wenn ich den folgenden Code ausführte. require 'rubygems' require 'nokogiri'

Ich habe eine ganze Reihe von Lösungen ausprobiert, die hier und im Internet veröffentlicht wurden, aber letztendlich habe ich mich damit beholfen, indem ich einfach die Anweisungen unter http://martinisoftware.com/2009/07/31/nokogiri-on-leopard.html LibXML & LibXSLT aus dem Quellcode neu zu installieren, aber sicherzustellen, dass die installierte Version von LibXML mit der von Nokogiri erwarteten Version übereinstimmt.

Sobald ich das getan hatte, verschwanden die Warnungen.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X