Class: ErrorRescue

Inherits:
Object
  • Object
show all
Defined in:
lib/snorkel.rb

Instance Method Summary collapse

Constructor Details

#initialize(file) ⇒ ErrorRescue

Returns a new instance of ErrorRescue.



5
6
7
8
9
10
11
# File 'lib/snorkel.rb', line 5

def initialize(file)
	@file = File.open(file, "rb")
	@file_name = file
	@message = nil
	track_method
	ask_response
end

Instance Method Details

#ask_responseObject



30
31
32
33
34
35
# File 'lib/snorkel.rb', line 30

def ask_response
	puts "On line #{find_line[1]} of #{@file_name}:  #{@message.capitalize}".blue
	puts "Would you like to search your error?"
	@response = $stdin.gets.chomp
	launch_search
end

#find_lineObject



23
24
25
26
27
28
# File 'lib/snorkel.rb', line 23

def find_line
	@line.map do |e|
		e.match(/^(.+?):(\d+)(|:in `(.+)')$/)
		$2
	end
end

#launch_searchObject



37
38
39
40
41
42
43
44
# File 'lib/snorkel.rb', line 37

def launch_search
	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_methodObject



13
14
15
16
17
18
19
20
21
# File 'lib/snorkel.rb', line 13

def track_method
	begin
		eval(@file.read)
	rescue => ex
		@message = ex.message
		@line = ex.backtrace
	end
	return if @message == nil
end