Class: IB::DependencyResolver
- Inherits:
-
Object
- Object
- IB::DependencyResolver
- Defined in:
- lib/ib/dependency_resolver.rb
Defined Under Namespace
Modules: TSortable Classes: TSortHash
Instance Attribute Summary collapse
-
#dependency_graph ⇒ Object
readonly
Returns the value of attribute dependency_graph.
-
#files ⇒ Object
readonly
Returns the value of attribute files.
Instance Method Summary collapse
-
#initialize(files) ⇒ DependencyResolver
constructor
A new instance of DependencyResolver.
- #sort ⇒ Object
- #sort_classes ⇒ Object
- #sort_files ⇒ Object
Constructor Details
#initialize(files) ⇒ DependencyResolver
Returns a new instance of DependencyResolver.
53 54 55 56 |
# File 'lib/ib/dependency_resolver.rb', line 53 def initialize(files) @files = files @dependency_graph = struct_class_dependency_graph end |
Instance Attribute Details
#dependency_graph ⇒ Object (readonly)
Returns the value of attribute dependency_graph.
51 52 53 |
# File 'lib/ib/dependency_resolver.rb', line 51 def dependency_graph @dependency_graph end |
#files ⇒ Object (readonly)
Returns the value of attribute files.
51 52 53 |
# File 'lib/ib/dependency_resolver.rb', line 51 def files @files end |
Instance Method Details
#sort ⇒ Object
70 71 72 73 74 75 76 |
# File 'lib/ib/dependency_resolver.rb', line 70 def sort sorted_files = {} sort_files.each do |file| sorted_files.store(file, @files[file]) end sorted_files end |
#sort_classes ⇒ Object
58 59 60 |
# File 'lib/ib/dependency_resolver.rb', line 58 def sort_classes @dependency_graph.tsort end |
#sort_files ⇒ Object
62 63 64 65 66 67 68 |
# File 'lib/ib/dependency_resolver.rb', line 62 def sort_files sort_classes.map do |klass| files.select do |file, interfaces| interfaces.any? {|i| i.has_sub_class?(klass) } end.keys[0] end.uniq.compact end |