Class: RailsMail::FrontendsController
- Inherits:
-
ActionController::Base
- Object
- ActionController::Base
- RailsMail::FrontendsController
- Defined in:
- app/controllers/rails_mail/frontends_controller.rb
Overview
rubocop:disable Rails/ApplicationController
Constant Summary collapse
- STATIC_ASSETS =
{ css: { # tailwind: RailsMail::Engine.root.join("app", "frontend", "rails_mail", "vendor", "tailwind", "tailwind.min.css"), style: RailsMail::Engine.root.join("app", "frontend", "rails_mail", "style.css") }, js: { tailwind: RailsMail::Engine.root.join("app", "frontend", "rails_mail", "vendor", "tailwind", "tailwind.min.js") }, png: { rails_mail_logo: RailsMail::Engine.root.join("app", "assets", "images", "rails_mail", "rails-mail.png") } }.freeze
- MODULE_OVERRIDES =
Additional JS modules that don’t live in app/frontend/rails_mail/modules
{ application: RailsMail::Engine.root.join("app", "frontend", "rails_mail", "application.js"), stimulus: RailsMail::Engine.root.join("app", "frontend", "rails_mail", "vendor", "stimulus.js"), turbo: RailsMail::Engine.root.join("app", "frontend", "rails_mail", "vendor", "turbo.js"), action_cable: RailsMail::Engine.root.join("app", "frontend", "rails_mail", "vendor", "action_cable.js"), "date-fns": RailsMail::Engine.root.join("app", "frontend", "rails_mail", "vendor", "date-fns.js") }.freeze
Class Method Summary collapse
Instance Method Summary collapse
Class Method Details
.js_modules ⇒ Object
25 26 27 28 29 30 31 |
# File 'app/controllers/rails_mail/frontends_controller.rb', line 25 def self.js_modules if Rails.env.production? @_js_modules ||= load_js_modules else load_js_modules end end |
.load_js_modules ⇒ Object
33 34 35 36 37 38 |
# File 'app/controllers/rails_mail/frontends_controller.rb', line 33 def self.load_js_modules RailsMail::Engine.root.join("app", "frontend", "rails_mail", "modules").children.select(&:file?).each_with_object({}) do |file, modules| key = File.basename(file.basename.to_s, ".js").to_sym modules[key] = file end.merge(MODULE_OVERRIDES) end |
Instance Method Details
#module ⇒ Object
48 49 50 51 52 |
# File 'app/controllers/rails_mail/frontends_controller.rb', line 48 def module raise(ActionController::RoutingError, "Not Found") if params[:format] != "js" render file: self.class.js_modules[params[:name].to_sym] || raise(ActionController::RoutingError, "Not Found") end |
#static ⇒ Object
44 45 46 |
# File 'app/controllers/rails_mail/frontends_controller.rb', line 44 def static render file: STATIC_ASSETS.dig(params[:format].to_sym, params[:name].to_sym) || raise(ActionController::RoutingError, "Not Found") end |