Class: Archruby::Architecture::Architecture
- Inherits:
-
Object
- Object
- Archruby::Architecture::Architecture
- Defined in:
- lib/archruby/architecture/architecture.rb
Instance Attribute Summary collapse
-
#constraints_breaks ⇒ Object
readonly
Returns the value of attribute constraints_breaks.
-
#modules ⇒ Object
readonly
Returns the value of attribute modules.
-
#unknown_module ⇒ Object
readonly
Returns the value of attribute unknown_module.
Instance Method Summary collapse
- #how_many_access_to(module_origin, module_dest) ⇒ Object
- #how_many_break(module_name, module_target, constraint_type) ⇒ Object
-
#initialize(modules) ⇒ Architecture
constructor
A new instance of Architecture.
- #is_ruby_internals?(module_name) ⇒ Boolean
- #module_name(class_name) ⇒ Object
- #verify ⇒ Object
Constructor Details
#initialize(modules) ⇒ Architecture
Returns a new instance of Architecture.
7 8 9 10 11 |
# File 'lib/archruby/architecture/architecture.rb', line 7 def initialize modules @modules = modules @constraints_breaks = [] @unknown_module = @modules.select{ |module_definition| module_definition.name == "unknown" }.first end |
Instance Attribute Details
#constraints_breaks ⇒ Object (readonly)
Returns the value of attribute constraints_breaks.
5 6 7 |
# File 'lib/archruby/architecture/architecture.rb', line 5 def constraints_breaks @constraints_breaks end |
#modules ⇒ Object (readonly)
Returns the value of attribute modules.
5 6 7 |
# File 'lib/archruby/architecture/architecture.rb', line 5 def modules @modules end |
#unknown_module ⇒ Object (readonly)
Returns the value of attribute unknown_module.
5 6 7 |
# File 'lib/archruby/architecture/architecture.rb', line 5 def unknown_module @unknown_module end |
Instance Method Details
#how_many_access_to(module_origin, module_dest) ⇒ Object
50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 |
# File 'lib/archruby/architecture/architecture.rb', line 50 def how_many_access_to module_origin, module_dest module_origin = search_module module_origin count = 0 module_origin.classes_and_dependencies.each do |class_dependencies| class_dependencies.each do |klass, dependencies| dependencies.each do |dependency| dependency_module_name = module_name dependency.class_name if dependency_module_name == module_dest count += 1 end end end end count end |
#how_many_break(module_name, module_target, constraint_type) ⇒ Object
24 25 26 27 28 29 30 31 32 33 |
# File 'lib/archruby/architecture/architecture.rb', line 24 def how_many_break module_name, module_target, constraint_type raise ArchitectureNotVerified if @constraints_breaks.empty? count = 0 @constraints_breaks.each do |constraint_break| if constraint_break.type == constraint_type && constraint_break.module_origin == module_name && constraint_break.module_target == module_target count += 1 end end count end |
#is_ruby_internals?(module_name) ⇒ Boolean
66 67 68 |
# File 'lib/archruby/architecture/architecture.rb', line 66 def is_ruby_internals? module_name module_name == Archruby::Ruby::STD_LIB_NAME || module_name == Archruby::Ruby::CORE_LIB_NAME end |
#module_name(class_name) ⇒ Object
35 36 37 38 39 40 41 42 43 44 45 46 47 48 |
# File 'lib/archruby/architecture/architecture.rb', line 35 def module_name class_name module_name_to_return = '' @modules.each do |module_name| if module_name.is_mine? class_name module_name_to_return = module_name.name break end end if module_name_to_return.eql? '' @unknown_module.name else module_name_to_return end end |
#verify ⇒ Object
13 14 15 16 17 18 19 20 21 22 |
# File 'lib/archruby/architecture/architecture.rb', line 13 def verify @modules.each do |module_name| contraints_breaks = module_name.verify_constraints(self) if !contraints_breaks.empty? @constraints_breaks << contraints_breaks end end @constraints_breaks = @constraints_breaks.flatten @constraints_breaks end |