Skip to content

feat(tutorial): apply setup.rubyVersion in deck-setup foundation (#849)#855

Open
smalruby3-editor-bot[bot] wants to merge 2 commits into
developfrom
topic/autopilot-849
Open

feat(tutorial): apply setup.rubyVersion in deck-setup foundation (#849)#855
smalruby3-editor-bot[bot] wants to merge 2 commits into
developfrom
topic/autopilot-849

Conversation

@smalruby3-editor-bot

Copy link
Copy Markdown

Summary

deck 起動時に環境をセットアップする横断機構 (applyDeckSetup) の setup.rubyVersion 対応を追加します。

この基盤機構 (src/lib/deck-setup.js + tips-library.jsx 連携) は先行 PR で develop にマージ済みで、setup.tab / setup.rubyMode / setup.extensions は既に適用されていました。しかし Issue #849 が宣言した setup: {tab, rubyMode, extensions, rubyVersion} のうち rubyVersion だけがドキュメントマーカーのみで未実装でした。本 PR でそれを実装し、Issue の仕様どおりに完成させます。

Changes Made

  • src/lib/deck-setup.js
    • setup.rubyVersion を正規化 (1/2 の数値、'1'/'2' の文字列どちらも受理、それ以外は無視)
    • 設定メニュー・URL ローダーと同じ経路で dispatch(setRubyVersion(...)) + persistRubyVersion(...)(remount をまたいで保持)
    • 不正値・省略時は何もしない(冪等・後方互換を維持)
    • JSDoc の setup 例に rubyVersion を追記
  • test/unit/lib/deck-setup.test.js
    • rubyVersion の単体テスト 3 ケース追加(数値 / 文字列 / 不正・省略)

Test Coverage

  • test/unit/lib/deck-setup.test.js — 全 13 ケース pass(新規 3 ケース含む)
  • lint: 変更ファイルは eslint / prettier ともにクリーン(リポジトリの既存エラー 2 件は生成ファイル未ビルドによるもので本 PR とは無関係)

Notes

setup.rubyVersion を使う deck はまだ存在しないため(Phase 2 以降で追加予定)、既存 10 deck への影響はありません。

Related Issues

Closes #849
Part of #679

🤖 Generated with Claude Code

deck 起動時の setup 基盤 (applyDeckSetup) は tab / rubyMode / extensions を

既に適用していたが、Issue で宣言された setup プロパティの rubyVersion だけ

未対応 (ドキュメントマーカーのみ) だった。これを実装して設計どおり完成させる。

- setup.rubyVersion (1|2 の数値、'1'|'2' の文字列どちらも受理) を正規化

- 設定メニュー / URL ローダーと同じく setRubyVersion dispatch + persistRubyVersion

- 不正値・省略時は無視 (現状維持)。冪等・後方互換を維持

- 単体テスト 3 ケース追加 (数値/文字列/不正値)。全 13 ケース pass

Closes #849

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
@smalruby3-editor-bot smalruby3-editor-bot Bot added the 🤖 autopilot autopilot(AI)が管理する PR/Issue(AI処理対象) label Jul 1, 2026
@smalruby3-editor-bot

smalruby3-editor-bot Bot commented Jul 1, 2026

Copy link
Copy Markdown
Author

🤖 autopilot status

field value
Status Review
AI Status
HITL Yes
Size middle

Linked issue #849. Maintained by autopilot (single writer); do not edit.

@smalruby3-editor-bot

Copy link
Copy Markdown
Author

🤖 autopilot 敵対的レビュー (review フェーズ)

別レビュアー視点で PR #855 の差分をレビューし、明白な点を自分で修正しました。

確認した観点と結論

  • 正確性: setup.rubyVersion の適用は、settings-menu / url-loader / sb-file-uploader / google-drive-loader / mobile-drawer で使われている dispatch(setRubyVersion(v)) + persistRubyVersion(v) パターンと完全に一致。独自の副作用はなし。✅
  • 入力検証の堅牢性: normalizeRubyVersionVERSION_1/VERSION_2'1'/'2')以外を null に落とすため、persistRubyVersion の「不正値で throw」に到達しない。null/undefined/0/3/'bogus'String() 経由で安全に無視される(テスト済み)。✅
  • 冪等・後方互換: 省略時・不正値時は no-op。既存 10 deck(setup 無し)に影響なし。✅
  • 規約: deck-setup.js は Smalruby 固有ファイル(先頭マーカー付き)でマーカー不要。両ファイルとも .prettierignore ホワイトリスト済み。eslint 0 error / prettier clean。✅
  • テスト: 単体テスト 13 ケース全 pass(rubyVersion の数値・文字列・不正/省略の 3 ケース追加)。✅

自分で修正した点

  • docs/tutorial/progress.mdrubyVersion を「将来用フックのみ」と記述したまま & テスト数 10 のままで stale だったため、実装済み・13 ケースに更新(commit a0ff24e)。

人間レビューへ渡します。

@smalruby3-editor-bot smalruby3-editor-bot Bot added the 🙋 HITL 人間の対応待ち(レビュー/判断/マージ) label Jul 1, 2026
@smalruby3-editor-bot smalruby3-editor-bot Bot marked this pull request as ready for review July 1, 2026 01:24
@github-actions

github-actions Bot commented Jul 1, 2026

Copy link
Copy Markdown

🚀 Preview deployed: https://smalruby.jp/smalruby3-editor/topic/autopilot-849/

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

🤖 autopilot autopilot(AI)が管理する PR/Issue(AI処理対象) 🙋 HITL 人間の対応待ち(レビュー/判断/マージ)

Projects

None yet

Development

Successfully merging this pull request may close these issues.

feat(tutorial): deck 起動時の setup 基盤機構 (setup プロパティ)

1 participant