class Rails::RollbarRunner

Attributes

command[R]

Public Class Methods

new() click to toggle source
# File lib/rails/rollbar_runner.rb, line 29
def initialize
  @command = ARGV[0]
end

Public Instance Methods

eval_runner() click to toggle source
# File lib/rails/rollbar_runner.rb, line 44
def eval_runner
  if Gem::Version.new(Rails.version) >= Gem::Version.new('5.1.0')
    rails5_runner
  else
    legacy_runner
  end
end
legacy_runner() click to toggle source
# File lib/rails/rollbar_runner.rb, line 52
    def legacy_runner
      string_to_eval = File.read(runner_path)

      ::Rails.module_eval(<<-FILE, __FILE__, __LINE__ + 1)
          #{string_to_eval}
      FILE
    end
prepare_environment() click to toggle source
# File lib/rails/rollbar_runner.rb, line 39
def prepare_environment
  require File.expand_path('../environment', APP_PATH)
  ::Rails.application.require_environment!
end
rails5_runner() click to toggle source
# File lib/rails/rollbar_runner.rb, line 60
def rails5_runner
  require 'rails/command'

  Rails::Command.invoke 'runner', ARGV
end
railties_gem() click to toggle source
# File lib/rails/rollbar_runner.rb, line 77
def railties_gem
  resolver_class = if Gem::Specification.respond_to?(:find_by_name)
                     GemResolver
                   else
                     LegacyGemResolver
                   end
  gem = resolver_class.new.railties_gem

  abort 'railties gem not found' unless gem

  gem
end
railties_gem_dir() click to toggle source
# File lib/rails/rollbar_runner.rb, line 90
def railties_gem_dir
  railties_gem.gem_dir
end
rollbar_managed() { || ... } click to toggle source
# File lib/rails/rollbar_runner.rb, line 66
def rollbar_managed
  yield
rescue StandardError => e
  Rollbar.scope(:custom => { :command => command }).error(e)
  raise
end
run() click to toggle source
# File lib/rails/rollbar_runner.rb, line 33
def run
  prepare_environment

  rollbar_managed { eval_runner }
end
runner_path() click to toggle source
# File lib/rails/rollbar_runner.rb, line 73
def runner_path
  "#{railties_gem_dir}/lib/rails/commands/runner.rb"
end