Als «ruby» getaggte Fragen

95
Erben von Klassenmethoden aus Modulen / Mixins in Ruby

Es ist bekannt, dass in Ruby Klassenmethoden vererbt werden: class P def self.mm; puts 'abc' end end class Q < P; end Q.mm # works Es überrascht mich jedoch, dass es mit Mixins nicht funktioniert: module M def self.mm; puts 'mixin' end end class N; include M end M.mm # works N.mm # does not...

95
Wo können private Methoden in Ruby platziert werden?

Die meisten Blogs, Tutorials oder Bücher verfügen über private Methoden am Ende einer Klasse / eines Moduls. Ist das die beste Vorgehensweise? Ich finde es bequemer, private Methoden nach Bedarf zu haben. Beispielsweise: public def my_method # do something minion_method end private def...

94
Ruby: Variablen zu einer Zeichenfolge zusammenführen

Ich suche nach einer besseren Möglichkeit, Variablen in Ruby zu einem String zusammenzuführen. Zum Beispiel, wenn die Zeichenfolge ungefähr so ​​lautet: "Das animal actiondas second_animal" Und ich habe Variablen für animal, actionund second_animal, was ist die bevorzugte Art und Weise in diese...

94
So öffnen Sie Dateien relativ zum Ausgangsverzeichnis

Folgendes schlägt fehl Errno::ENOENT: No such file or directory, auch wenn die Datei vorhanden ist: open('~/some_file') Ich kann dies jedoch tun: open(File.expand_path('~/some_file')) Ich habe zwei Fragen: Warum openwird die Tilde nicht so verarbeitet, dass sie auf das Ausgangsverzeichnis verweist?...

94
Ruby konvertiert Array in Funktionsargumente

Angenommen, ich habe ein Array. Ich möchte das Array an eine Funktion übergeben. Die Funktion erwartet jedoch zwei Argumente. Gibt es eine Möglichkeit, das Array im laufenden Betrieb in zwei Argumente umzuwandeln? Beispielsweise: a = [0,1,2,3,4] b = [2,3] a.slice(b) Würde einen Fehler in Ruby...

94
rspec 3 - stub eine Klassenmethode

Ich aktualisiere von rspec 2.99 auf rspec 3.0.3 und habe Instanzmethoden für die Verwendung konvertiert allow_any_instance_of, aber nicht herausgefunden, wie eine Klassenmethode gestoppt werden kann. Ich habe folgenden Code: module MyMod class Utils def self.find_x(myarg) # Stuff end...