Es gibt ein interessantes Ruby-Gem, mit dem man das Binding des aufrufenden Kontextes bekommen soll: gem install binding_of_caller Die Installation für Ruby 3.2.2 läuft auch brav durch und ein require 'binding_of_caller' wird klaglos ausgeführt. Nur: wie kann ich binding_of_caller aufrufen?
Ich habs: binding.of_caller(1) Der Modul BindingOfCaller wird in Binding includet…
Damit lässt sich schön eine assert-Methode bauen:
1 | def assert(str) |
2 | bnd = binding.of_caller(1) |
3 | if !bnd.eval(str) |
4 | puts("assertion failed: '#{str}'") |
5 | debugger
|
6 | end
|
7 | end
|
8 | |
9 | def test |
10 | aaa = 1 |
11 | assert('0 > aaa') |
12 | end
|
13 | |
14 | test
|
Bitte melde dich an um einen Beitrag zu schreiben. Anmeldung ist kostenlos und dauert nur eine Minute.
Bestehender Account
Schon ein Account bei Google/GoogleMail? Keine Anmeldung erforderlich!
Mit Google-Account einloggen
Mit Google-Account einloggen
Noch kein Account? Hier anmelden.