From e27f792c24d1040246bc6ae890e6052f763cdb84 Mon Sep 17 00:00:00 2001 From: "Akihiko Odaki (@fn_aki@pawoo.net)" Date: Fri, 23 Jun 2017 01:34:27 +0900 Subject: Some minor change and spec for Account (#3813) * Introduce domains method to Account relation Account had followers_domains method, which was excessively specific. Let relation of Account have domains method instead. * Move follow_mapping in Account to AccountInteractions * Introduce shared examples for AccountAvatar inclusion * Cover Account more --- app/models/account.rb | 12 ++++-------- app/models/concerns/account_interactions.rb | 6 ++++++ 2 files changed, 10 insertions(+), 8 deletions(-) (limited to 'app/models') diff --git a/app/models/account.rb b/app/models/account.rb index 72bad51a2..2b54cee5f 100644 --- a/app/models/account.rb +++ b/app/models/account.rb @@ -124,10 +124,6 @@ class Account < ApplicationRecord subscription_expires_at.present? end - def followers_domains - followers.reorder(nil).pluck('distinct accounts.domain') - end - def keypair OpenSSL::PKey::RSA.new(private_key || public_key) end @@ -163,6 +159,10 @@ class Account < ApplicationRecord end class << self + def domains + reorder(nil).pluck('distinct accounts.domain') + end + def triadic_closures(account, limit: 5, offset: 0) sql = <<-SQL.squish WITH first_degree AS ( @@ -236,10 +236,6 @@ class Account < ApplicationRecord [textsearch, query] end - - def follow_mapping(query, field) - query.pluck(field).each_with_object({}) { |id, mapping| mapping[id] = true } - end end before_create :generate_keys diff --git a/app/models/concerns/account_interactions.rb b/app/models/concerns/account_interactions.rb index de5979958..9ffed2910 100644 --- a/app/models/concerns/account_interactions.rb +++ b/app/models/concerns/account_interactions.rb @@ -29,6 +29,12 @@ module AccountInteractions blocked_domains = AccountDomainBlock.where(account_id: account_id, domain: accounts_map.values).pluck(:domain) accounts_map.map { |id, domain| [id, blocked_domains.include?(domain)] }.to_h end + + private + + def follow_mapping(query, field) + query.pluck(field).each_with_object({}) { |id, mapping| mapping[id] = true } + end end included do -- cgit