class ErrorRescue

Public Class Methods

new(file) click to toggle source
# File lib/snorkel.rb, line 5
def initialize(file)
        exit unless is_ruby?(file)
        @file_name = file
        @file = File.open(file, "rb")
        @message = nil
        track_code
        ask_response
end

Public Instance Methods

ask_response() click to toggle source
# File lib/snorkel.rb, line 40
def ask_response
        puts "On line #{find_line[1]} of #{@file_name}:  #{@message.capitalize}".blue
        puts "Would you like to search your error?"
        launch_search($stdin.gets.chomp)
end
find_line() click to toggle source
# File lib/snorkel.rb, line 33
def find_line
        @line.map do |e|
                e.match(/^(.+?):(\d+)(|:in `(.+)')$/)
                $2
        end
end
is_ruby?(file) click to toggle source
# File lib/snorkel.rb, line 14
def is_ruby?(file)
        if file[-3..-1] != ".rb"
                puts "You can only go snorkeling with Ruby!".cyan 
                false
        else
                true
        end
end
track_code() click to toggle source
# File lib/snorkel.rb, line 23
def track_code
        begin
                eval(@file.read)
        rescue => ex
                @message = ex.message
                @line = ex.backtrace
        end
        return if @message == nil
end