Model concerns organization into module namespaces (#28149)

This commit is contained in:
Matt Jankowski 2023-12-01 06:00:41 -05:00 committed by GitHub
parent b751078fcd
commit 440b80b2e7
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
31 changed files with 62 additions and 62 deletions

View file

@ -70,19 +70,20 @@ class Account < ApplicationRecord
URL_PREFIX_RE = %r{\Ahttp(s?)://[^/]+}
USERNAME_ONLY_RE = /\A#{USERNAME_RE}\z/i
include Attachmentable
include AccountAssociations
include AccountAvatar
include AccountFinderConcern
include AccountHeader
include AccountInteractions
include Paginable
include AccountCounters
include DomainNormalizable
include Attachmentable # Load prior to Avatar & Header concerns
include Account::Associations
include Account::Avatar
include Account::Counters
include Account::FinderConcern
include Account::Header
include Account::Interactions
include Account::Merging
include Account::Search
include Account::StatusesSearch
include DomainMaterializable
include AccountMerging
include AccountSearch
include AccountStatusesSearch
include DomainNormalizable
include Paginable
enum protocol: { ostatus: 0, activitypub: 1 }
enum suspension_origin: { local: 0, remote: 1 }, _prefix: true

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountAssociations
module Account::Associations
extend ActiveSupport::Concern
included do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountAvatar
module Account::Avatar
extend ActiveSupport::Concern
IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountCounters
module Account::Counters
extend ActiveSupport::Concern
ALLOWED_COUNTER_KEYS = %i(statuses_count following_count followers_count).freeze

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountFinderConcern
module Account::FinderConcern
extend ActiveSupport::Concern
class_methods do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountHeader
module Account::Header
extend ActiveSupport::Concern
IMAGE_MIME_TYPES = ['image/jpeg', 'image/png', 'image/gif', 'image/webp'].freeze

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountInteractions
module Account::Interactions
extend ActiveSupport::Concern
class_methods do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountMerging
module Account::Merging
extend ActiveSupport::Concern
def merge_with!(other_account)

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountSearch
module Account::Search
extend ActiveSupport::Concern
DISALLOWED_TSQUERY_CHARACTERS = /['?\\:]/

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module AccountStatusesSearch
module Account::StatusesSearch
extend ActiveSupport::Concern
included do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module StatusSafeReblogInsert
module Status::SafeReblogInsert
extend ActiveSupport::Concern
class_methods do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module StatusSearchConcern
module Status::SearchConcern
extend ActiveSupport::Concern
included do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module StatusSnapshotConcern
module Status::SnapshotConcern
extend ActiveSupport::Concern
included do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module StatusThreadingConcern
module Status::ThreadingConcern
extend ActiveSupport::Concern
def ancestors(limit, account = nil)

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module HasUserSettings
module User::HasSettings
extend ActiveSupport::Concern
included do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module LdapAuthenticable
module User::LdapAuthenticable
extend ActiveSupport::Concern
class_methods do

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module Omniauthable
module User::Omniauthable
extend ActiveSupport::Concern
TEMP_EMAIL_PREFIX = 'change@me'

View file

@ -1,6 +1,6 @@
# frozen_string_literal: true
module PamAuthenticable
module User::PamAuthenticable
extend ActiveSupport::Concern
included do

View file

@ -30,14 +30,14 @@
#
class Status < ApplicationRecord
include Cacheable
include Discard::Model
include Paginable
include Cacheable
include StatusThreadingConcern
include StatusSnapshotConcern
include RateLimitable
include StatusSafeReblogInsert
include StatusSearchConcern
include Status::SafeReblogInsert
include Status::SearchConcern
include Status::SnapshotConcern
include Status::ThreadingConcern
rate_limit by: :account, family: :statuses

View file

@ -53,9 +53,12 @@ class User < ApplicationRecord
filtered_languages
)
include Redisable
include LanguagesHelper
include HasUserSettings
include Redisable
include User::HasSettings
include User::LdapAuthenticable
include User::Omniauthable
include User::PamAuthenticable
# The home and list feeds will be stored in Redis for this amount
# of time, and status fan-out to followers will include only people
@ -75,10 +78,6 @@ class User < ApplicationRecord
devise :registerable, :recoverable, :validatable,
:confirmable
include Omniauthable
include PamAuthenticable
include LdapAuthenticable
belongs_to :account, inverse_of: :user
belongs_to :invite, counter_cache: :uses, optional: true
belongs_to :created_by_application, class_name: 'Doorkeeper::Application', optional: true