module Gravedigger::DefinitionFinder

Public Class Methods

find_method_definitions(line) click to toggle source
# File lib/gravedigger/definition_finder.rb, line 30
def self.find_method_definitions(line)
  find_method_regex_result = line[/[ ]+def [a-zA-Z0-9?_.\!]*/]
  if find_method_regex_result
    method_name = find_method_regex_result.strip.slice(4..-1)
    method_name = method_name.slice(0,4) if method_name && method_name[0..4] == 'self.'
  end
  method_name
end
find_variable_definitions(line) click to toggle source
# File lib/gravedigger/definition_finder.rb, line 39
def self.find_variable_definitions(line)
  result = line.scan(/^[ ]+([A-Za-z0-9_\!\@]*)[ ]*\=[^\=\>]/)
  return nil if result.empty?
  result[0][0].sub!(/^@/, '')
  result[0][0]
end
get_definitions(files_to_search) click to toggle source
# File lib/gravedigger/definition_finder.rb, line 5
def self.get_definitions(files_to_search)
  method_definitions = {}
  variable_definitions = {}
  errors = []

  files_to_search.each do |fileName|
    begin
      File.readlines(fileName).each_with_index do |line,index|
        next unless line
        method_name = find_method_definitions(line)
        variable_name = find_variable_definitions(line)

        location = "[#{fileName}:#{index+1}]"

        method_definitions[method_name] = location if method_name
        variable_definitions[variable_name] = location if variable_name
      end
    rescue StandardError => error
      errors << "Error while reading file: #{fileName} \n #{error.message}"
    end
  end

  return method_definitions, variable_definitions, errors
end