kennel 1.89.1 → 1.90.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: ba1d58935b541b89cb78318964470bb209933a491d9b81e23785de0fb6ab2654
4
- data.tar.gz: aed4b13dc2c35ced80073e592fd0d2ba2afda8dfb763d2c6baa4b1f30851cf53
3
+ metadata.gz: 861edba684922b252c0af4cbbdecbe258e28fc0dcba9a31f8c77e14ea3391110
4
+ data.tar.gz: fc11becb68eb696db030e517d99e12191eae10024c74ca852c7c308646517ef4
5
5
  SHA512:
6
- metadata.gz: d3595608df6e40ec4241bf2b758f1ed1b3fde0e63dff7f5a4fa393a358cf9cb9fa33bb0c5f72899b7df54817cb9482366d9c387e3c21a33249e35e3bcc4fc8ea
7
- data.tar.gz: 745ec8c762acc885a9d0f2ae23fc9f43ca05f56b8c580501075e2b9237e7199a09499053cebb45e5bfa477aa0a187cabf5899e05f7bf6c361f952347ab6cac34
6
+ metadata.gz: 660e66d7a1ae02a0f67d723ddd1beccddea63d9bf62658b4327ec2622ba32f161a6c9336b86a1295b8037195ed513c4514c0c1759e6eb71764665d11feeb19fe
7
+ data.tar.gz: a2f479c8579e94a7a796e59ea6be3433c795f1db35892a5ce57a345ac7449c87a344632ad8c35fd27256da70d5c49eb227dd70f89c7566ea4084085277f25e94
data/lib/kennel.rb CHANGED
@@ -55,7 +55,7 @@ module Kennel
55
55
 
56
56
  def store(parts)
57
57
  Progress.progress "Storing" do
58
- old = Dir["generated/**/*"]
58
+ old = Dir["generated/#{project_filter || "**"}/*"]
59
59
  used = []
60
60
 
61
61
  Utils.parallel(parts, max: 2) do |part|
@@ -83,7 +83,7 @@ module Kennel
83
83
  end
84
84
 
85
85
  def syncer
86
- @syncer ||= Syncer.new(api, generated, project: ENV["PROJECT"])
86
+ @syncer ||= Syncer.new(api, generated, project: project_filter)
87
87
  end
88
88
 
89
89
  def api
@@ -94,9 +94,21 @@ module Kennel
94
94
  @generated ||= begin
95
95
  Progress.progress "Generating" do
96
96
  load_all
97
+ known = []
97
98
  parts = Models::Project.recursive_subclasses.flat_map do |project_class|
98
- project_class.new.validated_parts
99
+ project = project_class.new
100
+ kennel_id = project.kennel_id
101
+ if project_filter
102
+ known << kennel_id
103
+ next [] if kennel_id != project_filter
104
+ end
105
+ project.validated_parts
99
106
  end
107
+
108
+ if project_filter && parts.empty?
109
+ raise "#{project_filter} does not match any projects, try any of these:\n#{known.uniq.sort.join("\n")}"
110
+ end
111
+
100
112
  parts.group_by(&:tracking_id).each do |tracking_id, same|
101
113
  next if same.size == 1
102
114
  raise <<~ERROR
@@ -109,6 +121,10 @@ module Kennel
109
121
  end
110
122
  end
111
123
 
124
+ def project_filter
125
+ ENV["PROJECT"]
126
+ end
127
+
112
128
  def load_all
113
129
  ["teams", "parts", "projects"].each do |folder|
114
130
  Dir["#{folder}/**/*.rb"].sort.each { |f| require "./#{f}" }
data/lib/kennel/syncer.rb CHANGED
@@ -99,7 +99,6 @@ module Kennel
99
99
  actual = Progress.progress("Downloading definitions") { download_definitions }
100
100
 
101
101
  Progress.progress "Diffing" do
102
- filter_expected_by_project! @expected
103
102
  populate_id_map @expected, actual
104
103
  filter_actual_by_project! actual
105
104
  resolve_linked_tracking_ids! @expected # resolve dependencies to avoid diff
@@ -244,16 +243,5 @@ module Kennel
244
243
  !tracking_id || tracking_id.start_with?("#{@project_filter}:")
245
244
  end
246
245
  end
247
-
248
- def filter_expected_by_project!(expected)
249
- return unless @project_filter
250
- original = expected.dup
251
- expected.select! { |e| e.project.kennel_id == @project_filter }
252
-
253
- if expected.empty?
254
- possible = original.map { |e| e.project.kennel_id }.uniq.sort
255
- raise "#{@project_filter} does not match any projects, try any of these:\n#{possible.join("\n")}"
256
- end
257
- end
258
246
  end
259
247
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.89.1"
3
+ VERSION = "1.90.0"
4
4
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kennel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.89.1
4
+ version: 1.90.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Michael Grosser
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-07-01 00:00:00.000000000 Z
11
+ date: 2021-07-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday