Class: Judoscale::Rails::Railtie
- Inherits:
-
Rails::Engine
- Object
- Rails::Engine
- Judoscale::Rails::Railtie
- Includes:
- Logger
- Defined in:
- lib/judoscale/rails/railtie.rb
Overview
Inherit from ‘Engine`, even though we use none its specific features (yet), so we can safely rely on `load_config_initializers` to setup our initializers and avoid loading `config/initializers/*` too early, otherwise we can run into initialization order conflicts with other libraries like `Sentry` and `Scout`, which patch Ruby classes in different ways (`prepend` vs `alias_method`), and may cause `stack level too deep` errors if they are loaded too early in the init process.
Instance Method Summary collapse
- #in_rails_console_or_runner? ⇒ Boolean
- #in_rake_task?(task_regex) ⇒ Boolean
- #judoscale_config ⇒ Object
Instance Method Details
#in_rails_console_or_runner? ⇒ Boolean
20 21 22 23 |
# File 'lib/judoscale/rails/railtie.rb', line 20 def in_rails_console_or_runner? # This is gross, but we can't find a more reliable way to detect if we're in a Rails console/runner. caller.any? { |call| call.include?("console_command.rb") || call.include?("runner_command.rb") } end |
#in_rake_task?(task_regex) ⇒ Boolean
25 26 27 28 |
# File 'lib/judoscale/rails/railtie.rb', line 25 def in_rake_task?(task_regex) top_level_tasks = defined?(::Rake) && Rake.respond_to?(:application) && Rake.application.top_level_tasks || [] top_level_tasks.any? { |task| task_regex.match?(task) } end |
#judoscale_config ⇒ Object
30 31 32 33 |
# File 'lib/judoscale/rails/railtie.rb', line 30 def judoscale_config # Disambiguate from Judoscale::Rails::Config ::Judoscale::Config.instance end |