Können Sie mehrere Versionen eines Edelsteins in einer Gemfile haben?

8

Was ich gerne hätte, wäre etwa so:

%Vor%

Damit Edelsteine ​​verschiedene Rackversionen benötigen, sind sie alle beschwichtigt. Ist das möglich?

    
Jeremy Smith 19.09.2011, 19:29
quelle

3 Antworten

9

Sie können ein Intervall erlaubter Edelsteine ​​festlegen

%Vor%

Es wird das aktuellste im ausgewählten Intervall geladen.

Aber ich glaube nicht, dass Sie verschiedene Edelsteinversionen benötigen können. Wenn ein Edelstein in verschiedenen Versionen geladen wird, müssen jede Klasse und jedes Modul einen eigenen Namensraum haben, um zu vermeiden, dass die Methoden des Edelsteins überschrieben werden.

    
knut 19.09.2011, 19:42
quelle
12

Nein, Sie können nicht mehrere Edelsteinversionen gleichzeitig laden. Dies liegt daran, dass der Code, wie hervorgehoben, im Konflikt stehen würde. Wie würde ein Edelstein wissen, die 1.2.4 -Version von Rack im Gegensatz zur 1.3.3 -Version von Rack zu verwenden? Es kann nicht.

Auch: Bei Bundler müssen alle Edelsteinabhängigkeiten erfüllt sein , damit der Bündelungsprozess abgeschlossen werden kann. Wenn du ein Juwel hast, das ausdrücklich erfordert Rack 1.2.4 (dh = 1.2.4 ist in gemspec für dieses Juwel) und dann ein anderes Juwel, das eine Version von Rack benötigt, wie zB >= 1.3 Diese Edelstein-Versionen werden in Konflikt geraten und Bundler wird es Ihnen sagen.

    
Ryan Bigg 19.09.2011 20:02
quelle
2

Ich bin auf diese Frage gestoßen, weil ich bestimmte kaputte Upstream-Juwelen, die fehlerhaft waren, auf die schwarze Liste setzen wollte. Während du nicht kannst

gem 'rack', '1.3.3', '1.2.4'

Sie können mehrere != -Restriktionen haben, um Versionen auszuschließen, von denen Sie wissen, dass sie problematisch sind:

gem 'rack', '!= 1.3.0.beta2', '!= 1.3.0.beta'

    
wtanaka.com 31.12.2016 20:44
quelle

Tags und Links