kennel 1.89.1 → 1.90.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: 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