config_skeleton 1.1.0 → 2.0.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 +4 -4
- data/config_skeleton.gemspec +5 -2
- data/lib/config_skeleton.rb +7 -25
- metadata +18 -4
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 99dfaca5fbeaf8f2bd6c5fd921e854294cd1f01be8e27613ad58e7581e7b1bf5
|
4
|
+
data.tar.gz: 552d8592225a20807716bd74ab8eaf1866b25a1d8b7acec75eedb98d22cb95cf
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 4748a0d790e28a991555bf8647d79c71f827ba41d7d9a48156d9783a1e8e7ddefbe1acb4417c92667cb128e9c542b1e2aaa000d4adafa68aaf0a058d1e620d2d
|
7
|
+
data.tar.gz: 8cd5d2474c55a59255d53c1ed87bfb5c1a5bebe8df32117f9c49c4486ba1647a263c397606a0afb5fd67e22edaffd2df6c436ee8fb866b4bb066ff3d395960f9
|
data/config_skeleton.gemspec
CHANGED
@@ -1,7 +1,9 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
Gem::Specification.new do |s|
|
2
4
|
s.name = "config_skeleton"
|
3
5
|
|
4
|
-
s.version = "
|
6
|
+
s.version = "2.0.0"
|
5
7
|
|
6
8
|
s.platform = Gem::Platform::RUBY
|
7
9
|
|
@@ -17,13 +19,14 @@ Gem::Specification.new do |s|
|
|
17
19
|
|
18
20
|
s.add_runtime_dependency 'diffy', '~> 3.0'
|
19
21
|
s.add_runtime_dependency 'rb-inotify', '~> 0.9'
|
20
|
-
s.add_runtime_dependency 'service_skeleton', "~>
|
22
|
+
s.add_runtime_dependency 'service_skeleton', "~> 2.0"
|
21
23
|
|
22
24
|
s.add_development_dependency 'bundler'
|
23
25
|
s.add_development_dependency 'github-release'
|
24
26
|
s.add_development_dependency 'rake', "~> 12.0"
|
25
27
|
s.add_development_dependency 'redcarpet'
|
26
28
|
s.add_development_dependency 'rubocop'
|
29
|
+
s.add_development_dependency 'rubocop-discourse'
|
27
30
|
s.add_development_dependency 'yard'
|
28
31
|
s.add_development_dependency 'rspec'
|
29
32
|
s.add_development_dependency 'pry'
|
data/lib/config_skeleton.rb
CHANGED
@@ -1,3 +1,5 @@
|
|
1
|
+
# frozen_string_literal: true
|
2
|
+
|
1
3
|
require 'diffy'
|
2
4
|
require 'fileutils'
|
3
5
|
require 'frankenstein'
|
@@ -240,16 +242,11 @@ class ConfigSkeleton
|
|
240
242
|
logger.debug(logloc) { "notifier fd is #{notifier.to_io.inspect}" }
|
241
243
|
|
242
244
|
loop do
|
243
|
-
if
|
244
|
-
|
245
|
-
|
246
|
-
|
247
|
-
|
248
|
-
timeout = sleep_duration - cooldown_duration
|
249
|
-
logger.debug(logloc) { "Sleeping for #{timeout} seconds unless interrupted" }
|
250
|
-
ios = IO.select([notifier.to_io, @terminate_r, @trigger_regen_r], [], [], timeout)
|
251
|
-
|
252
|
-
if ios
|
245
|
+
if ios = IO.select(
|
246
|
+
[notifier.to_io, @terminate_r, @trigger_regen_r],
|
247
|
+
[], [],
|
248
|
+
sleep_duration.tap { |d| logger.debug(logloc) { "Sleeping for #{d} seconds" } }
|
249
|
+
)
|
253
250
|
if ios.first.include?(notifier.to_io)
|
254
251
|
logger.debug(logloc) { "inotify triggered" }
|
255
252
|
notifier.process
|
@@ -449,21 +446,6 @@ class ConfigSkeleton
|
|
449
446
|
60
|
450
447
|
end
|
451
448
|
|
452
|
-
# How long to ignore signals/notifications after a config regeneration
|
453
|
-
#
|
454
|
-
# Hammering a downstream service with reload requests is often a bad idea.
|
455
|
-
# This method exists to allow subclasses to define a 'cooldown' duration.
|
456
|
-
# After each config regeneration, the config generator will sleep for this
|
457
|
-
# duration, regardless of any CONT signals or inotify events. Those events
|
458
|
-
# will be queued up, and processed at the end of the cooldown.
|
459
|
-
#
|
460
|
-
# @return [Integer] the number of seconds to 'cooldown' for. This *must* be
|
461
|
-
# greater than zero, and less than sleep_duration
|
462
|
-
#
|
463
|
-
def cooldown_duration
|
464
|
-
5
|
465
|
-
end
|
466
|
-
|
467
449
|
# The instance of INotify::Notifier that is holding our file watches.
|
468
450
|
#
|
469
451
|
# @return [INotify::Notifier]
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: config_skeleton
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Matt Palmer
|
@@ -9,7 +9,7 @@ authors:
|
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2021-03-
|
12
|
+
date: 2021-03-01 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
name: diffy
|
@@ -45,14 +45,14 @@ dependencies:
|
|
45
45
|
requirements:
|
46
46
|
- - "~>"
|
47
47
|
- !ruby/object:Gem::Version
|
48
|
-
version: '
|
48
|
+
version: '2.0'
|
49
49
|
type: :runtime
|
50
50
|
prerelease: false
|
51
51
|
version_requirements: !ruby/object:Gem::Requirement
|
52
52
|
requirements:
|
53
53
|
- - "~>"
|
54
54
|
- !ruby/object:Gem::Version
|
55
|
-
version: '
|
55
|
+
version: '2.0'
|
56
56
|
- !ruby/object:Gem::Dependency
|
57
57
|
name: bundler
|
58
58
|
requirement: !ruby/object:Gem::Requirement
|
@@ -123,6 +123,20 @@ dependencies:
|
|
123
123
|
- - ">="
|
124
124
|
- !ruby/object:Gem::Version
|
125
125
|
version: '0'
|
126
|
+
- !ruby/object:Gem::Dependency
|
127
|
+
name: rubocop-discourse
|
128
|
+
requirement: !ruby/object:Gem::Requirement
|
129
|
+
requirements:
|
130
|
+
- - ">="
|
131
|
+
- !ruby/object:Gem::Version
|
132
|
+
version: '0'
|
133
|
+
type: :development
|
134
|
+
prerelease: false
|
135
|
+
version_requirements: !ruby/object:Gem::Requirement
|
136
|
+
requirements:
|
137
|
+
- - ">="
|
138
|
+
- !ruby/object:Gem::Version
|
139
|
+
version: '0'
|
126
140
|
- !ruby/object:Gem::Dependency
|
127
141
|
name: yard
|
128
142
|
requirement: !ruby/object:Gem::Requirement
|