parse_packwerk 0.21.0 → 0.23.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/lib/parse_packwerk/constants.rb +1 -0
- data/lib/parse_packwerk/extensions.rb +5 -0
- data/lib/parse_packwerk/package.rb +8 -5
- data/lib/parse_packwerk.rb +4 -0
- metadata +20 -6
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 6f5c6b2eb83704f6e211d67ddba506c01993a54212352e0df03d0f7ad6713811
|
4
|
+
data.tar.gz: cf24db153fefdf3a68f81f66497e1a95232f1983cd7d5b72c52105ef99713a49
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 29d5912e75225063d09ed673a91b2aaf9541463fcd605c40fc6f47ef469f6e84aed0d5f8e1491857b94d5588dc6f22feca5efc7302bf83f5c493bc5bc61b9d5f
|
7
|
+
data.tar.gz: 5c4162d677ca8b174e8733f641cd820a0581ec9a7ad19f41c3a8cd3c3cae27f0a8d059005312e16ed71d2251924315bac154a8604ae43d9b0a5928dceb9f7187
|
@@ -7,6 +7,7 @@ module ParsePackwerk
|
|
7
7
|
PACKAGE_TODO_YML_NAME = T.let('package_todo.yml'.freeze, String)
|
8
8
|
ENFORCE_DEPENDENCIES = T.let('enforce_dependencies'.freeze, String)
|
9
9
|
ENFORCE_PRIVACY = T.let('enforce_privacy'.freeze, String)
|
10
|
+
ENFORCE_ARCHITECTURE = T.let('enforce_architecture'.freeze, String)
|
10
11
|
DEPENDENCY_VIOLATION_TYPE = T.let('dependency'.freeze, String)
|
11
12
|
PRIVACY_VIOLATION_TYPE = T.let('privacy'.freeze, String)
|
12
13
|
PUBLIC_PATH = T.let('public_path'.freeze, String)
|
@@ -13,6 +13,11 @@ module ParsePackwerk
|
|
13
13
|
def self.privacy_extension_installed?
|
14
14
|
all_extensions_installed? || ParsePackwerk.yml.requires.include?('packwerk/privacy/checker')
|
15
15
|
end
|
16
|
+
|
17
|
+
sig { returns(T::Boolean) }
|
18
|
+
def self.architecture_extension_installed?
|
19
|
+
all_extensions_installed? || ParsePackwerk.yml.requires.include?('packwerk/architecture/checker')
|
20
|
+
end
|
16
21
|
end
|
17
22
|
|
18
23
|
private_constant :Extensions
|
@@ -7,6 +7,7 @@ module ParsePackwerk
|
|
7
7
|
const :name, String
|
8
8
|
const :enforce_dependencies, T.nilable(T.any(T::Boolean, String))
|
9
9
|
const :enforce_privacy, T.any(T::Boolean, String), default: false
|
10
|
+
const :enforce_architecture, T.any(T::Boolean, String), default: false
|
10
11
|
const :public_path, String, default: DEFAULT_PUBLIC_PATH
|
11
12
|
const :metadata, MetadataYmlType
|
12
13
|
const :dependencies, T::Array[String]
|
@@ -15,17 +16,14 @@ module ParsePackwerk
|
|
15
16
|
|
16
17
|
sig { params(pathname: Pathname).returns(Package) }
|
17
18
|
def self.from(pathname)
|
18
|
-
package_loaded_yml = YAML.load_file(pathname)
|
19
|
-
if package_loaded_yml.nil? || package_loaded_yml == false
|
20
|
-
message = "Failed to parse `#{pathname}`. Please fix any issues with this package.yml OR add its containing folder to packwerk.yml `exclude`"
|
21
|
-
raise PackageParseError, message
|
22
|
-
end
|
19
|
+
package_loaded_yml = YAML.load_file(pathname) || {}
|
23
20
|
package_name = pathname.dirname.cleanpath.to_s
|
24
21
|
|
25
22
|
new(
|
26
23
|
name: package_name,
|
27
24
|
enforce_dependencies: package_loaded_yml[ENFORCE_DEPENDENCIES],
|
28
25
|
enforce_privacy: package_loaded_yml[ENFORCE_PRIVACY] || false,
|
26
|
+
enforce_architecture: package_loaded_yml[ENFORCE_ARCHITECTURE] || false,
|
29
27
|
public_path: package_loaded_yml[PUBLIC_PATH] || DEFAULT_PUBLIC_PATH,
|
30
28
|
metadata: package_loaded_yml[METADATA] || {},
|
31
29
|
dependencies: package_loaded_yml[DEPENDENCIES] || [],
|
@@ -63,5 +61,10 @@ module ParsePackwerk
|
|
63
61
|
def enforces_privacy?
|
64
62
|
enforce_privacy
|
65
63
|
end
|
64
|
+
|
65
|
+
sig { returns(T.any(T::Boolean, String)) }
|
66
|
+
def enforces_architecture?
|
67
|
+
enforce_architecture
|
68
|
+
end
|
66
69
|
end
|
67
70
|
end
|
data/lib/parse_packwerk.rb
CHANGED
@@ -72,6 +72,10 @@ module ParsePackwerk
|
|
72
72
|
merged_config.merge!('enforce_privacy' => package.enforce_privacy)
|
73
73
|
end
|
74
74
|
|
75
|
+
if Extensions.architecture_extension_installed?
|
76
|
+
merged_config.merge!('enforce_architecture' => package.enforce_architecture)
|
77
|
+
end
|
78
|
+
|
75
79
|
unless package.public_path == DEFAULT_PUBLIC_PATH
|
76
80
|
merged_config.merge!('public_path' => package.public_path)
|
77
81
|
end
|
metadata
CHANGED
@@ -1,15 +1,29 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: parse_packwerk
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.23.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Gusto Engineers
|
8
|
-
autorequire:
|
8
|
+
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2024-04-24 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
|
+
- !ruby/object:Gem::Dependency
|
14
|
+
name: bigdecimal
|
15
|
+
requirement: !ruby/object:Gem::Requirement
|
16
|
+
requirements:
|
17
|
+
- - ">="
|
18
|
+
- !ruby/object:Gem::Version
|
19
|
+
version: '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'
|
13
27
|
- !ruby/object:Gem::Dependency
|
14
28
|
name: sorbet-runtime
|
15
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -174,7 +188,7 @@ metadata:
|
|
174
188
|
source_code_uri: https://github.com/rubyatscale/parse_packwerk
|
175
189
|
changelog_uri: https://github.com/rubyatscale/parse_packwerk/releases
|
176
190
|
allowed_push_host: https://rubygems.org
|
177
|
-
post_install_message:
|
191
|
+
post_install_message:
|
178
192
|
rdoc_options: []
|
179
193
|
require_paths:
|
180
194
|
- lib
|
@@ -189,8 +203,8 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
189
203
|
- !ruby/object:Gem::Version
|
190
204
|
version: '0'
|
191
205
|
requirements: []
|
192
|
-
rubygems_version: 3.
|
193
|
-
signing_key:
|
206
|
+
rubygems_version: 3.5.9
|
207
|
+
signing_key:
|
194
208
|
specification_version: 4
|
195
209
|
summary: A low-dependency gem for parsing and writing packwerk YML files
|
196
210
|
test_files: []
|