kennel 1.94.0 → 1.96.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: 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: []