class UnreleasedAppearancesPresenter def present(unreleased_appearances) UnreleasedData.new( unreleased_appearances: sort(unreleased_appearances), ) end private def sort(unreleased_appearances) unreleased_appearances.sort_by(&:appears_at) end class UnreleasedData < Struct.new(:unreleased_appearances, keyword_init: true) end end