diff --git a/app/views/layouts/super/application.html.erb b/app/views/layouts/super/application.html.erb index 6cfa10b5..222e4926 100644 --- a/app/views/layouts/super/application.html.erb +++ b/app/views/layouts/super/application.html.erb @@ -10,7 +10,7 @@ <% Super.configuration.stylesheets.each do |stylesheet| %> - <% if stylesheet.handler.sprockets? %> + <% if stylesheet.handler.sprockets? || stylesheet.handler.propshaft? %> <%= stylesheet_link_tag(stylesheet.path, **stylesheet.arguments) %> <% elsif stylesheet.handler.webpacker? %> <%= stylesheet_pack_tag(stylesheet.path, **stylesheet.arguments) %> @@ -18,7 +18,7 @@ <% end %> <% Super.configuration.javascripts.each do |javascript| %> - <% if javascript.handler.sprockets? %> + <% if javascript.handler.sprockets? || javascript.handler.propshaft? %> <%= javascript_include_tag(javascript.path) %> <% elsif javascript.handler.webpacker? %> <%= javascript_pack_tag(javascript.path) %> diff --git a/lib/super/assets.rb b/lib/super/assets.rb index 2b248325..a7ea1ed7 100644 --- a/lib/super/assets.rb +++ b/lib/super/assets.rb @@ -11,6 +11,10 @@ def self.sprockets(path, **arguments) Asset.new(handler: Handler.sprockets, path: path, arguments: arguments) end + def self.propshaft(path, **arguments) + Asset.new(handler: Handler.propshaft, path: path, arguments: arguments) + end + def self.auto(path, **arguments) Asset.new(handler: Handler.auto, path: path, arguments: arguments) end @@ -96,6 +100,14 @@ def auto end end + propshaft_spec = gem_specification("propshaft") + if propshaft_spec + minor = propshaft_spec.version.segments.second + if minor >= 7 + return propshaft + end + end + webpacker_spec = gem_specification("webpacker") if webpacker_spec major = webpacker_spec.version.segments.first @@ -124,6 +136,10 @@ def self.webpacker @webpacker ||= new(:webpacker) end + def self.propshaft + @propshaft ||= new(:propshaft) + end + def self.none @none ||= new(:none) end @@ -140,6 +156,10 @@ def sprockets? @asset_handler == :sprockets end + def propshaft? + @asset_handler == :propshaft + end + def webpacker? @asset_handler == :webpacker end diff --git a/super.gemspec b/super.gemspec index a30a4e78..e0e9ae0b 100644 --- a/super.gemspec +++ b/super.gemspec @@ -41,6 +41,7 @@ Gem::Specification.new do |spec| spec.add_development_dependency "webdrivers", "~> 4.3" spec.add_development_dependency "puma", "~> 4.3", ">= 4.3.6" spec.add_development_dependency "sqlite3" + # spec.add_development_dependency "propshaft" spec.add_development_dependency "pry-rails" spec.add_development_dependency "mocha" spec.add_development_dependency "i18n-debug"