module Hoss::Rails

Module for explicitly starting the Hoss agent and hooking into Rails. It is recommended to use the Railtie instead.

Public Instance Methods

start(config) click to toggle source

Start the Hoss agent and hook into Rails. Note that the agent won't be started if the Rails console is being used.

@param config [Config, Hash] An instance of Config or a Hash config. @return [true, nil] true if the agent was started, nil otherwise.

# File lib/hoss/rails.rb, line 32
def start(config)
  config = Config.new(config) unless config.is_a?(Config)

  if (reason = should_skip?(config))
    unless config.disable_start_message?
      config.logger.info "Skipping because: #{reason}. " \
        "Start manually with `Hoss.start'"
    end

    return
  end

  Hoss.start(config).tap do |agent|
  end

  Hoss.running?
rescue StandardError => e
  if config.disable_start_message?
    config.logger.error format('Failed to start: %s', e.message)
    config.logger.debug "Backtrace:\n" + e.backtrace.join("\n")
  else
    puts format('Failed to start: %s', e.message)
    puts "Backtrace:\n" + e.backtrace.join("\n")
  end
end

Private Instance Methods

should_skip?(_config) click to toggle source
# File lib/hoss/rails.rb, line 60
def should_skip?(_config)
  if ::Rails.const_defined?('Console', false)
    return 'Rails console'
  end

  nil
end