Module: Gravedigger::UsageSearcher

Defined in:
lib/gravedigger/usage_searcher.rb

Class Method Summary collapse

Class Method Details

.extract_variable_usage(variable_usage_match) ⇒ Object



50
51
52
53
54
55
# File 'lib/gravedigger/usage_searcher.rb', line 50

def self.extract_variable_usage(variable_usage_match)
  variable_usage = variable_usage_match.first
  variable_usage.sub!(/[@!]/, '')  # remove ! and @ characters from string

  variable_usage
end

.search_methods(method_definitions, files_to_search) ⇒ Object



5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
# File 'lib/gravedigger/usage_searcher.rb', line 5

def self.search_methods(method_definitions, files_to_search)
  errors = []
  files_to_search.each do |fileName|
    begin
      File.open(fileName).each_line do |line|
        next unless line
        method_usage_matches = line.scan(/(?<!def)[ \.\-\:\'\(\{\!\=\&\#\[\*]+([a-zA-Z0-9?_\!]+)?(?=[\\ \,\/\[\'\:\(\)\.\}]|$)/)
        method_usage_matches.each do |method_usage_match|
          method_definitions.delete(method_usage_match.first) if method_usage_match
        end
      end
    rescue StandardError => error
      errors << "Error while searching method in file: #{fileName}\n"\
"#{error.message}"
    end
  end

  return method_definitions, errors
end

.search_variables(variable_definitions, files_to_search) ⇒ Object



25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
# File 'lib/gravedigger/usage_searcher.rb', line 25

def self.search_variables(variable_definitions, files_to_search)
  errors = []
  files_to_search.each do |fileName|
    begin
      File.readlines(fileName).each_with_index do |line,index|
        next unless line
        variable_usage_matchs = line.scan(/[ \(\{\[\=\,\+\*\-\/\:]+([A-Za-z0-9\_\-\?\!\@]+)/)
        variable_usage_matchs.each do |variable_usage_match|
          next unless variable_usage_match
          variable_usage = extract_variable_usage(variable_usage_match)
          if variable_definitions[variable_usage] != "[#{fileName}:#{index+1}]"
            variable_definitions.delete(variable_usage)
          end
          
        end
      end
    rescue StandardError => error
      errors << "Error while searching variable in file: #{fileName}\n"\
"#{error.message}"
    end
  end

  return variable_definitions, errors
end