Class: PaulBunyan::Railtie
- Inherits:
-
Rails::Railtie
- Object
- Rails::Railtie
- PaulBunyan::Railtie
- Defined in:
- lib/paul_bunyan/railtie.rb
Constant Summary collapse
- DEFAULT_LOGGERS =
[ActionController::LogSubscriber, ActionView::LogSubscriber].freeze
Class Method Summary collapse
- .activesupport_formatter ⇒ Object
- .development_or_test? ⇒ Boolean
- .migrating? ⇒ Boolean
- .rake_task? ⇒ Boolean
Instance Method Summary collapse
- #conditionally_unsubscribe(listener) ⇒ Object
- #file_target(app_config) ⇒ Object
- #log_target(app_config) ⇒ Object
- #stream_target ⇒ Object
- #unsubscribe_default_log_subscribers ⇒ Object
Class Method Details
.activesupport_formatter ⇒ Object
10 11 12 13 14 |
# 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? ⇒ Boolean
16 17 18 |
# File 'lib/paul_bunyan/railtie.rb', line 16 def self.development_or_test? Rails.env.development? || Rails.env.test? end |
.migrating? ⇒ Boolean
24 25 26 |
# File 'lib/paul_bunyan/railtie.rb', line 24 def self. rake_task? && ARGV.include?('db:migrate') end |
.rake_task? ⇒ Boolean
20 21 22 |
# File 'lib/paul_bunyan/railtie.rb', line 20 def self.rake_task? File.basename($0) == 'rake' end |
Instance Method Details
#conditionally_unsubscribe(listener) ⇒ Object
60 61 62 63 |
# 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) ⇒ Object
65 66 67 68 69 70 71 72 73 74 |
# 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) ⇒ Object
76 77 78 |
# 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 ⇒ Object
80 81 82 83 |
# File 'lib/paul_bunyan/railtie.rb', line 80 def stream_target STDOUT.sync = true STDOUT end |
#unsubscribe_default_log_subscribers ⇒ Object
85 86 87 88 89 90 91 |
# 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 |