Class: RailsSpotlight::Railtie

Inherits:
Rails::Railtie
  • Object
show all
Defined in:
lib/rails_spotlight/railtie.rb

Instance Method Summary collapse

Instance Method Details

#appObject



73
# File 'lib/rails_spotlight/railtie.rb', line 73

def app = Rails.application

#insert_action_cable_helpersObject



34
35
36
37
38
39
40
41
42
43
44
# File 'lib/rails_spotlight/railtie.rb', line 34

def insert_action_cable_helpers
  return unless ::RailsSpotlight.config.action_cable_present?

  app.config.after_initialize do
    update_actioncable_allowed_request_origins!

    require 'rails_spotlight/channels/spotlight_channel' if ::RailsSpotlight.config.request_completed_broadcast_enabled?

    app.routes.draw { mount ActionCable.server => ::RailsSpotlight.config.cable_mount_path || '/cable' } if ::RailsSpotlight.config.auto_mount_cable?
  end
end

#insert_base_middlewaresObject



51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
# File 'lib/rails_spotlight/railtie.rb', line 51

def insert_base_middlewares
  app.middleware.use ::RailsSpotlight::Middlewares::RequestHandler

  if defined? ActionDispatch::DebugExceptions
    app.middleware.insert_before ActionDispatch::DebugExceptions, ::RailsSpotlight::Middlewares::HeaderMarker, app.config
  else
    app.middleware.use ::RailsSpotlight::Middlewares::HeaderMarker, app.config
  end

  app.middleware.use ::RailsSpotlight::Middlewares::MainRequestHandler

  return unless ::RailsSpotlight.config.request_completed_broadcast_enabled?
  return unless ActionCable.server.config&.cable&.dig(:adapter).present?

  # app.middleware.insert_after ::RailsSpotlight::Middlewares::HeaderMarker, RailsSpotlight::Middlewares::RequestCompleted, app.config
  if defined? ActionDispatch::Executor
    app.middleware.insert_after ActionDispatch::Executor, ::RailsSpotlight::Middlewares::RequestCompleted, app.config
  else
    app.middleware.use ::RailsSpotlight::Middlewares::RequestCompleted
  end
end

#update_actioncable_allowed_request_origins!Object



46
47
48
49
# File 'lib/rails_spotlight/railtie.rb', line 46

def update_actioncable_allowed_request_origins!
  existing_origins = Array(app.config.action_cable.allowed_request_origins)
  app.config.action_cable.allowed_request_origins = existing_origins | [%r{\Achrome-extension://.*\z}]
end