process_settings 0.10.1 → 0.10.6.pre.1

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: da736f5bcda926a346f3c125fdeb36f936cf9221df5c3c209394c95627c6c47b
4
- data.tar.gz: 5b726059cd24532410a70e8417b9e30ebd0685496ae457defce22b1c11d1544b
3
+ metadata.gz: 9f84a7b291c62e80a70aa63c5cd9fef3da8a479023b97b2b48876440e2ad3f78
4
+ data.tar.gz: ed14cf885d3c1e8f43aba4efd90b84aae91fba2e7d9aa0c044d3d87d60453ed0
5
5
  SHA512:
6
- metadata.gz: a8fa6fce27fc8b1fa91196ea95cca1c843b7bf460143b44de0e824e87be530fae61d1ace71c4c3d4c36c08d918d234a1e5b0ea7fa101df962e43af323a0e9bf3
7
- data.tar.gz: 931090768b94558c83f4ddfa1ec5f674f69709f3831587238e5f3e8cc8f761cf1fa2c6d9b403d3761f866069dde264841008d2efe9d6a040611d5cb02c5d14b6
6
+ metadata.gz: db0012a991f04fe39c830010e5d5bb189ab0d4acd7211e04b3c606aa4267297b439ef42837238366a13798bef80a3ba078c192494b2d135b29b5ae80998e16ab
7
+ data.tar.gz: 571dd8f98045dd11f43dc4d349d0b3b0e094de80deb304a3a52905c6659e8643f6adf9cc31ae4474bdd55b8530d9698fcaaa940e1d4a21c84461686bdd32b8e0
@@ -7,6 +7,7 @@
7
7
  require 'fileutils'
8
8
  require 'optparse'
9
9
  require 'ostruct'
10
+ require 'tempfile'
10
11
 
11
12
  PROGRAM_NAME = File.basename($PROGRAM_NAME)
12
13
 
@@ -41,19 +42,22 @@ input_files =
41
42
  end
42
43
  end
43
44
 
44
- system("rm -f tmp/combined_process_settings-A.yml tmp/combined_process_settings-B.yml")
45
+ tempfile_a = Tempfile.new(['combined_process_settings', '.yml'], 'tmp').path
46
+ tempfile_b = Tempfile.new(['combined_process_settings', '.yml'], 'tmp').path
47
+
48
+ system("rm -f #{tempfile_a} #{tempfile_b}")
45
49
 
46
50
  # remove the meta-data from the end
47
- system("sed '/^- meta:$/,$d' #{input_files[0]} > tmp/combined_process_settings-A.yml")
48
- system("sed '/^- meta:$/,$d' #{input_files[1]} > tmp/combined_process_settings-B.yml")
51
+ system("sed '/^- meta:$/,$d' #{input_files[0]} > #{tempfile_a}")
52
+ system("sed '/^- meta:$/,$d' #{input_files[1]} > #{tempfile_b}")
49
53
 
50
54
  if options.silent
51
- system("cmp --silent tmp/combined_process_settings-A.yml tmp/combined_process_settings-B.yml")
55
+ system("cmp --silent #{tempfile_a} #{tempfile_b}")
52
56
  else
53
- system("diff -c tmp/combined_process_settings-A.yml tmp/combined_process_settings-B.yml | sed '1,3d'")
57
+ system("diff -c #{tempfile_a} #{tempfile_b} | sed '1,3d'")
54
58
  end
55
59
  exit_code = $?.exitstatus
56
60
 
57
- system("rm -f tmp/combined_process_settings-A.yml tmp/combined_process_settings-B.yml")
61
+ system("rm -f #{tempfile_a} #{tempfile_b}")
58
62
 
59
63
  exit(exit_code)
@@ -22,14 +22,14 @@ module ProcessSettings
22
22
  raise ArgumentError, "Invalid monitor of type #{monitor.class.name} provided. Must be of type ProcessSettings::AbstractMonitor"
23
23
  end
24
24
 
25
- @instance = monitor
25
+ Monitor.instance = monitor
26
26
  end
27
27
 
28
28
  # Getter method for retrieving the current monitor instance being used by ProcessSettings
29
29
  #
30
30
  # @return [ProcessSettings::AbstractMonitor]
31
31
  def instance
32
- @instance ||= lazy_create_instance
32
+ Monitor.instance
33
33
  end
34
34
 
35
35
  # This is the main entry point for looking up settings in the process.
@@ -56,12 +56,5 @@ module ProcessSettings
56
56
  def [](*path, dynamic_context: {}, required: true)
