parse_packwerk 0.11.0 → 0.12.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 (3) hide show
  1. checksums.yaml +4 -4
  2. data/lib/parse_packwerk.rb +12 -2
  3. metadata +2 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: f97fa90aa6c1081358322fcbce578b4a133305216312ec90cd27cd990bf16575
4
- data.tar.gz: 497321cf3cddc44fc099244ca9b2481beff586a9ad82a0482971977e368dcce7
3
+ metadata.gz: 573bc6231b6506545fa220a99d6ed0abf08362a72e44cabae50a333c209bcbb9
4
+ data.tar.gz: df64a2831b7d4cebc67597cebcfc2b71ee8cd0d33b1d124f8b6d152eb5e8f6a2
5
5
  SHA512:
6
- metadata.gz: db897c18973474fac686a1ed2bf60882fea2ddb28e41c419199e30c08d76598b185ec2e44600ece0421d19f4a44bdb8d3348ca6cfd6ef59c99a7f1cacb2e087d
7
- data.tar.gz: 6a5ccf2ff287f334fc404b7c2064c2f10c6d43fd91a84e8fc641e1f9360b526fb9829e6ad4ab44761c54b8effaedec9ca3468f493cc3680d9b7883c02345cb67
6
+ metadata.gz: 6cc08b66c764699ee9110f800fd13dd41deeacefeba958f5769b4d15d6dd1ed186612d846813d3d69670127036d24de51ec4a7dd599a435187b686dcc3693e0d
7
+ data.tar.gz: 64aacb8e7b976545a5974db6e480e5b0f4e01c164517ac8434f8e8f66dc6bf966f2cdb60aff357fc0dbb96af49f7aaa787e46af8868816f4fcc775209081e1f6
@@ -26,7 +26,7 @@ module ParsePackwerk
26
26
  returns(T::Array[Package])
27
27
  end
28
28
  def self.all
29
- PackageSet.from(package_pathspec: yml.package_paths, exclude_pathspec: yml.exclude)
29
+ packages_by_name.values
30
30
  end
31
31
 
32
32
  sig { params(name: String).returns(T.nilable(Package)) }
@@ -93,9 +93,19 @@ module ParsePackwerk
93
93
  def self.packages_by_name
94
94
  @packages_by_name = T.let(@packages_by_name, T.nilable(T::Hash[String, Package]))
95
95
  @packages_by_name ||= begin
96
- all.map{|p| [p.name, p]}.to_h
96
+ all_packages = PackageSet.from(package_pathspec: yml.package_paths, exclude_pathspec: yml.exclude)
97
+ # We want to match more specific paths first
98
+ # Packwerk does this too and is necessary for package_from_path to work correctly.
99
+ sorted_packages = all_packages.sort_by { |package| -package.name.length }
100
+ sorted_packages.map{|p| [p.name, p]}.to_h
97
101
  end
98
102
  end
99
103
 
104
+ sig { void }
105
+ def self.bust_cache!
106
+ @packages_by_name = nil
107
+ @package_from_path = nil
108
+ end
109
+
100
110
  private_class_method :packages_by_name
101
111
  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.11.0
4
+ version: 0.12.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: 2022-07-08 00:00:00.000000000 Z
11
+ date: 2022-08-13 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: sorbet-runtime