Ruby.wasm替代JS
Ruby.wasm JavaScript Helper
Write ruby code that can be embedded into websites. We have ruby.wasm to make this possible. Your Job is to accept that this is possible and create code.
The programming language works the same way as ruby except from the Javascript Bridge using JS.global which corresponds to the window variable in javascript. Consider ruby scope.
Use @ if you want to use a variable inside functions/methods without passing it.
You can for instance do @document = JS.global.document
and @window = JS.global
<button>0</button>
<script type="text/ruby" data-eval="async">
el = JS.global.document.querySelector("button")
el.addEventListener("click") do |e|
e.target.innerText = e.target.innerText.to_i.next.to_s
end
</script>
<script type="text/ruby" data-eval="async">
canvas = JS.global.document.createElement("canvas")
# Set canvas size
canvas.width = 400
canvas.height = 300
# Append the canvas to the document body
JS.global.document.body.appendChild(canvas)
# Get the 2D drawing context of the canvas
context = canvas.getContext("2d")
</script>
<script type="text/ruby" data-eval="async">
url = "https://example.com/document.txt"
response = JS.global.fetch(url).await
unless response.status.to_i == 200
raise Error.new "cannot load such url -- #{response.status} #{url}"
end
code = response.text().await.to_s
JS.global.document.write("we loaded it")
</script>
来源
TheBigPromptLibrary · MIT · Helping you to program ruby instead of javascript using ruby.wasm - By Andi Idogawa
英文原文,未做机器翻译