Skip to content

feat(tutorial): Phase 2 - Ruby チュートリアル拡充 (TryRuby ベース、puts 中心) + setup 基盤 #679

@takaokouji

Description

@takaokouji

概要

Phase 2: Ruby 軸チュートリアルを TryRuby ベースで拡充する。コア戦略は puts を共通言語にすること。Smalruby の Ruby → ブロック変換が putslooks_say にマップする (packages/scratch-gui/src/lib/ruby-to-blocks-converter/looks.js:79-151) ため、同じ puts コードが Smalruby ではスプライトがしゃべり、TryRuby ではコンソール出力されるという連続性が成立する。

設計詳細: docs/tutorial/improvement-plan.md Phase 2 セクション参照。

前提となる基盤実装 (このフェーズの一部として先行)

deck 起動時の環境セットアップ機構 (setup プロパティ)

deck 起動時にタブ・Ruby モード・拡張機能を自動セットアップする横断機構。Phase 2 以降のすべての新規 deck がこれに依存する。

  • 新 deck プロパティ setup: { tab, rubyMode, extensions, rubyVersion }
  • tips-library.jsx または cards reducer 経由で deck 起動時に適用
  • activateTab (editor-tab) / setDnclMode (dncl-mode) / vm.extensionManager.loadExtensionURL を呼ぶ
  • 冪等性、ロード失敗時のグレースフルデグレード

設計詳細: improvement-plan.md「チュートリアル起動時の環境セットアップ」セクション。

Ruby チュートリアル 7 deck

新カテゴリ rubyBasics 配下:

Deck ID 内容 TryRuby 対応 Smalruby 翻案
ruby-basics-1-numbers 計算 (puts 4 * 10) try_ruby_20〜40 ネコが「40」としゃべる
ruby-basics-2-strings 文字列反転 (puts "スモウルビー".reverse) try_ruby_50〜100
ruby-basics-3-variables 変数 (name = "ネコ"; puts ...) try_ruby_110〜140
ruby-basics-4-arrays 配列 (ticket.reverse) try_ruby_150〜200
ruby-basics-5-blocks `5.times { i puts i }`
ruby-basics-6-methods def hello(name) try_ruby_350〜420
ruby-basics-7-next TryRuby 導線 try_ruby_560 「Smalruby で書いた puts コードは TryRuby でもそのまま動くよ」+ 外部リンク

setup 例

'ruby-basics-1-numbers': {
    setup: { tab: 'ruby', rubyMode: 'ruby' },
    // ...
}

スコープ

  • Lv1 のみ (Lv2/Lv3 は将来課題)
  • 1 deck あたり 5〜7 ステップ × 7 deck ≒ 35〜50 枚画像
  • TryRuby 外部リンクの実装方法 (新 step プロパティ externalUrl または既存機構の流用)

DoD

  • 基盤: setup プロパティが 4 観点 (tab / rubyMode / extensions / rubyVersion) で動作
  • 7 deck 追加 (新カテゴリ rubyBasics)
  • 全 step 画像作成 (~50 枚)
  • locale ja/ja-Hira/en 更新
  • TryRuby 外部リンクボタン動作
  • npm run lint
  • Playwright で全 deck の起動・進行を確認

規模見積もり

3〜4 PR (基盤 1 + Ruby deck 2〜3 PR)、1〜2 週間規模。

親 issue

このタスクは チュートリアル全体拡充 の一環。親 issue は別途作成。

関連資料

  • 全体設計: docs/tutorial/improvement-plan.md
  • TryRuby 日本語訳: ~/ghq/github.com/ruby/TryRuby/translations/ja/
  • Ruby → ブロック変換: packages/scratch-gui/src/lib/ruby-to-blocks-converter/looks.js

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions