|
|
Plugins
|
|
|
=======
|
|
|
|
|
|
Dozentron bietet die Möglichkeit, die unterstützten Sprachen durch Plugins zu erweitern. Diese Plugins übernehmen dabei das Ausführen der Abgaben und Tests.
|
|
|
|
|
|
Plugins werden dabei als Gem bereitgestellt.
|
|
|
|
|
|
|
|
|
Einbinden von Plugins
|
|
|
-------------------
|
|
|
|
|
|
Um ein Plugin in Dozentron einzubinden, muss das entsprechende Gem zunächst installiert werden.
|
|
|
Die Installation eines Gems hängt dabei vom jeweiligen Gem ab, daher kann keine allgemene Anleitung gegeben werden.
|
|
|
Es ist jedoch zu empfehlen, sämtliche installierte Plugins als Dependency dem Gemfile hinzuzufügen.
|
|
|
|
|
|
Nachdem ein Plugins als Ruby Gem eingerichtet wurde, muss es jedoch noch registriert werden.
|
|
|
Dazu muss dem Initializer von `config/initializers/language_support.rb` ein entsprechender Eintrag hinzugefügt werden.
|
|
|
|
|
|
Dies sieht beispielsweise folgendermaßen aus:
|
|
|
```ruby
|
|
|
require 'python_submission_tester/python_submission_test_runner'
|
|
|
SubmissionTesterLanguages.registerLanguage! ::PythonSubmissionTester::PythonSubmissionTestRunner::LANGUAGE_NAME, ::PythonSubmissionTester::PythonSubmissionTestRunner
|
|
|
```
|
|
|
|
|
|
Der erste Parameter von `SubmissionTesterLanguages.registerLanguage!` ist dabei der Name der Registrierten Programmiersprache.
|
|
|
Der zweite Parameter ist die Klasse, die den Code ausführen soll.
|
|
|
|
|
|
Eigene Plugins entwerfen
|
|
|
---------------------------
|
|
|
|
|
|
Die Unterstützung für weitere Sprachen wird durch Plugins bereitgestellt. Diese Plugins müssen in der Lage sein, die Abgaben von Studenten auszuführen.
|
|
|
|
|
|
Dazu muss das Interface [ITestRunner](https://git.thm.de/dalt40/dozentron/blob/development/lib/testers/tester_interface.rb) implementiert werden. Dieses übernimmt dann die Ausführung von Abgaben und der Referenz. |