Move register_asset into PluginRegistry -- the logic works better

there.
This commit is contained in:
Robin Ward
2014-12-09 14:20:53 -05:00
parent 2b817f826b
commit 663cd93c6d
4 changed files with 103 additions and 99 deletions

View File

@ -68,6 +68,34 @@ class DiscoursePluginRegistry
Archetype.register(name, options)
end
def self.register_asset(asset, opts=nil)
if asset =~ /\.js$|\.js\.erb$|\.js\.es6$/
if opts == :admin
self.admin_javascripts << asset
else
if opts == :server_side
self.server_side_javascripts << asset
end
self.javascripts << asset
end
elsif asset =~ /\.css$|\.scss$/
if opts == :mobile
self.mobile_stylesheets << asset
elsif opts == :desktop
self.desktop_stylesheets << asset
elsif opts == :variables
self.sass_variables << asset
else
self.stylesheets << asset
end
elsif asset =~ /\.hbs$/
self.handlebars << asset
elsif asset =~ /\.js\.handlebars$/
self.handlebars << asset
end
end
def javascripts
self.class.javascripts
end
@ -106,6 +134,17 @@ class DiscoursePluginRegistry
self.handlebars = nil
end
def self.reset!
javascripts.clear
admin_javascripts.clear
server_side_javascripts.clear
stylesheets.clear
mobile_stylesheets.clear
desktop_stylesheets.clear
sass_variables.clear
serialized_current_user_fields
end
def self.setup(plugin_class)
registry = DiscoursePluginRegistry.new
plugin = plugin_class.new(registry)