From 54d4e5252be8cd9fa780df46e06541da8263d368 Mon Sep 17 00:00:00 2001 From: ThibG Date: Tue, 12 Jan 2021 09:27:38 +0100 Subject: Use Rails' index_by where it makes sense (#15542) * Use Rails' index_by where it makes sense * Fix tests Co-authored-by: Claire --- app/models/account.rb | 2 +- app/models/notification.rb | 2 +- app/models/setting.rb | 2 +- app/models/status.rb | 2 +- app/models/trending_tags.rb | 2 +- 5 files changed, 5 insertions(+), 5 deletions(-) (limited to 'app/models') diff --git a/app/models/account.rb b/app/models/account.rb index 75ebfb2f3..6f5bc6295 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -273,7 +273,7 @@ class Account < ApplicationRecord end def tags_as_strings=(tag_names) - hashtags_map = Tag.find_or_create_by_names(tag_names).each_with_object({}) { |tag, h| h[tag.name] = tag } + hashtags_map = Tag.find_or_create_by_names(tag_names).index_by(&:name) # Remove hashtags that are to be deleted tags.each do |tag| diff --git a/app/models/notification.rb b/app/models/notification.rb index b6db37d6d..5e9ea62a0 100644 --- a/app/models/notification.rb +++ b/app/models/notification.rb @@ -96,7 +96,7 @@ class Notification < ApplicationRecord return if account_ids.empty? - accounts = Account.where(id: account_ids).includes(:account_stat).each_with_object({}) { |a, h| h[a.id] = a } + accounts = Account.where(id: account_ids).includes(:account_stat).index_by(&:id) cached_items.each do |item| item.from_account = accounts[item.from_account_id] diff --git a/app/models/setting.rb b/app/models/setting.rb index a5878e96a..4bcaa060f 100644 --- a/app/models/setting.rb +++ b/app/models/setting.rb @@ -40,7 +40,7 @@ class Setting < RailsSettings::Base def all_as_records vars = thing_scoped - records = vars.each_with_object({}) { |r, h| h[r.var] = r } + records = vars.index_by(&:var) default_settings.each do |key, default_value| next if records.key?(key) || default_value.is_a?(Hash) diff --git a/app/models/status.rb b/app/models/status.rb index 558a37f99..fcc7a026d 100644 --- a/app/models/status.rb +++ b/app/models/status.rb @@ -301,7 +301,7 @@ class Status < ApplicationRecord return if account_ids.empty? - accounts = Account.where(id: account_ids).includes(:account_stat).each_with_object({}) { |a, h| h[a.id] = a } + accounts = Account.where(id: account_ids).includes(:account_stat).index_by(&:id) cached_items.each do |item| item.account = accounts[item.account_id] diff --git a/app/models/trending_tags.rb b/app/models/trending_tags.rb index c69f6d3c3..9c2aa0ee8 100644 --- a/app/models/trending_tags.rb +++ b/app/models/trending_tags.rb @@ -91,7 +91,7 @@ class TrendingTags tags = Tag.where(id: tag_ids) tags = tags.trendable if filtered - tags = tags.each_with_object({}) { |tag, h| h[tag.id] = tag } + tags = tags.index_by(&:id) tag_ids.map { |tag_id| tags[tag_id] }.compact.take(limit) end -- cgit