module SweetNotifications::Railtie

Rails Railtie integration

Public Instance Methods

initialize_rails(name, log_subscriber, controller_runtime) click to toggle source

Attach LogSubscriber and ControllerRuntime to a notifications namespace

@param name [Symbol] Notifications namespace @param log_subscriber [LogSubscriber] subscriber to be attached @param controller_runtime [Module] mixin that logs runtime

# File lib/sweet_notifications/railtie.rb, line 12
def initialize_rails(name, log_subscriber, controller_runtime)
  log_subscriber.attach_to name.to_sym
  ActiveSupport.on_load(:action_controller) do
    include controller_runtime
  end
end
railtie(name, log_subscriber, controller_runtime) click to toggle source

Create a Railtie for LogSubscriber and ControllerRuntime mixin

@param name [Symbol] Notifications namespace @param log_subscriber [LogSubscriber] subscriber to be attached @param controller_runtime [Module] mixin that logs runtime @return [Rails::Railtie] Rails initializer

# File lib/sweet_notifications/railtie.rb, line 25
def railtie(name, log_subscriber, controller_runtime)
  Class.new(Rails::Railtie) do
    railtie_name name
    initializer "#{name}.notifications" do
      SweetNotifications::Railtie.initialize_rails(name,
                                                   log_subscriber,
                                                   controller_runtime)
    end
  end
end