Module: Gravedigger::DefinitionFinder
- Defined in:
- lib/gravedigger/definition_finder.rb
Class Method Summary collapse
- .find_method_definitions(line) ⇒ Object
- .find_variable_definitions(line) ⇒ Object
- .get_definitions(files_to_search) ⇒ Object
Class Method Details
.find_method_definitions(line) ⇒ Object
30 31 32 33 34 35 36 37 |
# 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) ⇒ Object
39 40 41 42 43 44 |
# 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) ⇒ Object
5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
# 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.}" end end return method_definitions, variable_definitions, errors end |