opal/ディレクトリ全体をpackages/scratch-gui/にコピーscripts/make-setup-opal.jsをコピーpackage.jsonにsetup:opalとprebuildスクリプトを追加webpack.config.jsにopal-loader、alias (opal,opal-parser)、.mjsルールを追加npm installによりshelljs,opal-loaderを追加
src/lib/ruby-to-blocks-converter/の全29ファイルをコピーsrc/lib/ruby-parser.jsをコピーruby-parser.jsの Opal 初期化ロジックを Node.js/Jest 環境向けに修正Opal.loadを追加し、Opal.Parser.Ruby31が正しく初期化されるように対応
- ユニットテスト (
test/unit/lib/ruby-to-blocks-converter/) をコピー
- 以下のコンポーネント/コンテナを移行:
mesh-domain-modalkoshien-test-modalblock-display-modalurl-loader-modalgoogle-drive-save-dialogruby-tab(container & snippets)
- 以下の Reducer を移行・統合:
mesh-v2,block-display,google-drive-file,koshien-file,ruby-code
reducers/modals.js,reducers/menus.js,reducers/gui.tsを Smalruby 仕様に更新gui.jsx,menu-bar.jsxを Smalruby 仕様(Rubyタブ、各メニュー項目)に更新react-intlのintlShape消失に伴い、ローカルのsrc/lib/intlShape.js参照に修正gui.jsxにおける Redux ロジックの整理と統合containers/gui.jsxにモーダル(URL Loader, Mesh Domain, Smalruby Koshien)の表示・非表示、およびクローズ処理を統合URLLoaderHOCを導入し、URLLoaderModalにonLoadUrlが渡されない不具合(クラッシュ)を修正components/gui/gui.jsxを純粋なコンポーネントに変換し、Redux への依存を排除
postbuild.mjs,prepublish.mjs,makePWAAssetsManifest.jsを移行package.jsonのbuildスクリプトを Smalruby の後処理を含むように強化.gitignoreを更新し、src/generated/やstatic/microbit/を除外npm installによりcross-fetch,yauzlを追加
- なし
-
ユニットテストの完全パス
-
docker compose run --rm gui bash -c "cd /app/gui/smalruby3-editor/packages/scratch-gui && npm exec jest test/unit/lib/ruby-to-blocks-converter/ruby.test.js"を実行し、修正を確認する。 -
ruby-to-blocks-converter/全体のテストを実行。
-
-
UI 動作確認
- 開発サーバーを起動し、メニュー項目(Rubyの生成、Mesh設定、甲子園テスト等)から各モーダルが正常に開くことを確認。
- Ruby タブが表示され、Monaco Editor が正常にロードされるか確認。
-
コード品質チェック
-
npm run test:lintを実行し、残っている警告やエラーを修正。
-
-
ビルド確認
-
npm run buildを実行し、production ビルドが最後まで成功することを確認。 -
postbuild.mjsによるfetch-workerのパス置換が正しく行われているか、生成された JS を確認。
-