archunit 0.0.1 → 1.0.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (82) hide show
  1. checksums.yaml +4 -4
  2. data/API.md +290 -0
  3. data/CHANGELOG.md +45 -0
  4. data/README.md +389 -90
  5. data/assets/logo-rounded.png +0 -0
  6. data/lib/archunit/common/extraction/dependency_evidence.rb +44 -0
  7. data/lib/archunit/common/extraction/edge.rb +7 -2
  8. data/lib/archunit/common/extraction/import_kind.rb +2 -1
  9. data/lib/archunit/common/extraction/parse_diagnostic.rb +23 -0
  10. data/lib/archunit/common/fluentapi/check_options.rb +43 -2
  11. data/lib/archunit/common/fluentapi/checkable.rb +25 -1
  12. data/lib/archunit/common/logging/check_logger.rb +8 -0
  13. data/lib/archunit/common/logging/inspection.rb +59 -0
  14. data/lib/archunit/common/logging/logging_options.rb +5 -0
  15. data/lib/archunit/common/pattern.rb +18 -8
  16. data/lib/archunit/common/projection/cycles/johnson_cycles.rb +35 -19
  17. data/lib/archunit/common/projection/cycles/tarjan_scc.rb +30 -10
  18. data/lib/archunit/error/source_parse_error.rb +38 -0
  19. data/lib/archunit/extraction/arch_ignore.rb +91 -0
  20. data/lib/archunit/extraction/conservative_local_flow.rb +100 -0
  21. data/lib/archunit/extraction/constant_index.rb +110 -0
  22. data/lib/archunit/extraction/constant_visitor.rb +129 -0
  23. data/lib/archunit/extraction/discover_gemspec_load_paths.rb +96 -0
  24. data/lib/archunit/extraction/enumerate_source_files.rb +23 -8
  25. data/lib/archunit/extraction/extract_dependencies.rb +82 -14
  26. data/lib/archunit/extraction/extract_graph.rb +56 -12
  27. data/lib/archunit/extraction/extract_imports.rb +60 -124
  28. data/lib/archunit/extraction/extraction_profile.rb +105 -0
  29. data/lib/archunit/extraction/import_resolver.rb +56 -0
  30. data/lib/archunit/extraction/import_visitor.rb +104 -0
  31. data/lib/archunit/extraction/local_string_tracker.rb +80 -0
  32. data/lib/archunit/extraction/resolve_import.rb +5 -3
  33. data/lib/archunit/extraction/resolve_load_paths.rb +93 -0
  34. data/lib/archunit/extraction/resolved_import.rb +5 -2
  35. data/lib/archunit/extraction/validate_extraction_paths.rb +37 -0
  36. data/lib/archunit/files/extraction/extract_file_info.rb +14 -5
  37. data/lib/archunit/files/extraction/file_info.rb +1 -2
  38. data/lib/archunit/files/fluentapi/depend_on_external_module_condition.rb +2 -0
  39. data/lib/archunit/files/fluentapi/depend_on_external_module_condition_builder.rb +2 -0
  40. data/lib/archunit/files/fluentapi/depend_on_file_condition.rb +6 -0
  41. data/lib/archunit/files/fluentapi/depend_on_file_condition_builder.rb +6 -0
  42. data/lib/archunit/files/fluentapi/file_condition_builder.rb +12 -0
  43. data/lib/archunit/files/fluentapi/file_rule_support.rb +8 -1
  44. data/lib/archunit/files/fluentapi/files.rb +6 -0
  45. data/lib/archunit/files/fluentapi/match_pattern_file_condition_builder.rb +14 -0
  46. data/lib/archunit/files/fluentapi/positive_match_pattern_file_condition_builder.rb +2 -0
  47. data/lib/archunit/graph/fluentapi/graph.rb +5 -0
  48. data/lib/archunit/graph/fluentapi/project_graph_builder.rb +44 -0
  49. data/lib/archunit/graph/projection/aggregate_edges.rb +4 -2
  50. data/lib/archunit/graph/projection/graph_query_options.rb +1 -2
  51. data/lib/archunit/graph/projection/graph_report_edge.rb +12 -2
  52. data/lib/archunit/graph/rendering/json_renderer.rb +3 -1
  53. data/lib/archunit/layers/fluentapi/layer_definition_builder.rb +4 -0
  54. data/lib/archunit/layers/fluentapi/layer_dependency_rule_builder.rb +4 -0
  55. data/lib/archunit/layers/fluentapi/layered_architecture.rb +5 -0
  56. data/lib/archunit/layers/fluentapi/layers.rb +5 -0
  57. data/lib/archunit/metrics/extraction/extract_distance_info.rb +1 -2
  58. data/lib/archunit/metrics/extraction/extract_project_info.rb +6 -6
  59. data/lib/archunit/metrics/extraction/metric_info.rb +2 -4
  60. data/lib/archunit/metrics/extraction/source_metrics_visitor.rb +2 -4
  61. data/lib/archunit/metrics/fluentapi/custom_metric_builder.rb +2 -0
  62. data/lib/archunit/metrics/fluentapi/custom_metric_condition.rb +4 -1
  63. data/lib/archunit/metrics/fluentapi/logged_metric.rb +23 -0
  64. data/lib/archunit/metrics/fluentapi/metric_predicate_condition.rb +4 -1
  65. data/lib/archunit/metrics/fluentapi/metric_report_builder.rb +2 -0
  66. data/lib/archunit/metrics/fluentapi/metric_selection.rb +18 -2
  67. data/lib/archunit/metrics/fluentapi/metric_threshold_condition.rb +2 -1
  68. data/lib/archunit/metrics/fluentapi/metrics.rb +5 -0
  69. data/lib/archunit/metrics/fluentapi/metrics_builder.rb +15 -0
  70. data/lib/archunit/slices/fluentapi/diagram_slice_condition.rb +1 -0
  71. data/lib/archunit/slices/fluentapi/forbidden_slice_dependency_condition.rb +1 -0
  72. data/lib/archunit/slices/fluentapi/negative_slice_condition_builder.rb +2 -0
  73. data/lib/archunit/slices/fluentapi/positive_slice_condition_builder.rb +8 -0
  74. data/lib/archunit/slices/fluentapi/slice_scope_builder.rb +12 -0
  75. data/lib/archunit/slices/fluentapi/slices.rb +5 -0
  76. data/lib/archunit/testing/assert_passes.rb +4 -0
  77. data/lib/archunit/testing/result_factory.rb +16 -4
  78. data/lib/archunit/testing/rspec_adapter.rb +1 -2
  79. data/lib/archunit/testing.rb +7 -3
  80. data/lib/archunit/version.rb +1 -1
  81. data/lib/archunit.rb +9 -0
  82. metadata +20 -2
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: archunit
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.1
4
+ version: 1.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - ArchUnitRuby contributors
@@ -74,19 +74,24 @@ executables: []
74
74
  extensions: []
