mirror of
https://github.com/discourse/discourse.git
synced 2025-02-25 18:55:32 -06: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