class Mecha::Generators::SentryGenerator

Public Instance Methods

add_gem() click to toggle source
# File lib/mecha/generators/sentry/sentry_generator.rb, line 8
def add_gem
  gem 'sentry-raven'
end
add_sentry_js_partial() click to toggle source
# File lib/mecha/generators/sentry/sentry_generator.rb, line 16
      def add_sentry_js_partial
        copy_file('_sentry.html.erb', 'app/views/layouts/_sentry.html.erb')
        inject_into_file(
          'app/views/layouts/application.html.erb',
          "\n\n    <%= render 'layouts/sentry' if Rails.env.staging? || Rails.env.production? %>",
          before: "\n  </head>"
        )

        message = <<-MESSAGE.strip_heredoc

          Add SENTRY_JS environment variable.
          Get your Sentry DSN at https://docs.sentry.io/clients/javascript/.

        MESSAGE

        say message
      end
config_application_controller() click to toggle source
# File lib/mecha/generators/sentry/sentry_generator.rb, line 39
def config_application_controller
  inject_into_file(
    'app/controllers/application_controller.rb',
    application_controller_set_raven_context,
    before: 'end'
  )

  inject_into_file(
    'app/controllers/application_controller.rb',
    application_controller_before_action,
    after: 'class ApplicationController < ActionController::Base'
  )
end
config_application_rb() click to toggle source
# File lib/mecha/generators/sentry/sentry_generator.rb, line 34
def config_application_rb
  application('config.filter_parameters << :password')
  environment('config.action_dispatch.show_exceptions = false', env: 'production')
end
config_sentry() click to toggle source
# File lib/mecha/generators/sentry/sentry_generator.rb, line 12
def config_sentry
  copy_file('sentry.rb', 'config/initializers/sentry.rb')
end

Private Instance Methods

application_controller_before_action() click to toggle source
# File lib/mecha/generators/sentry/sentry_generator.rb, line 55
def application_controller_before_action
  "\n  before_action :set_raven_context"
end
application_controller_set_raven_context() click to toggle source
# File lib/mecha/generators/sentry/sentry_generator.rb, line 59
      def application_controller_set_raven_context
        <<-DOC.strip_heredoc

          private

          def set_raven_context
            Raven.user_context(id: session[:current_user_id])
            Raven.extra_context(params: params.to_unsafe_h, url: request.url)
          end
        DOC
      end