kennel 2.12.2 → 2.13.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: e5fd8e04a85ff166271cdf705344e6d0a55f8bc313ef761260673061ec475da3
4
- data.tar.gz: a9c6b0f6f8adcf33bd3cd9cd02e1d437332bcd79d2705134aea43139b0ea179b
3
+ metadata.gz: 4ad7fc83d72816d45830ddf3c46d266d8a6baba0c163d16c85ae69dcdc5058bd
4
+ data.tar.gz: 2ab1212ba1a378cdfe758e0821251661a977adbea8f57f88156e38131d9fac81
5
5
  SHA512:
6
- metadata.gz: df94a5253b481df52ae71ab3c8cff4d6e8f2608d310d86de481090ef5397f99593aeadc99a73e262d227de0ab67ec0f3d6dff74db5f485ceefd67d7d20bf1706
7
- data.tar.gz: 6f5f299ecf2381df854102ee2b501b8521746b68055414ec898e5b0cb3aefbc256b9ba1f47af44c5364f8e4e5c3eb462333459b9d52dcf5f5c062a541afa06f0
6
+ metadata.gz: bf31a0b076d4d961c04bfb670d5969d71419eeb97388bcdfcd9410192efad429cb2b2de04cd02ad1798534abe61f8c9f3c65689a7f34b27d2c6d8b7dee150bcd
7
+ data.tar.gz: cedb8aaa36eaaa1f67cc137419891048d56b1fb1b103a51e8743cf2eecdd10d10d8bdcf609435def8fad3b8d92e8cd3c53a03f7dacd4d6996796e9f79db73b15
data/lib/kennel/api.rb CHANGED
@@ -109,7 +109,9 @@ module Kennel
109
109
 
110
110
  def request(method, path, body: nil, params: {}, ignore_404: false)
111
111
  path = "#{path}?#{Faraday::FlatParamsEncoder.encode(params)}" if params.any?
112
- with_cache ENV["FORCE_GET_CACHE"] && method == :get, path do
112
+ cached = (ENV["FORCE_GET_CACHE"] && method == :get)
113
+
114
+ with_cache cached, path do
113
115
  response = nil
114
116
  tries = 2
115
117
 
@@ -128,7 +130,8 @@ module Kennel
128
130
  redo
129
131
  end
130
132
 
131
- break if i == tries - 1 || method != :get || response.status < 500
133
+ last_try = (i == tries - 1)
134
+ break if last_try || ![:get, :put].include?(method) || response.status < 500
132
135
  Kennel.err.puts "Retrying on server error #{response.status} for #{path}"
133
136
  end
134
137
 
@@ -73,7 +73,7 @@ module Kennel
73
73
  end
74
74
 
75
75
  def self.parse_url(url)
76
- url[/[?&]slo_id=([a-z\d]{10,})/, 1] || url[/\/slo\/([a-z\d]{10,})\/edit(\?|$)/, 1]
76
+ url[/[?&]slo_id=([a-z\d]{10,})/, 1] || url[/\/slo\/([a-z\d]{10,})(:?\/edit)?(\?|$)/, 1]
77
77
  end
78
78
 
79
79
  def resolve_linked_tracking_ids!(id_map, **args)
@@ -18,7 +18,7 @@ module Kennel
18
18
  private
19
19
 
20
20
  def loaded_projects
21
- Models::Project.recursive_subclasses
21
+ Models::Project.recursive_subclasses.reject(&:abstract_class?)
22
22
  end
23
23
 
24
24
  # "require" requested .rb files under './projects',
@@ -9,8 +9,16 @@ module Kennel
9
9
  @subclasses ||= []
10
10
  end
11
11
 
12
+ def abstract_class?
13
+ !!@abstract_class
14
+ end
15
+
12
16
  private
13
17
 
18
+ def abstract_class!
19
+ @abstract_class = true # not inherited by children
20
+ end
21
+
14
22
  def inherited(child)
15
23
  super
16
24
  subclasses << child
@@ -1,4 +1,4 @@
1
1
  # frozen_string_literal: true
2
2
  module Kennel
3
- VERSION = "2.12.2"
3
+ VERSION = "2.13.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: 2.12.2
4
+ version: 2.13.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: 2026-01-13 00:00:00.000000000 Z
11
+ date: 2026-01-18 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: diff-lcs