Module: ArchUnit::Files::Assertion
- Defined in:
- lib/archunit/files/assertion/cycle_free.rb,
lib/archunit/files/assertion/matching_files.rb,
lib/archunit/files/assertion/depend_on_files.rb,
lib/archunit/files/assertion/custom_file_condition.rb,
lib/archunit/files/assertion/depend_on_external_modules.rb
Overview
Pure assertions over dependencies from project files to external modules.
Defined Under Namespace
Classes: CustomFileViolation, CycleViolation, ExternalModuleDependencyViolation, FileDependencyViolation, FilePatternViolation
Class Method Summary
collapse
-
.gather_custom_file_violations(file_infos, condition, message, is_negated:) ⇒ Object
-
.gather_cycle_violations(cycles) ⇒ Object
-
.gather_external_module_dependency_violations(edges, subject_filters, module_filters, is_negated:) ⇒ Object
-
.gather_file_dependency_violations(edges, subject_filters, object_filters, is_negated:) ⇒ Object
-
.gather_matching_file_violations(nodes, check_filter, is_negated:) ⇒ Object
Class Method Details
.gather_custom_file_violations(file_infos, condition, message, is_negated:) ⇒ Object
60
61
62
63
64
65
66
67
68
69
70
71
72
|
# File 'lib/archunit/files/assertion/custom_file_condition.rb', line 60
def gather_custom_file_violations(file_infos, condition, message, is_negated:)
validate_custom_arguments(file_infos, condition, message, is_negated)
file_infos.filter_map do |file_info|
result = condition.call(file_info)
unless [true, false].include?(result)
raise ArgumentError, 'condition must return true or false'
end
next unless is_negated ? result : !result
CustomFileViolation.new(file_info:, message:, is_negated:)
end
end
|
.gather_cycle_violations(cycles) ⇒ Object
51
52
53
54
55
|
# File 'lib/archunit/files/assertion/cycle_free.rb', line 51
def gather_cycle_violations(cycles)
raise ArgumentError, 'cycles must be an Array' unless cycles.is_a?(Array)
cycles.map { |cycle| CycleViolation.new(cycle:) }
end
|
.gather_external_module_dependency_violations(edges, subject_filters, module_filters, is_negated:) ⇒ Object
54
55
56
57
58
59
60
61
62
63
64
65
66
|
# File 'lib/archunit/files/assertion/depend_on_external_modules.rb', line 54
def gather_external_module_dependency_violations(
edges, subject_filters, module_filters, is_negated:
)
validate_external_dependency_arguments(
edges, subject_filters, module_filters, is_negated
)
edges.filter_map do |edge|
external_dependency_violation(
edge, subject_filters, module_filters, is_negated
)
end
end
|
.gather_file_dependency_violations(edges, subject_filters, object_filters, is_negated:) ⇒ Object
54
55
56
57
58
59
60
61
62
|
# File 'lib/archunit/files/assertion/depend_on_files.rb', line 54
def gather_file_dependency_violations(
edges, subject_filters, object_filters, is_negated:
)
validate_dependency_arguments(edges, subject_filters, object_filters, is_negated)
edges.filter_map do |edge|
dependency_violation(edge, subject_filters, object_filters, is_negated)
end
end
|
.gather_matching_file_violations(nodes, check_filter, is_negated:) ⇒ Object
62
63
64
65
66
67
68
69
70
71
|
# File 'lib/archunit/files/assertion/matching_files.rb', line 62
def gather_matching_file_violations(nodes, check_filter, is_negated:)
validate_matching_arguments(nodes, check_filter, is_negated)
nodes.filter_map do |node|
matches = Common::PatternMatching.matches_pattern?(node.label, check_filter)
next unless is_negated ? matches : !matches
FilePatternViolation.new(check_filter:, projected_node: node, is_negated:)
end
end
|