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
    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions