2011-01-17 10 views
4

Ich bin gespannt, wie die Tutorial-Website "Rails for Zombies" ihre Labors gemacht hat. Ein Benutzer muss eine Reihe von Fragen im Labor beantworten, indem er Ruby-Code in eine Befehlszeile eingibt, die (wie es scheint) eine Befehlszeile abschließt, um jedes Labor zu vervollständigen. Beim Einreichen wird festgestellt, ob sie mit der nächsten Laborfrage fortfahren können.Schienen für Zombies - Labs

Spähen am DOM durch Firebug, es scheint, dass sie das Canvas-Tag verwenden - ich nehme an, das ist die Befehlszeile, richtig? Wie stellen sie auf der Ruby-Seite außerdem sicher, dass der eingegebene Code für die Beantwortung der Frage erforderlich ist? Oder haben sie nur ein Test-Setup mit RSpec/Cucumber?

Jede Hilfe wird sehr geschätzt. :)

Antwort

14

Für den in Browser-Code-Editor wir Mozilla Bespin verwenden, jetzt als Skywriter bekannt. Für die Evaluierung auf der Serverseite verwenden wir eine Sandbox, um den Ruby-Code auszuführen, wie Andy Lindeman feststellte. In den meisten Fällen verwenden wir Tests, um sicherzustellen, dass der Code das tut, was Sie tun sollen.

Es ist definitiv kein einfaches Stück Code. Wenn Sie daran interessiert sind, mit unserer Suchmaschine ein Tutorial zu erstellen, wenden Sie sich bitte an uns. Gregg bei EnvyLabs.

+0

Hallo Greg! Danke für die Antwort, es war sehr aufschlussreich. Ich muss innehalten und Sie wissen lassen, dass ich nicht glauben kann, dass Sie sich Zeit genommen haben, auf MEINE Frage zu schreiben - Sie sind wie eine Berühmtheit! :) Wie auch immer, ich war neugierig, weil ich ein Ausbilder an einer Community College bin und gerne etwas Ähnliches wie die Labors für meine Studenten machen würde; Dies ist eine fantastische Möglichkeit, durch Unterhaltung zu lernen. Ich würde gerne mit Ihnen weitermachen und Sie zu dem Angebot einladen, den Motor zu nutzen oder zumindest eine Chance zu haben, sich mit dem Ansatz vertraut zu machen. Wieder eine gute Arbeit! :) –

6

Ich arbeite nicht für Envy Labs, aber ich würde denken, dass der Ruby-Code einfach unverändert auf dem Server gesendet wird, wo er in einer Art Sandbox ausgeführt wird.

Es ist wahrscheinlich ähnlich wie tryruby.org arbeitet, deren Quelle freely available for your reading pleasure :)