class Undine

Constants

VERSION

Public Class Methods

configuration() click to toggle source
# File lib/undine/configuration.rb, line 4
def self.configuration
  @configuration ||= Configuration.new
end
configure() { |configuration| ... } click to toggle source
# File lib/undine/configuration.rb, line 8
def self.configure
  yield configuration
end
load() click to toggle source
# File lib/undine.rb, line 9
def self.load
  at_exit do
    exception = $ERROR_INFO

    Undine.process(exception) unless exception.nil?
  end
end
new(configuration) click to toggle source
# File lib/undine.rb, line 21
def initialize(configuration)
  @configuration = configuration
end
process(exception) click to toggle source
# File lib/undine.rb, line 17
def self.process(exception)
  new(Undine.configuration).process(exception)
end

Public Instance Methods

process(exception) click to toggle source
# File lib/undine.rb, line 25
def process(exception)
  return if ignore?(exception)

  url = "https://www.google.com/search?q=#{CGI.escape(query_message_from(exception))}"

  system "open '#{url}'"
end
query_message_from(exception) click to toggle source
# File lib/undine.rb, line 33
def query_message_from(exception)
  @configuration.query_message_from.call(exception)
end

Private Instance Methods

ignore?(exception) click to toggle source
# File lib/undine.rb, line 39
def ignore?(exception)
  return false unless @configuration.respond_to?(:except_for)

  ignored_exceptions = Array(@configuration.except_for)
  ignored_exceptions.any? { |klass| exception.is_a?(klass) }
end