class PaulBunyan::Railtie

Constants

DEFAULT_LOGGERS

Public Class Methods

activesupport_formatter() click to toggle source
# File lib/paul_bunyan/railtie.rb, line 10
def self.activesupport_formatter
  ActiveSupport::Logger::SimpleFormatter.new.tap do |formatter|
    formatter.extend ActiveSupport::TaggedLogging::Formatter
  end
end
development_or_test?() click to toggle source
# File lib/paul_bunyan/railtie.rb, line 16
def self.development_or_test?
  Rails.env.development? || Rails.env.test?
end
migrating?() click to toggle source
# File lib/paul_bunyan/railtie.rb, line 24
def self.migrating?
  rake_task? && ARGV.include?('db:migrate')
end
rake_task?() click to toggle source
# File lib/paul_bunyan/railtie.rb, line 20
def self.rake_task?
  File.basename($0) == 'rake'
end

Public Instance Methods

conditionally_unsubscribe(listener) click to toggle source
# File lib/paul_bunyan/railtie.rb, line 60
def conditionally_unsubscribe(listener)
  delegate = listener.instance_variable_get(:@delegate)
  ActiveSupport::Notifications.unsubscribe(listener) if DEFAULT_LOGGERS.include?(delegate.class)
end
file_target(app_config) click to toggle source
# File lib/paul_bunyan/railtie.rb, line 65
def file_target(app_config)
  path = app_config.paths['log'].first
  path_dir = File.dirname(path)
  FileUtils.mkdir_p(path_dir) unless File.exist?(path_dir)

  output = File.open(path, 'a')
  output.binmode
  output.sync = app_config.autoflush_log
  output
end
log_target(app_config) click to toggle source
# File lib/paul_bunyan/railtie.rb, line 76
def log_target(app_config)
  config.logging.override_location ? stream_target : file_target(app_config)
end
stream_target() click to toggle source
# File lib/paul_bunyan/railtie.rb, line 80
def stream_target
  STDOUT.sync = true
  STDOUT
end
unsubscribe_default_log_subscribers() click to toggle source
# File lib/paul_bunyan/railtie.rb, line 85
def unsubscribe_default_log_subscribers
  LogSubscriber.event_patterns.each do |pattern|
    ActiveSupport::Notifications.notifier.listeners_for(pattern).each do |listener|
      conditionally_unsubscribe(listener)
    end
  end
end