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
launch_search(response)
click to toggle source
# File lib/snorkel.rb, line 46 def launch_search(response) new_message = @message.split(" ").join("+").downcase if response.start_with? 'y' Launchy.open("https://www.google.com/#q=#{new_message}+ruby") else puts "Have a nice day!" 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