57
57
  instance[*path, dynamic_context: dynamic_context, required: required]
58
58
  end
59
-
60
- private
61
-
62
- def lazy_create_instance
63
- ActiveSupport::Deprecation.warn("lazy creation of Monitor instance is deprecated and will be removed from ProcessSettings 1.0")
64
- Monitor.instance
65
- end
66
59
  end
67
60
  end
@@ -15,7 +15,7 @@ module ProcessSettings
15
15
  attr_reader :static_context, :statically_targeted_settings
16
16
 
17
17
  def initialize(logger:)
18
- @logger = logger
18
+ @logger = logger or raise ArgumentError, "logger must be not be nil"
19
19
  @on_change_callbacks = []
20
20
  @when_updated_blocks = Set.new
21
21
  @static_context = {}
@@ -13,7 +13,6 @@ module ProcessSettings
13
13
  attr_writer :instance
14
14
 
15
15
  def file_path=(new_file_path)
16
- ActiveSupport::Deprecation.warn("ProcessSettings::Monitor.file_path= is deprecated and will be removed in v1.0.")
17
16
  clear_instance
18
17
 
19
18
  @file_path = new_file_path
@@ -31,11 +30,16 @@ module ProcessSettings
31
30
  end
32
31
 
33
32
  def instance
34
- ActiveSupport::Deprecation.warn("ProcessSettings::Monitor.instance is deprecated and will be removed in v1.0. Use ProcessSettings.instance instead.")
35
- @instance ||= default_instance
33
+ if @instance
34
+ @instance
35
+ else
36
+ ActiveSupport::Deprecation.warn("`ProcessSettings::Monitor.instance` lazy create is deprecated and will be removed in v1.0. Assign a `FileMonitor` object to `ProcessSettings.instance =` instead.")
37
+ @instance = default_instance
38
+ end
36
39
  end
37
40
 
38
41
  def default_instance
42
+ ActiveSupport::Deprecation.warn("`ProcessSettings::Monitor.instance` is deprecated and will be removed in v1.0. Assign a `FileMonitor` object to `ProcessSettings.instance =` instead.")
39
43
  @default_instance ||= new_from_settings
40
44
  end
41
45
 
@@ -98,7 +98,7 @@ module ProcessSettings
98
98
 
99
99
  class << self
100
100
  def true_target
101
- @true_target || new(TRUE_JSON_DOC)
101
+ @true_target ||= new(TRUE_JSON_DOC)
102
102
  end
103
103
  end
104
104
  end
@@ -1,5 +1,6 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'active_support'
3
4
  require 'active_support/core_ext'
4
5
  require 'process_settings/abstract_monitor'
5
6
 
@@ -1,5 +1,7 @@
1
1
  # frozen_string_literal: true
2
2
 
3
+ require 'active_support'
4
+ require 'active_support/deprecation'
3
5
  require 'active_support/core_ext'
4
6
 
5
7
  require_relative '../monitor'
@@ -9,8 +11,14 @@ module ProcessSettings
9
11
  module Testing
10
12
  # This class implements the Monitor#targeted_value interface but is stubbed to use a simple hash in tests
11
13
  class MonitorStub
14
+ class << self
15
+ def new(*_args)
16
+ ActiveSupport::Deprecation.warn("ProcessSettings::Testing::MonitorStub is deprecated and will be removed in future versions. Use ProcessSettings::Testing::Monitor instead.", caller)
17
+ super
18
+ end
19
+ end
20
+
12
21
  def initialize(settings_hash)
13
- ActiveSupport::Deprecation.warn("ProcessSettings::Testing::MonitorStub is deprecated and will be removed in future versions. Use ProcessSettings::Testing::Monitor instead.", caller)
14
22
  @settings_hash = HashWithHashPath[settings_hash]
15
23
  end
16
24
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module ProcessSettings
4
- VERSION = '0.10.1'
4
+ VERSION = '0.10.6.pre.1'
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.10.1
4
+ version: 0.10.6.pre.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Invoca
@@ -108,9 +108,9 @@ required_ruby_version: !ruby/object:Gem::Requirement
108
108
  version: '0'
109
109
  required_rubygems_version: !ruby/object:Gem::Requirement
110
110
  requirements:
111
- - - ">="
111
+ - - ">"
112
112
  - !ruby/object:Gem::Version
113
- version: '0'
113
+ version: 1.3.1
114
114
  requirements: []
115
115
  rubygems_version: 3.0.3
116
116
  signing_key: