process_settings 0.5.4.pre.1 → 0.5.4

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: c51c6fd16737845ed2ff8ab28b127d7e0a58b2a99926f47990adda952ca84db8
4
- data.tar.gz: a4a2f86fd244320929523e849c15c3737d344aa34cb8288c81806f93b3844da1
3
+ metadata.gz: 0d3f11e7b35109103df7bcd4cc593f2589948df29edfe1eb8fabf332b6676717
4
+ data.tar.gz: f71a2c9d8c8b3c70e89b0ab1497d6331aaa75961f8283cb01779f2939b7cf4e9
5
5
  SHA512:
6
- metadata.gz: d454ebe1d871c50d8d8d545a12ee958f2102d91c837738cda2ad9156450842a77ac86eca7c0a9b0bec5bf248081c488440f4dc082d651d438da696c7ec30d32f
7
- data.tar.gz: 0e6bc0976b16124da1361900354fe27ad7e54564a8419050f92670cc4df16f0e98f8bb0b8fbddaa43d3687818fa306ba8c31146de3c690f08663e58deab01d20
6
+ metadata.gz: 745b8414363c0f9464b1e8a5a1025fa4808b26abcc143f28d269ae45edecb2e1671ea468d8cb64d3a696644292da8d9d720b5eda8700479a74bdff04805f28fa
7
+ data.tar.gz: d154960aa9a1f3a5197b5cca0bb7becb59669cd1b1e1cd6419395bed83a885b7f984e5f842cf502a60454f5a93cb630ba28e652b4d1d5ce98c533202d223f3dc
@@ -20,23 +20,16 @@ module ProcessSettings
20
20
  @logger = logger
21
21
  @on_change_callbacks = []
22
22
  @static_context = {}
23
-
24
- start
25
- end
26
-
27
- # starts listening for changes
28
- # Note: This method creates a new thread that will be monitoring for changes
29
- # do to the nature of how the Listen gem works, there is no record of
30
- # existing threads, calling this mutliple times will result in spinning off
31
- # multiple listen threads and will have unknow effects
32
- def start
33
- path = File.dirname(@file_path)
23
+ @last_statically_targetted_settings = nil
24
+ @last_untargetted_settings = nil
34
25
 
35
26
  # to eliminate any race condition:
36
27
  # 1. set up file watcher
37
28
  # 2. start it (this should trigger if any changes have been made since (1))
38
29
  # 3. load the file
39
30
 
31
+ path = File.dirname(@file_path)
32
+
40
33
  @listener = file_change_notifier.to(path) do |modified, added, _removed|
41
34
  if modified.include?(@file_path) || added.include?(@file_path)
42
35
  @logger.info("ProcessSettings::Monitor file #{@file_path} changed. Reloading.")
@@ -51,14 +44,19 @@ module ProcessSettings
51
44
  end
52
45
 
53
46
  load_untargeted_settings
47
+
54
48
  load_statically_targeted_settings
55
49
  end
56
50
 
57
51
  # stops listening for changes
58
52
  def stop
59
- @listener&.stop
53
+ @listener.stop
60
54
  end
61
55
 
56
+ # TODO:
57
+ # 1. rename this to `when_updated` and clone that interface from InvocaCluster
58
+ # 2. since the callback yields self, support Instance#[]; have ProcessSettings.[] delegate there.
59
+
62
60
  # Registers the given callback block to be called when settings change.
63
61
  # These are run using the shared thread that monitors for changes so be courteous and don't monopolize it!
64
62
  def on_change(&callback)
@@ -109,10 +107,6 @@ module ProcessSettings
109
107
 
110
108
  private
111
109
 
112
- def listener
113
-
114
- end
115
-
116
110
  # Loads the most recent settings from disk
117
111
  def load_untargeted_settings
118
112
  new_untargeted_settings = load_file(file_path)
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ProcessSettings
4
- VERSION = '0.5.4.pre.1'
4
+ VERSION = '0.5.4'
5
5
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: process_settings
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.5.4.pre.1
4
+ version: 0.5.4
5
5
  platform: ruby
6
6
  authors:
7
7
  - Invoca
@@ -98,11 +98,11 @@ required_ruby_version: !ruby/object:Gem::Requirement
98
98
  version: '0'
99
99
  required_rubygems_version: !ruby/object:Gem::Requirement
100
100
  requirements:
101
- - - ">"
101
+ - - ">="
102
102
  - !ruby/object:Gem::Version
103
- version: 1.3.1
103
+ version: '0'
104
104
  requirements: []
105
- rubygems_version: 3.0.3
105
+ rubygems_version: 3.0.1
106
106
  signing_key:
107
107
  specification_version: 4
108
108
  summary: Dynamic process settings