mirror of
https://github.com/discourse/discourse.git
synced 2025-05-23 09:22:42 +08:00
FEATURE: Allow plugins to dynamically add seed fixture paths
This is useful if your plugin wants different seed data for different locales for example.
This commit is contained in:
@ -64,6 +64,10 @@ class DiscoursePluginRegistry
|
||||
@html_builders ||= {}
|
||||
end
|
||||
|
||||
def seed_path_builders
|
||||
@seed_path_builders ||= Set.new
|
||||
end
|
||||
|
||||
def vendored_pretty_text
|
||||
@vendored_pretty_text ||= Set.new
|
||||
end
|
||||
@ -136,6 +140,10 @@ class DiscoursePluginRegistry
|
||||
self.seed_data[key] = value
|
||||
end
|
||||
|
||||
def self.register_seed_path_builder(&block)
|
||||
seed_path_builders << block
|
||||
end
|
||||
|
||||
def self.register_html_builder(name, &block)
|
||||
html_builders[name] ||= []
|
||||
html_builders[name] << block
|
||||
@ -146,6 +154,14 @@ class DiscoursePluginRegistry
|
||||
builders.map { |b| b.call(ctx) }.join("\n").html_safe
|
||||
end
|
||||
|
||||
def self.seed_paths
|
||||
result = SeedFu.fixture_paths.dup
|
||||
unless Rails.env.test? && ENV['LOAD_PLUGINS'] != "1"
|
||||
seed_path_builders.each { |b| result += b.call }
|
||||
end
|
||||
result
|
||||
end
|
||||
|
||||
def javascripts
|
||||
self.class.javascripts
|
||||
end
|
||||
@ -190,6 +206,7 @@ class DiscoursePluginRegistry
|
||||
asset_globs.clear
|
||||
html_builders.clear
|
||||
vendored_pretty_text.clear
|
||||
seed_path_builders.clear
|
||||
end
|
||||
|
||||
def self.setup(plugin_class)
|
||||
|
Reference in New Issue
Block a user