This repository has been archived on 2024-06-09. You can view files and clone it, but cannot push or open issues/pull-requests.
2018-11-19 00:43:52 +01:00
|
|
|
# frozen_string_literal: true
|
|
|
|
|
|
|
|
module AccountCounters
|
|
|
|
extend ActiveSupport::Concern
|
|
|
|
|
|
|
|
included do
|
|
|
|
has_one :account_stat, inverse_of: :account
|
|
|
|
after_save :save_account_stat
|
|
|
|
end
|
|
|
|
|
|
|
|
delegate :statuses_count,
|
|
|
|
:statuses_count=,
|
|
|
|
:following_count,
|
|
|
|
:following_count=,
|
|
|
|
:followers_count,
|
|
|
|
:followers_count=,
|
|
|
|
:increment_count!,
|
|
|
|
:decrement_count!,
|
2018-12-06 17:36:11 +01:00
|
|
|
:last_status_at,
|
2018-11-19 00:43:52 +01:00
|
|
|
to: :account_stat
|
|
|
|
|
|
|
|
def account_stat
|
|
|
|
super || build_account_stat
|
|
|
|
end
|
|
|
|
|
|
|
|
private
|
|
|
|
|
|
|
|
def save_account_stat
|
2019-08-18 14:55:03 +02:00
|
|
|
return unless association(:account_stat).loaded? && account_stat&.changed?
|
|
|
|
|
2018-11-19 00:43:52 +01:00
|
|
|
account_stat.save
|
|
|
|
end
|
|
|
|
end
|