Teilen Modellcode zwischen Sinatra und Rails

8

Ich habe eine Sinatra-Anwendung, die auf api-Aufrufe reagiert, und eine Rails-Anwendung, die die Berichte und all die schönen Dinge wie Diagramme und die Website verarbeitet. Beide müssen Zugriff auf einen gemeinsamen Satz von Modellen (z. B. Konten, Sites usw.) haben.

Mein Problem ist: Wie teile ich den Code effizient zwischen den beiden Anwendungen? Zum Beispiel, wenn ich das Konto-Modell in Sinatra bearbeite, möchte ich nicht daran denken, dieselben Änderungen in der Rails-App zu duplizieren. Ich würde lieber nicht die Rails Rack-Montage verwenden, da sich die beiden Anwendungen in separaten Clustern befinden.

Ich habe Vorschläge zu StackOverflow gesehen:

  • Git-Module
  • Symlinks (funktioniert nicht mit Windows, das mein Kollege verwendet)
  • Rails Plugins (ich bezweifle, dass das mit Sinatra funktionieren würde)
  • Ruby Gems (Ich denke, das ist zu viel für nur Modelldaten, aber das bin nur ich)

Die beiden Apps befinden sich in verschiedenen Repositories. Im Grunde entwickle ich zuerst die API und dann die kontospezifische Logik später in der Rails-App (hauptsächlich weil Rails viel mehr Bibliotheken hat, die es einfacher machen, solche Dinge zu entwickeln).

Wie würden Sie dieses Problem lösen?

    
parasquid 29.04.2012, 21:33
quelle

1 Antwort

4

Ich würde mich für ein Juwel entscheiden, oder eher für ein Juwel, Sie müssen es nicht veröffentlichen und dann Bundler Git-Abhängigkeiten verwenden . Wir tun dies stark bei Travis CI und es funktioniert gut, besonders mit den neuen "lokalen" Git-Abhängigkeiten in Bundler 1.2: Ссылка

    
Konstantin Haase 25.09.2012, 00:24
quelle

Tags und Links