2016-03-24 8 views
3

Ich möchte ein kleines Patch in die String-Klasse für meine Testumgebung schreiben, das die Verwendung von Anführungszeichen ohne Interpolation warnt (#{foo}).Ursprüngliche Zeichenfolge vor der Interpolation abrufen

  1. Gibt es eine Möglichkeit zu lösen, wenn eine Zeichenfolge von der Interpolation abgeleitet wurde?
  2. Wenn ja, gibt es eine Möglichkeit, den ursprünglichen nicht interpolierten Wert abzurufen?
+5

Sie können Rubocop Edelstein betrachten, ich denke, es tut, was Sie wollen. (Es wird ein Fehler ausgegeben, wenn ein Anführungszeichen ohne Interpolation verwendet wird). Ich schaue mir den Quellcode in GitHub an, um herauszufinden, wie sie es schaffen. [rubocop source code] (https://github.com/bbatsov/rubocop) – LolWalid

+0

Danke, aber ich denke, sie analysieren die Quelle, die nicht das ist, was ich erreichen will. –

+8

Sie missverstehen etwas. Es gibt keine "ursprüngliche Zeichenfolge vor der Interpolation"; Nach der Interpolation wird eine Zeichenfolge erstellt. Was Sie versuchen, ist auf Ruby-Ebene unmöglich. Die einzige Möglichkeit ist, die Quelle zu analysieren, wie es LolWalid vorschlägt, oder den Ruby-Code auf der C-Ebene zu hacken. – sawa

Antwort

1

Es gibt keine "ursprüngliche Zeichenfolge vor der Interpolation"; Nach der Interpolation wird eine Zeichenfolge erstellt. Was Sie versuchen, ist auf Ruby-Ebene unmöglich. Der einzige Weg, dies zu tun, besteht darin, die Quelle zu analysieren, wie es LolWalid vorschlägt, oder den Ruby-Code auf der C-Ebene zu hacken.

Verwandte Themen