parse_packwerk 0.21.0 → 0.22.0

Sign up to get free protection for your applications and to get access to all the features.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 7665b37cbab9d74a91785449408830963feeef02bd1816827c54c39f3504228c
4
- data.tar.gz: e80b45a3f6c801aa5c17e7951030bbb8f976632a8c9e4f799cbde23e1ed34988
3
+ metadata.gz: c6370b4639d8046076ebb15799265eafcad8c1af66795b22d2dd9812d431f8b8
4
+ data.tar.gz: 73823f09cc2022609f82287464d5d71d62fc8bef90b7542e4ab5d879be9346bf
5
5
  SHA512:
6
- metadata.gz: 6e2ee542e063f014e7e278f089742f9318b4569208e88acd8b3eed9b7358f1000de57e4a812ec8d52c75e11ab8bf5af961ae58f2b4ccf6b09cf28f6a6dbae248
7
- data.tar.gz: 1bf86e70a1ad52ef21ddde492788ab72d90c479baca3dec887c774c45c14971a4b12fe07e58b383fd229a16ab941a9f8a2c68ddebcdfde811c634c6ce193b502
6
+ metadata.gz: d1b44126cee4b76567cc56bc9e5e662d1adce14d1044c679b176cac461bc8c1f1563f1fff487de6f45d6901b8fa857815ee8c55a9317d7dfe9d18623af42ff27
7
+ data.tar.gz: d3da9bbae535e82a114e1d703a454407a5d432d7ee2c4003756a8afdb67d74a71be148518ec724c7e55e9daa9a713c120e6beb8705a8d0a9f7639128db349eba
@@ -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]
@@ -26,6 +27,7 @@ module ParsePackwerk
26
27
  name: package_name,
27
28
  enforce_dependencies: package_loaded_yml[ENFORCE_DEPENDENCIES],
28
29
  enforce_privacy: package_loaded_yml[ENFORCE_PRIVACY] || false,
30
+ enforce_architecture: package_loaded_yml[ENFORCE_ARCHITECTURE] || false,
29
31
  public_path: package_loaded_yml[PUBLIC_PATH] || DEFAULT_PUBLIC_PATH,
30
32
  metadata: package_loaded_yml[METADATA] || {},
31
33
  dependencies: package_loaded_yml[DEPENDENCIES] || [],
@@ -63,5 +65,10 @@ module ParsePackwerk
63
65
  def enforces_privacy?
64
66
  enforce_privacy
65
67
  end
68
+
69
+ sig { returns(T.any(T::Boolean, String)) }
70
+ def enforces_architecture?
71
+ enforce_architecture
72
+ end
66
73
  end
67
74
  end
@@ -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,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: parse_packwerk
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.21.0
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Gusto Engineers
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2023-12-12 00:00:00.000000000 Z
11
+ date: 2023-12-14 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime