From 4016d67c40b2f7f92a47be2af1a68f4c4a6a2972 Mon Sep 17 00:00:00 2001 From: "shigeru.nakajima" Date: Tue, 5 May 2026 14:29:08 +0900 Subject: [PATCH] Add Ruby::Box example --- .../ruby-wasm-wasi/example/README.md | 1 + .../ruby-wasm-wasi/example/ruby-box.node.js | 28 +++++++++++++++++++ 2 files changed, 29 insertions(+) create mode 100644 packages/npm-packages/ruby-wasm-wasi/example/ruby-box.node.js diff --git a/packages/npm-packages/ruby-wasm-wasi/example/README.md b/packages/npm-packages/ruby-wasm-wasi/example/README.md index d181d6543..4d95d5eb7 100644 --- a/packages/npm-packages/ruby-wasm-wasi/example/README.md +++ b/packages/npm-packages/ruby-wasm-wasi/example/README.md @@ -16,4 +16,5 @@ $ # Open http://localhost:8000/script-src ```console $ npm install $ node --experimental-wasi-unstable-preview1 index.node.js +$ node ruby-box.node.js ``` diff --git a/packages/npm-packages/ruby-wasm-wasi/example/ruby-box.node.js b/packages/npm-packages/ruby-wasm-wasi/example/ruby-box.node.js new file mode 100644 index 000000000..4468780c8 --- /dev/null +++ b/packages/npm-packages/ruby-wasm-wasi/example/ruby-box.node.js @@ -0,0 +1,28 @@ +import fs from "fs/promises"; +import { DefaultRubyVM } from "@ruby/wasm-wasi/dist/node"; + +// $ node ruby-box.node.js + +const main = async () => { + const binary = await fs.readFile( + "./node_modules/@ruby/head-wasm-wasi/dist/ruby.wasm", + ); + const module = await WebAssembly.compile(binary); + const { vm } = await DefaultRubyVM(module, { + env: { + RUBY_BOX: "1", + }, + }); + + vm.eval(` + box = Ruby::Box.new + box.eval <<~RUBY + X = 123 + RUBY + + puts "Ruby::Box.enabled?: #{Ruby::Box.enabled?}" + puts "box::X: #{box::X}" + `); +}; + +main();