Skip to content

Conversation

yasulab
Copy link
Member

@yasulab yasulab commented Sep 10, 2025

概要

タイムテーブルの計算処理(文字列処理・時刻計算など)をLiquidテンプレートから分離し、それぞれの役割を明確化しました。

1. 計算処理をテンプレートから分離 (d662724)

  • 時間計算などのロジックを Liquid テンプレートから分離
  • _plugins/time_table_generator.rb でデータを計算

2. 計算結果をテンプレートに渡して描画 (2d26d3e)

  • _data/time_table.yml のデータ構造をそのまま活用して計算
  • 細かな変数名などは HTML に合わせて、なるべく同じ名前を使用

分離後のそれぞれの役割

  • _plugins/time_table_generator.rb: タイムテーブルのイベント計算部分を担当
  • _pages/time-table.html: タイムテーブルのイベント描画部分を担当

関連 PRs

- Liquidテンプレートから時間計算をプラグインとして実装して簡略化
- Liquidテンプレートから複雑なロジックを除去し、表示のみに専念
- 時間計算のロジックと、描画のテンプレートの可読性をそれぞれ改善
- プラグインコードを30%削減(145行→91行)
- メソッド数を57%削減(7個→3個)
- grid→tableで一貫性のある命名に統一

- 保守性と可読性が大幅に向上
- ビルドパフォーマンスも改善
- コードベース全体で一貫性のある設計
@yasulab yasulab changed the title refactor: タイムテーブル実装をEvent-centric設計で大幅簡素化 refactor: タイムテーブル描画をイベント中心に計算して一貫性を強化 Sep 10, 2025
@yasulab yasulab changed the title refactor: タイムテーブル描画をイベント中心に計算して一貫性を強化 refactor: タイムテーブルの計算処理と描画処理をそれぞれ分離し、それぞれの処理を読みやすくした Sep 10, 2025
@yasulab yasulab changed the title refactor: タイムテーブルの計算処理と描画処理をそれぞれ分離し、それぞれの処理を読みやすくした refactor: タイムテーブルの計算処理と描画処理を分離し、それぞれの処理を読みやすくした Sep 10, 2025
@yasulab yasulab changed the title refactor: タイムテーブルの計算処理と描画処理を分離し、それぞれの処理を読みやすくした refactor: タイムテーブルの計算処理と描画処理を分離し、それぞれの役割を明確化 Sep 10, 2025
- span → duration: イベントの継続時間を表す適切な名前に変更
- start_slot/end_slot → slot_start/slot_end: 命名パターンを統一
- start_minutes/end_minutes → event_start/event_end: イベントの時間であることを明確化

他、細かな cosmetic change など。
- プラグインから未使用のrequire文を削除
- Gemfileからactivesupport gemを削除
- bundle installで依存関係を元の状態に戻した
@yasulab
Copy link
Member Author

yasulab commented Sep 10, 2025

@takusandayooo こちらもし良さそうならマージしていただけると...!! 🙏✨

@takusandayooo
Copy link
Collaborator

@yasulab
実装ありがとうございます。マージします!!!

@takusandayooo takusandayooo merged commit 80e7720 into add-time-table-page Sep 10, 2025
2 checks passed
@takusandayooo takusandayooo deleted the refactor-time-table-with-plugin branch September 10, 2025 10:54
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

2 participants