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
9 10 11 12 13 |
# File 'lib/paul_bunyan/railtie.rb', line 9 def self.activesupport_formatter ActiveSupport::Logger::SimpleFormatter.new.tap do |formatter| formatter.extend ActiveSupport::TaggedLogging::Formatter end end |
.development_or_test? ⇒ Boolean
15 16 17 |
# File 'lib/paul_bunyan/railtie.rb', line 15 def self.development_or_test? Rails.env.development? || Rails.env.test? end |
.migrating? ⇒ Boolean
23 24 25 |
# File 'lib/paul_bunyan/railtie.rb', line 23 def self. rake_task? && ARGV.include?('db:migrate') end |
.rake_task? ⇒ Boolean
19 20 21 |
# File 'lib/paul_bunyan/railtie.rb', line 19 def self.rake_task? File.basename($0) == 'rake' end |
Instance Method Details
#conditionally_unsubscribe(listener) ⇒ Object
59 60 61 62 |
# File 'lib/paul_bunyan/railtie.rb', line 59 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
64 65 66 67 68 69 70 71 72 73 |
# File 'lib/paul_bunyan/railtie.rb', line 64 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
75 76 77 |
# File 'lib/paul_bunyan/railtie.rb', line 75 def log_target(app_config) config.logging.override_location ? stream_target : file_target(app_config) end |
#stream_target ⇒ Object
79 80 81 82 |
# File 'lib/paul_bunyan/railtie.rb', line 79 def stream_target STDOUT.sync = true STDOUT end |
#unsubscribe_default_log_subscribers ⇒ Object
84 85 86 87 88 89 90 |
# File 'lib/paul_bunyan/railtie.rb', line 84 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 |