lib/ddtrace/configuration/settings.rb in ddtrace-0.45.0 vs lib/ddtrace/configuration/settings.rb in ddtrace-0.46.0
- old
+ new
@@ -185,13 +185,11 @@
o.setter do |new_value, old_value|
# Coerce keys to strings
string_tags = Hash[new_value.collect { |k, v| [k.to_s, v] }]
# Cross-populate tag values with other settings
- if env.nil? && string_tags.key?(Ext::Environment::TAG_ENV)
- self.env = string_tags[Ext::Environment::TAG_ENV]
- end
+ self.env = string_tags[Ext::Environment::TAG_ENV] if env.nil? && string_tags.key?(Ext::Environment::TAG_ENV)
if version.nil? && string_tags.key?(Ext::Environment::TAG_VERSION)
self.version = string_tags[Ext::Environment::TAG_VERSION]
end
@@ -202,9 +200,25 @@
# Merge with previous tags
(old_value || {}).merge(string_tags)
end
o.lazy
+ end
+
+ option :time_now_provider do |o|
+ o.default { ::Time.now }
+
+ o.on_set do |time_provider|
+ Utils::Time.now_provider = time_provider
+ end
+
+ o.resetter do |_value|
+ # TODO: Resetter needs access to the default value
+ # TODO: to help reduce duplication.
+ -> { ::Time.now }.tap do |default|
+ Utils::Time.now_provider = default
+ end
+ end
end
settings :tracer do
option :enabled do |o|
o.default { env_to_bool(Datadog::Ext::Diagnostics::DD_TRACE_ENABLED, true) }