Rubyで犬の散歩記録を効率的に管理・集計するデータ構造とメソッド設計

Ruby

犬の散歩記録をRubyで管理する場合、日時・距離・場所などの情報を効率よく保存し、後から検索や集計がしやすい構造にすることが重要です。本記事では、配列やハッシュを活用した設計方法と、集計メソッドの考え方を解説します。

散歩記録を表すデータ構造

基本的には、1回の散歩をハッシュで表現し、複数回の散歩は配列で管理する方法がシンプルで扱いやすいです。

例:
walk = { date: '2026-04-09', distance: 2.5, location: '公園' }
walks = [walk1, walk2, walk3]

クラスを活用したオブジェクト指向設計

より柔軟に管理したい場合は、Walkクラスを作成し、犬の散歩記録をオブジェクトとして扱う方法がおすすめです。

例:
class Walk
attr_accessor :date, :distance, :location
def initialize(date, distance, location)
@date = date
@distance = distance
@location = location
end
end

これにより、walks配列にWalkオブジェクトを格納でき、メソッドで処理しやすくなります。

集計や検索のメソッド設計

総距離や平均距離の算出にはEnumerableモジュールのメソッドを活用できます。

例:
total_distance = walks.sum(&:distance)
average_distance = walks.sum(&:distance) / walks.size

特定の場所や期間での検索にはselectメソッドを使用します。
park_walks = walks.select { |w| w.location == '公園' }

表示や整形の工夫

集計結果や一覧を表示する際には、to_sメソッドやformatを使うと見やすくなります。

例:
walks.each { |w| puts format("%s: %.1fkm (%s)", w.date, w.distance, w.location) }

まとめ

Rubyで犬の散歩記録を効率よく管理するには、散歩1回をハッシュやオブジェクトで表現し、配列でまとめる方法が基本です。Enumerableメソッドを活用することで、総距離や平均距離の集計、特定条件での検索も簡単に行えます。to_sやformatを組み合わせれば、画面表示も見やすく整理できます。

コメント

タイトルとURLをコピーしました