Ruby-Parser für Skripterstellung

Ich möchte Ruby-Dateien mit Python-Skripten bearbeiten und muss dies tun

  1. Überprüfen Sie, ob ein Funktionsaufruf innerhalb einer Klasse vorhanden ist, fügen Sie ihn hinzu, wenn er nicht vorhanden ist, überprüfen Sie die Argumente des Funktionsaufrufs, falls vorhanden, und ändern Sie ihn entsprechend
  2. Überprüfen Sie, ob eine Funktionsdefinition vorhanden ist, und fügen Sie andernfalls eine Funktionsdefinition in eine Klasse ein
  3. Punkt 1 und 2 für Blöcke (und auch für Lehrveranstaltungen und Module)
  4. Beim Neuaufbau der bearbeiteten Datei sollten die Kommentare intakt sein

Schlagen Sie mir einen in Python geschriebenen Ruby/Rails-Parser vor. Sagen Sie mir auch, ob es in Ruby selbst viel einfacher ist, als eine Bibliothek in Python zu finden, und ob mir das viel mehr Flexibilität und noch mehr Möglichkeiten zur Kontrolle der Ruby-Dateien geben würde.

Antworten (1)

Versuchen Sie, die Ruby-Dateien zu bearbeiten, während die Ruby-Anwendung läuft?
Oder verwenden Sie die Python-Skripte, um ein Projekt wie cookiecutter zu generieren ?

Ruby unterstützt Reflektion und Metaprogrammierung, sodass Sie:

  1. Prüfen Sie, ob eine Methode existiert, indem Sie respond_to verwenden?
  2. Definieren Sie eine Methode mit define_method .

Wenn ich es wäre, würde ich alles in Ruby machen, aber es hängt von Ihrem Anwendungsfall ab.

Ich versuche, ein Projekt wie Cookiecutter zu generieren. Und Sie haben Recht, mir wurde später klar, dass ich am Ende einen vollwertigen Ruby-Parser auf die eine oder andere Weise haben muss, der vollständig in Python geschrieben ist, und es macht mehr Sinn, Rubys eigene Reflektion und Meta-API zu verwenden, um Dinge in Ruby-Dateien zu ändern um zu prüfen, ob die Funktion vorhanden ist oder nicht, oder um neue hinzuzufügen. Aber es würde immer noch zu kurz kommen, wenn es darum geht, eine Zuweisungsanweisung und Funktionsaufrufe in eine vorhandene Funktion oder Blöcke einzufügen. (Oder doch? Haben wir dafür auch Methoden?)