Dies ist vielleicht eine Frage, aber ich arbeite an einem Ruby-Projekt und jetzt muss ich einige Dateien von localhost für ein paar Tests, die eine geladene Webseite lesen müssen örtlich. Ich verwende gulp
dafür, aber ich würde es gerne in Ruby tun. Ich habe von Rack erfahren, aber ich kann meinen Kopf nicht darum drehen, um das sehr einfache zu tun, was ich tun möchte.Einrichten eines lokalen Basisservers mit Ruby
Dies ist meine Ordnerstruktur:
$ tree
.
├── lib
│ └── page_reader.rb
├── spec
│ ├── fixtures
│ │ └── index.html
│ └── page_reader_spec.rb
└── gulpfile.js
Was ich habe jetzt in meinem gulpfile.js
ist:
var
browsersync = require('browser-sync').create(),
gulp = require('gulp')
;
gulp.task('server', function() {
browsersync.init({
server: {
baseDir: './spec/fixtures/'
},
port: 4000,
notify: false,
open: false
});
});
Grundsätzlich habe ich einen index.html
innerhalb ./spec/fixtures/
Ordner und ich bin mit dem browser-sync
Modul starte einen lokalen Server, dann zeige ich auf den Ordner fixtures
in meinem Testordner. Wenn ich die Tests ausgeführt werden soll, muss ich tun:
$ gulp server
in einem Terminal, dann http://localhost:4000
zu gehen, um die Seite zu laden, gegen die ich die Tests am laufen, und dann in einem anderen Terminal zu tun:
$ bundle exec rspec
, um die Tests auszuführen.
Gibt es eine Möglichkeit zu tun, was ich tue durch gulp
, sondern Ruby stattdessen verwenden? Ich suchte nach einem Edelstein, der auf ähnliche Weise funktionierte wie das browser-sync
Modul, konnte aber keine finden. Ich denke jedoch, dass es einen Weg geben muss, der so einfach ist wie mit Schluck. Ich kann es weiterhin mit gulp
machen, da es perfekt funktioniert, aber es fühlt sich merkwürdig an, JavaScript und Ruby auf diese spezielle Art und Weise und in diesem Kontext zu mischen.
Welche spezifische Funktionalität der Browsersynchronisation möchten Sie einbeziehen? Der Name Ihrer Frage weist darauf hin, dass Sie versuchen, einen statischen HTTP-Server einzurichten, der einfacher ist als das, was Sie tun möchten. Sieh dir Seleniums Rubin-Bindungen an. –