module Froxy::Monkey::SideLoadAssets
Public Instance Methods
render_template(view, template, layout_name, locals)
click to toggle source
Calls superclass method
# File lib/froxy/monkey/side_load_assets.rb, line 8 def render_template(view, template, layout_name, locals) return super if template.type != :html # Side load layout assets - if any. if layout_name layout = find_layout(layout_name, locals.keys, [formats.first]) layout && side_load_assets(view, layout) end # Side load view assets - if any. side_load_assets view, template super end
Private Instance Methods
instrument(action, payload, &block)
click to toggle source
# File lib/froxy/monkey/side_load_assets.rb, line 56 def instrument(action, payload, &block) ActiveSupport::Notifications.instrument("#{action}.action_view", payload, &block) end
side_load_assets(view, tpl)
click to toggle source
# File lib/froxy/monkey/side_load_assets.rb, line 25 def side_load_assets(view, tpl) path = tpl.short_identifier.delete_suffix('.html.erb') instrument :side_loaded_assets, identifier: tpl.identifier, asset_types: [] do |payload| side_load_js path, view, payload side_load_css path, view, payload end end
side_load_css(path, view, log_payload)
click to toggle source
# File lib/froxy/monkey/side_load_assets.rb, line 45 def side_load_css(path, view, log_payload) # Check that the file actually exists. return unless Rails.root.join(path).sub_ext('.css').exist? view.content_for :side_loaded_css do view.stylesheet_link_tag(path).tap do |tag| !tag.nil? && (log_payload[:asset_types] << :css) end end end
side_load_js(path, view, log_payload)
click to toggle source
# File lib/froxy/monkey/side_load_assets.rb, line 34 def side_load_js(path, view, log_payload) # Check that the file actually exists. return unless Rails.root.join(path).sub_ext('.js').exist? view.content_for :side_loaded_js do view.javascript_include_tag(path, type: :module).tap do |tag| !tag.nil? && (log_payload[:asset_types] << :js) end end end