class Util
Public Class Methods
new(options)
click to toggle source
# File lib/fyipe/util.rb, line 6 def initialize(options) @options = options end
Public Instance Methods
addCodeSnippetToFrame(lines, frame, linesOfContext = 5)
click to toggle source
# File lib/fyipe/util.rb, line 111 def addCodeSnippetToFrame(lines, frame, linesOfContext = 5) if lines.length() < 1 return end lineNumber = 0 if frame['lineNumber'] != nil lineNumber = frame['lineNumber'].to_i end maxLines = lines.length() sourceLine = max(min(maxLines, lineNumber - 1), 0) # attach the line before the error frame['linesBeforeError'] = getPathOfLines(lines, max(0, sourceLine - linesOfContext), linesOfContext) # attach the line after the error frame['linesAfterError'] = getPathOfLines( lines, min(sourceLine + 1, maxLines), 1 + linesOfContext ) # attach the error line frame['errorLine'] = lines[min(maxLines - 1, sourceLine)] # remove the source file frame.delete('sourceFile') return frame end
getErrorCodeSnippet(errorObj)
click to toggle source
# File lib/fyipe/util.rb, line 62 def getErrorCodeSnippet(errorObj) frames = [] if errorObj["stacktrace"] != nil frames = errorObj["stacktrace"]["frames"] end # get content related to each frame contentFrame = []; frames.each do |frame| updateFrame = getFrameContent(frame) # update content of each frame updateFrameContent(frame) contentFrame.append(updateFrame) end errorObj["stacktrace"]["frames"] = frames return errorObj end
getErrorType(val)
click to toggle source
# File lib/fyipe/util.rb, line 14 def getErrorType(val) enumValue = "" LogType.each do |key, enum| if (key.to_s.eql? "#{val}") enumValue = enum.value end end return enumValue end
getExceptionStackTrace(exception)
click to toggle source
# File lib/fyipe/util.rb, line 24 def getExceptionStackTrace(exception) frames = []; lineNumber = 'N/A' obj = {} obj["type"] = exception.class obj["message"] = exception.message obj["lineNumber"] = lineNumber backtraces = exception.backtrace backtraces != nil ? backtraces.each do |backtrace| breakdown = backtrace.split(":") fileName = breakdown[0] lineNumber = breakdown[1] methodName = breakdown[2] frame = {} frame["fileName"] = fileName frame["methodName"] = methodName frame["lineNumber"] = lineNumber frames.append(frame) end : nil stacktrace = {} stacktrace["frames"] = frames obj["stacktrace"] = stacktrace obj["lineNumber"] = frames[0] ? frames[0]["lineNumber"] : lineNumber # run only if user agreed to use this feature if @options[:captureCodeSnippet] == true obj = getErrorCodeSnippet(obj) end return obj end
getFrameContent(frame)
click to toggle source
# File lib/fyipe/util.rb, line 82 def getFrameContent(frame) fileName = frame['fileName'] # # try to read the file content and save to frame begin file = File.open(fileName) frame["sourceFile"] = file.readlines.map(&:chomp) rescue => exception # something terrible went wrong puts "Warning; Could read file: #{exception.message}" ensure file.close end return frame end
updateFrameContent(frame)
click to toggle source
# File lib/fyipe/util.rb, line 101 def updateFrameContent(frame) lines = [] if frame["sourceFile"] != nil lines = frame["sourceFile"] end localFrame = addCodeSnippetToFrame(lines, frame) frame = localFrame return frame end
v4()
click to toggle source
# File lib/fyipe/util.rb, line 10 def v4() return SecureRandom.uuid end
Private Instance Methods
getPathOfLines(lines, start, count)
click to toggle source
# File lib/fyipe/util.rb, line 142 def getPathOfLines(lines, start, count) terminal = start + count return lines[start..terminal] end
max(a,b)
click to toggle source
# File lib/fyipe/util.rb, line 148 def max (a,b) a>b ? a : b end
min(a,b)
click to toggle source
# File lib/fyipe/util.rb, line 153 def min (a,b) a<b ? a : b end