A safe way to create class variables in a multisite environment.

This should allow plugins to set class variables that will not
stomp on other plugins.
This commit is contained in:
Robin Ward
2017-09-27 12:59:54 -04:00
parent 6700aed8ab
commit 3e13becf33
6 changed files with 103 additions and 21 deletions

View File

@@ -2,8 +2,10 @@ require_dependency 'guardian'
require_dependency 'topic_query'
require_dependency 'filter_best_posts'
require_dependency 'gaps'
require_dependency 'multisite_class_var'
class TopicView
include MultisiteClassVar
attr_reader :topic, :posts, :guardian, :filtered_posts, :chunk_size, :print, :message_bus_last_id
attr_accessor :draft, :draft_key, :draft_sequence, :user_custom_fields, :post_custom_fields
@@ -24,9 +26,7 @@ class TopicView
@default_post_custom_fields ||= ["action_code_who"]
end
def self.post_custom_fields_whitelisters
@post_custom_fields_whitelisters ||= Set.new
end
multisite_class_var(:post_custom_fields_whitelisters) { Set.new }
def self.add_post_custom_fields_whitelister(&block)
post_custom_fields_whitelisters << block