Przejdź do głównej zawartości

Kod Ruby

Ruby wykonuje się jako CRuby skompilowany do WebAssembly. Na komputerze użytkownika nie jest wymagany żaden Ruby.

SymbolRola
$inputWartość odebrana na porcie wejściowym, już zdekodowana z JSON
$varsZmienne uruchomienia
putsZapisuje w dzienniku wykonania
Ostatnie wyrażenieJego wartość trafia na port result, zakodowana w JSON

Warto zwrócić uwagę na zmienne globalne ($input, $vars): taka jest konwencja Ruby dla tego, co przychodzi z zewnątrz skryptu.

commandes = $input["commandes"]
payees = commandes.select { |c| c["statut"] == "payee" }
total = payees.sum { |c| c["montant"] }
puts "#{payees.size} commandes payées, total #{total}"
{ "nombre" => payees.size, "total" => total }

Biblioteka standardowa Ruby jest dostępna: json, digest, base64, time, uri, set

require "digest"
{ "empreinte" => Digest::SHA256.hexdigest($input["corps"]) }

Pole packages przyjmuje gemy w czystym Ruby. Gem zawierający rozszerzenie natywne zostaje odrzucony, a wykonanie trafia na port error.