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.
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.1.0.rc2
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-08-27 00:00:00.000000000 Z
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