75
75
  extra_rdoc_files: []
76
76
  files:
77
+ - API.md
77
78
  - CHANGELOG.md
78
79
  - LICENSE
79
80
  - README.md
81
+ - assets/logo-rounded.png
80
82
  - lib/archunit.rb
81
83
  - lib/archunit/common/assertion/empty_test_violation.rb
82
84
  - lib/archunit/common/assertion/violation.rb
85
+ - lib/archunit/common/extraction/dependency_evidence.rb
83
86
  - lib/archunit/common/extraction/edge.rb
84
87
  - lib/archunit/common/extraction/graph.rb
85
88
  - lib/archunit/common/extraction/import_kind.rb
89
+ - lib/archunit/common/extraction/parse_diagnostic.rb
86
90
  - lib/archunit/common/filter.rb
87
91
  - lib/archunit/common/fluentapi/check_options.rb
88
92
  - lib/archunit/common/fluentapi/checkable.rb
89
93
  - lib/archunit/common/logging/check_logger.rb
94
+ - lib/archunit/common/logging/inspection.rb
90
95
  - lib/archunit/common/logging/logging_options.rb
91
96
  - lib/archunit/common/pattern.rb
92
97
  - lib/archunit/common/pattern_matching.rb
@@ -100,15 +105,27 @@ files:
100
105
  - lib/archunit/common/projection/projected_edge.rb
101
106
  - lib/archunit/common/projection/projected_node.rb
102
107
  - lib/archunit/common/regex_factory.rb
108
+ - lib/archunit/error/source_parse_error.rb
103
109
  - lib/archunit/error/technical_error.rb
104
110
  - lib/archunit/error/user_error.rb
111
+ - lib/archunit/extraction/arch_ignore.rb
112
+ - lib/archunit/extraction/conservative_local_flow.rb
113
+ - lib/archunit/extraction/constant_index.rb
114
+ - lib/archunit/extraction/constant_visitor.rb
115
+ - lib/archunit/extraction/discover_gemspec_load_paths.rb
105
116
  - lib/archunit/extraction/enumerate_source_files.rb
106
117
  - lib/archunit/extraction/extract_dependencies.rb
107
118
  - lib/archunit/extraction/extract_graph.rb
108
119
  - lib/archunit/extraction/extract_imports.rb
120
+ - lib/archunit/extraction/extraction_profile.rb
121
+ - lib/archunit/extraction/import_resolver.rb
122
+ - lib/archunit/extraction/import_visitor.rb
123
+ - lib/archunit/extraction/local_string_tracker.rb
109
124
  - lib/archunit/extraction/locate_project.rb
110
125
  - lib/archunit/extraction/resolve_import.rb
126
+ - lib/archunit/extraction/resolve_load_paths.rb
111
127
  - lib/archunit/extraction/resolved_import.rb
128
+ - lib/archunit/extraction/validate_extraction_paths.rb
112
129
  - lib/archunit/files/assertion/custom_file_condition.rb
113
130
  - lib/archunit/files/assertion/cycle_free.rb
114
131
  - lib/archunit/files/assertion/depend_on_external_modules.rb
@@ -180,6 +197,7 @@ files:
180
197
  - lib/archunit/metrics/fluentapi/custom_metric_condition.rb
181
198
  - lib/archunit/metrics/fluentapi/distance_metrics_builder.rb
182
199
  - lib/archunit/metrics/fluentapi/lcom_metrics_builder.rb
200
+ - lib/archunit/metrics/fluentapi/logged_metric.rb
183
201
  - lib/archunit/metrics/fluentapi/metric_measurement.rb
184
202
  - lib/archunit/metrics/fluentapi/metric_predicate_condition.rb
185
203
  - lib/archunit/metrics/fluentapi/metric_report_builder.rb
@@ -245,7 +263,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
245
263
  - !ruby/object:Gem::Version
246
264
  version: '0'
247
265
  requirements: []
248
- rubygems_version: 4.0.16
266
+ rubygems_version: 4.0.20
249
267
  specification_version: 4
250
268
  summary: Architecture testing for Ruby
251
269
  test_files: []