class Dependy::Graph::GraphReader
Attributes
excluded_folders[R]
pattern[R]
root_folder[R]
Public Class Methods
new(root_folder, excluded_folders = [], pattern = '*')
click to toggle source
# File lib/dependy/graph/graph_reader.rb, line 6 def initialize(root_folder, excluded_folders = [], pattern = '*') @root_folder = root_folder @excluded_folders = excluded_folders @pattern = pattern end
Public Instance Methods
read()
click to toggle source
# File lib/dependy/graph/graph_reader.rb, line 12 def read Graph.new(objects_to_scan) end
Private Instance Methods
all_imports_in_file(file)
click to toggle source
# File lib/dependy/graph/graph_reader.rb, line 48 def all_imports_in_file(file) File.read(file).scan(/^#import "(.*)\.h"$/).flatten end
filename(file)
click to toggle source
# File lib/dependy/graph/graph_reader.rb, line 32 def filename(file) File.basename(file, '.*') end
lookup_pattern(folder)
click to toggle source
# File lib/dependy/graph/graph_reader.rb, line 44 def lookup_pattern(folder) "#{folder}/**/*.#{pattern}" end
objects_to_exclude()
click to toggle source
# File lib/dependy/graph/graph_reader.rb, line 36 def objects_to_exclude @objects_to_exclude ||= excluded_folders.map do |excluded_folder| Dir.glob(lookup_pattern(excluded_folder)).map do |file| File.basename(file, '.*') end end.flatten.uniq end
objects_to_scan()
click to toggle source
# File lib/dependy/graph/graph_reader.rb, line 19 def objects_to_scan Dir.glob(lookup_pattern(root_folder)).inject([]) do |result, file| scan_file(file).map do |import| result.push([filename(file), import]) unless import.empty? end result end end
scan_file(file)
click to toggle source
# File lib/dependy/graph/graph_reader.rb, line 28 def scan_file(file) all_imports_in_file(file) - [filename(file)] - objects_to_exclude end