11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
|
# File 'lib/coypond.rb', line 11
def search(options)
final_result = {}
each_file do |file_name, source, parser|
final_result[file_name] = []
classes = modules = methods = {}
classes = search_in_collection(parser.classes, options).to_a if options[:class] || options[:all]
modules = search_in_collection(parser.modules, options).to_a if options[:module] || options[:all]
methods = search_in_collection(parser.methods, options).to_a if options[:method] || options[:all]
result = Hash[classes + modules + methods]
result.each do |dec, location|
context = source.lines.to_a[location.first - 1]
final_result[file_name] << [dec, location, context]
end
yield(file_name, final_result[file_name]) if block_given?
end
return final_result
end
|