archspec 1.1.0.rc2 → 1.2.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.
- checksums.yaml +4 -4
- data/README.md +21 -1
- data/lib/archspec/analyzer.rb +56 -39
- data/lib/archspec/cli.rb +154 -33
- data/lib/archspec/concern_semantics.rb +247 -0
- data/lib/archspec/definition.rb +42 -3
- data/lib/archspec/dsl.rb +30 -2
- data/lib/archspec/evaluator.rb +6 -2
- data/lib/archspec/facts/application.rb +159 -0
- data/lib/archspec/facts/builder.rb +223 -0
- data/lib/archspec/facts/document.rb +367 -0
- data/lib/archspec/facts.rb +108 -0
- data/lib/archspec/formatters/explanation.rb +2 -1
- data/lib/archspec/formatters/json.rb +6 -3
- data/lib/archspec/formatters/text.rb +22 -3
- data/lib/archspec/model.rb +58 -12
- data/lib/archspec/producer.rb +137 -0
- data/lib/archspec/rails_reflector.rb +291 -0
- data/lib/archspec/reflect_runner.rb +27 -0
- data/lib/archspec/rubydex_index.rb +3 -1
- data/lib/archspec/rules/concern_rules.rb +5 -5
- data/lib/archspec/rules/dependency_rules.rb +5 -5
- data/lib/archspec/rules/protocol_rules.rb +2 -1
- data/lib/archspec/sources/base.rb +49 -0
- data/lib/archspec/sources/comment.rb +14 -0
- data/lib/archspec/sources/erb.rb +86 -0
- data/lib/archspec/sources/ruby.rb +34 -0
- data/lib/archspec/todo.rb +31 -20
- data/lib/archspec/version.rb +1 -1
- data/lib/archspec.rb +9 -1
- metadata +74 -2
data/lib/archspec.rb
CHANGED
|
@@ -8,8 +8,11 @@ require_relative 'archspec/component_spec'
|
|
|
8
8
|
require_relative 'archspec/model'
|
|
9
9
|
require_relative 'archspec/definition'
|
|
10
10
|
require_relative 'archspec/todo'
|
|
11
|
+
require_relative 'archspec/facts'
|
|
12
|
+
require_relative 'archspec/producer'
|
|
11
13
|
require_relative 'archspec/dsl'
|
|
12
14
|
require_relative 'archspec/rubydex_index'
|
|
15
|
+
require_relative 'archspec/concern_semantics'
|
|
13
16
|
require_relative 'archspec/analyzer'
|
|
14
17
|
require_relative 'archspec/evaluator'
|
|
15
18
|
require_relative 'archspec/architectures'
|
|
@@ -26,13 +29,18 @@ require_relative 'archspec/formatters/text'
|
|
|
26
29
|
require_relative 'archspec/formatters/json'
|
|
27
30
|
require_relative 'archspec/formatters/explanation'
|
|
28
31
|
require_relative 'archspec/cli'
|
|
32
|
+
require_relative 'archspec/rails_reflector'
|
|
29
33
|
|
|
30
34
|
# ArchSpec turns your application's architecture into executable checks.
|
|
31
35
|
#
|
|
32
36
|
# You describe components, dependencies, and boundaries in an +Archspec.rb+
|
|
33
37
|
# file written in the ArchSpec::DSL, then run <tt>archspec check</tt> to verify
|
|
34
38
|
# every change. ArchSpec indexes Ruby source with Rubydex, uses Prism for a
|
|
35
|
-
# handful of syntax-specific facts, and never boots the app.
|
|
39
|
+
# handful of syntax-specific facts, and never boots the app during checks.
|
|
40
|
+
# The opt-in <tt>archspec reflect</tt> command runs facts producers, such as
|
|
41
|
+
# the built-in Rails producer, in separate processes to record what the booted
|
|
42
|
+
# framework resolved; checks read those facts as data. See ArchSpec::Producer
|
|
43
|
+
# and ArchSpec::Facts::Builder to integrate another framework.
|
|
36
44
|
#
|
|
37
45
|
# The DSL is the public API. An +Archspec.rb+ file is evaluated directly:
|
|
38
46
|
#
|
metadata
CHANGED
|
@@ -1,15 +1,29 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: archspec
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 1.
|
|
4
|
+
version: 1.2.0
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Carmine Paolino
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: exe
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-
|
|
11
|
+
date: 2026-11-01 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
|
+
- !ruby/object:Gem::Dependency
|
|
14
|
+
name: herb
|
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
|
16
|
+
requirements:
|
|
17
|
+
- - "~>"
|
|
18
|
+
- !ruby/object:Gem::Version
|
|
19
|
+
version: 0.11.0
|
|
20
|
+
type: :runtime
|
|
21
|
+
prerelease: false
|
|
22
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
23
|
+
requirements:
|
|
24
|
+
- - "~>"
|
|
25
|
+
- !ruby/object:Gem::Version
|
|
26
|
+
version: 0.11.0
|
|
13
27
|
- !ruby/object:Gem::Dependency
|
|
14
28
|
name: prism
|
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -17,6 +31,9 @@ dependencies:
|
|
|
17
31
|
- - ">="
|
|
18
32
|
- !ruby/object:Gem::Version
|
|
19
33
|
version: '1.0'
|
|
34
|
+
- - "<"
|
|
35
|
+
- !ruby/object:Gem::Version
|
|
36
|
+
version: '2'
|
|
20
37
|
type: :runtime
|
|
21
38
|
prerelease: false
|
|
22
39
|
version_requirements: !ruby/object:Gem::Requirement
|
|
@@ -24,6 +41,9 @@ dependencies:
|
|
|
24
41
|
- - ">="
|
|
25
42
|
- !ruby/object:Gem::Version
|
|
26
43
|
version: '1.0'
|
|
44
|
+
- - "<"
|
|
45
|
+
- !ruby/object:Gem::Version
|
|
46
|
+
version: '2'
|
|
27
47
|
- !ruby/object:Gem::Dependency
|
|
28
48
|
name: rubydex
|
|
29
49
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -58,6 +78,46 @@ dependencies:
|
|
|
58
78
|
- - "<"
|
|
59
79
|
- !ruby/object:Gem::Version
|
|
60
80
|
version: '6'
|
|
81
|
+
- !ruby/object:Gem::Dependency
|
|
82
|
+
name: activesupport
|
|
83
|
+
requirement: !ruby/object:Gem::Requirement
|
|
84
|
+
requirements:
|
|
85
|
+
- - ">="
|
|
86
|
+
- !ruby/object:Gem::Version
|
|
87
|
+
version: '7.2'
|
|
88
|
+
- - "<"
|
|
89
|
+
- !ruby/object:Gem::Version
|
|
90
|
+
version: '9'
|
|
91
|
+
type: :development
|
|
92
|
+
prerelease: false
|
|
93
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
94
|
+
requirements:
|
|
95
|
+
- - ">="
|
|
96
|
+
- !ruby/object:Gem::Version
|
|
97
|
+
version: '7.2'
|
|
98
|
+
- - "<"
|
|
99
|
+
- !ruby/object:Gem::Version
|
|
100
|
+
version: '9'
|
|
101
|
+
- !ruby/object:Gem::Dependency
|
|
102
|
+
name: activerecord
|
|
103
|
+
requirement: !ruby/object:Gem::Requirement
|
|
104
|
+
requirements:
|
|
105
|
+
- - ">="
|
|
106
|
+
- !ruby/object:Gem::Version
|
|
107
|
+
version: '7.2'
|
|
108
|
+
- - "<"
|
|
109
|
+
- !ruby/object:Gem::Version
|
|
110
|
+
version: '9'
|
|
111
|
+
type: :development
|
|
112
|
+
prerelease: false
|
|
113
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
114
|
+
requirements:
|
|
115
|
+
- - ">="
|
|
116
|
+
- !ruby/object:Gem::Version
|
|
117
|
+
version: '7.2'
|
|
118
|
+
- - "<"
|
|
119
|
+
- !ruby/object:Gem::Version
|
|
120
|
+
version: '9'
|
|
61
121
|
- !ruby/object:Gem::Dependency
|
|
62
122
|
name: rake
|
|
63
123
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -104,16 +164,24 @@ files:
|
|
|
104
164
|
- lib/archspec/architectures.rb
|
|
105
165
|
- lib/archspec/cli.rb
|
|
106
166
|
- lib/archspec/component_spec.rb
|
|
167
|
+
- lib/archspec/concern_semantics.rb
|
|
107
168
|
- lib/archspec/definition.rb
|
|
108
169
|
- lib/archspec/diagnostic.rb
|
|
109
170
|
- lib/archspec/dsl.rb
|
|
110
171
|
- lib/archspec/error.rb
|
|
111
172
|
- lib/archspec/evaluator.rb
|
|
173
|
+
- lib/archspec/facts.rb
|
|
174
|
+
- lib/archspec/facts/application.rb
|
|
175
|
+
- lib/archspec/facts/builder.rb
|
|
176
|
+
- lib/archspec/facts/document.rb
|
|
112
177
|
- lib/archspec/formatters/explanation.rb
|
|
113
178
|
- lib/archspec/formatters/json.rb
|
|
114
179
|
- lib/archspec/formatters/style.rb
|
|
115
180
|
- lib/archspec/formatters/text.rb
|
|
116
181
|
- lib/archspec/model.rb
|
|
182
|
+
- lib/archspec/producer.rb
|
|
183
|
+
- lib/archspec/rails_reflector.rb
|
|
184
|
+
- lib/archspec/reflect_runner.rb
|
|
117
185
|
- lib/archspec/rubydex_index.rb
|
|
118
186
|
- lib/archspec/rules/component_rules.rb
|
|
119
187
|
- lib/archspec/rules/concern_rules.rb
|
|
@@ -124,6 +192,10 @@ files:
|
|
|
124
192
|
- lib/archspec/rules/protocol_rules.rb
|
|
125
193
|
- lib/archspec/rules/reasoned.rb
|
|
126
194
|
- lib/archspec/source_location.rb
|
|
195
|
+
- lib/archspec/sources/base.rb
|
|
196
|
+
- lib/archspec/sources/comment.rb
|
|
197
|
+
- lib/archspec/sources/erb.rb
|
|
198
|
+
- lib/archspec/sources/ruby.rb
|
|
127
199
|
- lib/archspec/todo.rb
|
|
128
200
|
- lib/archspec/version.rb
|
|
129
201
|
homepage: https://archspecrb.dev
|