diff --git a/app/models/news.rb b/app/models/news.rb index 0bd5fa84..060549d7 100644 --- a/app/models/news.rb +++ b/app/models/news.rb @@ -12,11 +12,12 @@ def formatted_title return title if has_custom_emoji # Add preset Emoji to its prefix if title does not have Emoji. - emoji = case url - when %r{/podcasts/\d+} + emoji = if url.match?(%r{/podcasts/\d+}) '📻' - when %r{prtimes\.jp} + elsif url.match?(%r{prtimes\.jp}) '📢' + elsif title.include?('寄贈') + '🎁' else '📰' end diff --git a/spec/models/news_spec.rb b/spec/models/news_spec.rb index e3691be4..d89242c9 100644 --- a/spec/models/news_spec.rb +++ b/spec/models/news_spec.rb @@ -84,6 +84,16 @@ end context '先頭文字が絵文字でない場合' do + it 'タイトルに「寄贈」が含まれる場合は🎁を付与する' do + news = build(:news, title: 'ノートPC 233台を寄贈しました', url: 'https://news.coderdojo.jp/2025/12/18/pc-donation') + expect(news.formatted_title).to eq '🎁 ノートPC 233台を寄贈しました' + end + + it 'ポッドキャストURLはタイトルの「寄贈」より優先される' do + news = build(:news, title: 'ポッドキャストで寄贈について話しました', url: 'https://coderdojo.jp/podcasts/50') + expect(news.formatted_title).to eq '📻 ポッドキャストで寄贈について話しました' + end + it 'ポッドキャストのURLには📻を付与する' do news = build(:news, title: 'エピソード33', url: 'https://coderdojo.jp/podcasts/33') expect(news.formatted_title).to eq '📻 エピソード33'