kennel 1.94.0 → 1.96.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: 1d984d593aa96ff9c939af26662e0595041e6f7fe24878965c721ead9063ee0f
4
- data.tar.gz: 12279d2909c96279d8a69a0cca222bbf29a900bfeb1fadf1a00e375275993cca
3
+ metadata.gz: dad671ae1433588cff8641dbe5337c5db450d2bda9a05d61ba272a76c2482a5b
4
+ data.tar.gz: 493cac344bfa4b1e2cab2de6e395887e91eac3d374fea84333af0268b8ee544d
5
5
  SHA512:
6
- metadata.gz: aeb78440808f08f268b112b91c294f94f199544f49c8a941132dbe9666d721500e00b30360bc5b9aacbfaae13301e04cb9f16531183cb014991f8eb3700d8bf0
7
- data.tar.gz: e071f1ce423eaca94cbce0c7bc9906b1caf8a08e114edd201f5a0c4184bae34668bfa70132c72703fdb4eaee6463f70e909865f3e1feb4f63d7fb741ff95e53e
6
+ metadata.gz: 6048d4264a57b5b1bbda44bbc302965de9b09ba8985f397d5c537910d1d79fad0b0e77b02dfcda9e43b2168bc32b1c3ad335081afb1f9f2a3c09096c811d0b4d
7
+ data.tar.gz: d4f919fcda3553c30bcfb38719b9996b5eca9189c0f4d7d73718f52b526a5eb84cb35f128463ae35fbac525dd61aacc54f7d2447bcf53eff5ed4f2bc5a30cc22
@@ -149,12 +149,16 @@ module Kennel
149
149
  end
150
150
 
151
151
  def convert_strings_to_heredoc(text)
152
- text.gsub(/^(\s*)(.*)"([^"]+\\n[^"]+)"(,)?/) do
152
+ text.gsub(/^( *)([^" ]+ *)"([^"]+\\n[^"]+)"(,)?\n/) do
153
153
  indent = $1
154
154
  prefix = $2
155
155
  string = $3
156
156
  comma = $4
157
- "#{indent}#{prefix}<<~TXT#{comma}\n#{indent} #{string.gsub("\\n", "\n#{indent} ").rstrip}\n#{indent}TXT"
157
+ <<~CODE.gsub(/ +$/, "")
158
+ #{indent}#{prefix}<<~TXT#{comma}
159
+ #{indent} #{string.gsub("\\n", "\n#{indent} ").rstrip}
160
+ #{indent}TXT
161
+ CODE
158
162
  end
159
163
  end
160
164
 
@@ -69,7 +69,10 @@ module Kennel
69
69
  template_variable_presets: nil
70
70
  }.freeze
71
71
 
72
- settings :title, :description, :definitions, :widgets, :layout_type, :template_variable_presets, :reflow_type
72
+ settings(
73
+ :title, :description, :definitions, :widgets, :layout_type, :template_variable_presets, :reflow_type,
74
+ :tags
75
+ )
73
76
 
74
77
  defaults(
75
78
  description: -> { "" },
@@ -77,6 +80,10 @@ module Kennel
77
80
  widgets: -> { [] },
78
81
  template_variable_presets: -> { DEFAULTS.fetch(:template_variable_presets) },
79
82
  reflow_type: -> { layout_type == "ordered" ? "auto" : nil },
83
+ tags: -> do # not inherited by default to make onboarding to using dashboard tags simple
84
+ team = project.team
85
+ team.tag_dashboards ? team.tags : []
86
+ end,
80
87
  id: -> { nil }
81
88
  )
82
89
 
@@ -145,10 +152,12 @@ module Kennel
145
152
  return @json if @json
146
153
  all_widgets = render_definitions(definitions) + widgets
147
154
  expand_q all_widgets
155
+ tags = tags()
156
+ tags_as_string = (tags.empty? ? "" : " (#{tags.join(" ")})")
148
157
 
149
158
  @json = {
150
159
  layout_type: layout_type,
151
- title: "#{title}#{LOCK}",
160
+ title: "#{title}#{tags_as_string}#{LOCK}",
152
161
  description: description,
153
162
  template_variables: render_template_variables,
154
163
  template_variable_presets: template_variable_presets,
@@ -2,10 +2,11 @@
2
2
  module Kennel
3
3
  module Models
4
4
  class Team < Base
5
- settings :mention, :tags, :renotify_interval, :kennel_id
5
+ settings :mention, :tags, :renotify_interval, :kennel_id, :tag_dashboards
6
6
  defaults(
7
7
  tags: -> { ["team:#{kennel_id.sub(/^teams_/, "")}"] },
8
- renotify_interval: -> { 0 }
8
+ renotify_interval: -> { 0 },
9
+ tag_dashboards: -> { false }
9
10
  )
10
11
  end
11
12
  end
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "1.94.0"
3
+ VERSION = "1.96.0"
4
4
  end
data/lib/kennel.rb CHANGED
@@ -1,6 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
  require "faraday"
3
3
  require "json"
4
+ require "zeitwerk"
4
5
  require "shellwords"
5
6
  require "English"
6
7
 
@@ -30,6 +31,10 @@ require "kennel/models/synthetic_test"
30
31
  require "kennel/models/project"
31
32
  require "kennel/models/team"
32
33
 
34
+ # need to define early since we autoload the teams/ folder into it
35
+ module Teams
36
+ end
37
+
33
38
  module Kennel
34
39
  class ValidationError < RuntimeError
35
40
  end
@@ -128,7 +133,13 @@ module Kennel
128
133
  end
129
134
 
130
135
  def load_all
131
- ["teams", "parts", "projects"].each do |folder|
136
+ loader = Zeitwerk::Loader.new
137
+ Dir.exist?("teams") && loader.push_dir("teams", namespace: Teams)
138
+ Dir.exist?("parts") && loader.push_dir("parts")
139
+ loader.setup
140
+
141
+ # TODO: also do projects
142
+ ["projects"].each do |folder|
132
143
  Dir["#{folder}/**/*.rb"].sort.each { |f| require "./#{f}" }
133
144
  end
134
145
  end
metadata CHANGED
@@ -1,29 +1,29 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: kennel
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.94.0
4
+ version: 1.96.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-10-15 00:00:00.000000000 Z
11
+ date: 2021-10-25 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: faraday
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ">="
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '1.8'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ">="
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '0'
26
+ version: '1.8'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: hashdiff
29
29
  requirement: !ruby/object:Gem::Requirement
@@ -52,6 +52,20 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '4.0'
55
+ - !ruby/object:Gem::Dependency
56
+ name: zeitwerk
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - "~>"
60
+ - !ruby/object:Gem::Version
61
+ version: '2.4'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - "~>"
67
+ - !ruby/object:Gem::Version
68
+ version: '2.4'
55
69
  description:
56
70
  email: michael@grosser.it
57
71
  executables: []