parse_packwerk 0.11.0 → 0.12.0

Sign up to get free protection for your applications and to get access to all the features.
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