toggly 0.5.0 → 0.5.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 +4 -4
- data/CHANGELOG.md +10 -0
- data/lib/toggly/config.rb +40 -7
- data/lib/toggly/version.rb +1 -1
- data/lib/toggly.rb +1 -0
- metadata +2 -2
checksums.yaml
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
---
|
|
2
2
|
SHA256:
|
|
3
|
-
metadata.gz:
|
|
4
|
-
data.tar.gz:
|
|
3
|
+
metadata.gz: 0cde892347959f5a15a5c42626562e9e9e5565fe3c1aa68bed4d0290ebfd08a1
|
|
4
|
+
data.tar.gz: d6825a1cc1616c69a9f4738b333e9a07bfc0d5ae3bd70d70221b158d4ecf0891
|
|
5
5
|
SHA512:
|
|
6
|
-
metadata.gz:
|
|
7
|
-
data.tar.gz:
|
|
6
|
+
metadata.gz: 5ff95be9cc331f8e8be111f25aafef777299ae3b2e38a0fdeeb22fdb3eeb2a54531266d3be5351283792e991d2aa00d427aa664a9ef6d2139bccb5baeb39b926
|
|
7
|
+
data.tar.gz: b27946b9231816193fb1aaeac0ebab94cb6dd8242664a4081108cfb5bf7c4e0dc2d9b6c4261be745e0e0364312efa6d9a0fff3610ce5cc5449cbc7cca41a20fc
|
data/CHANGELOG.md
CHANGED
|
@@ -5,6 +5,16 @@ All notable changes to this project will be documented in this file.
|
|
|
5
5
|
The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
|
|
6
6
|
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).
|
|
7
7
|
|
|
8
|
+
## [0.5.1] - 2026-09-16
|
|
9
|
+
|
|
10
|
+
### Fixed
|
|
11
|
+
|
|
12
|
+
- Apply usage/metrics telemetry defaults from the final `app_key` and
|
|
13
|
+
`TOGGLY_DISABLE_TELEMETRY` after `Toggly.configure` and when `app_key` is
|
|
14
|
+
assigned after `Config.new`. Explicit `enable_usage_tracking` /
|
|
15
|
+
`enable_metrics` still win, so setting the key in a configure block no
|
|
16
|
+
longer leaves usage stuck off.
|
|
17
|
+
|
|
8
18
|
## [0.5.0] - 2026-09-08
|
|
9
19
|
|
|
10
20
|
### Added
|
data/lib/toggly/config.rb
CHANGED
|
@@ -10,7 +10,7 @@ module Toggly
|
|
|
10
10
|
# )
|
|
11
11
|
class Config
|
|
12
12
|
# @return [String] Application key from Toggly dashboard
|
|
13
|
-
|
|
13
|
+
attr_reader :app_key
|
|
14
14
|
|
|
15
15
|
# @return [String] Environment name (e.g., "Production", "Staging")
|
|
16
16
|
attr_accessor :environment
|
|
@@ -59,10 +59,10 @@ module Toggly
|
|
|
59
59
|
attr_accessor :logger
|
|
60
60
|
|
|
61
61
|
# @return [Boolean] Enable feature usage tracking (Usage.SendStats)
|
|
62
|
-
|
|
62
|
+
attr_reader :enable_usage_tracking
|
|
63
63
|
|
|
64
64
|
# @return [Boolean] Enable business metrics (Metrics.SendMetrics)
|
|
65
|
-
|
|
65
|
+
attr_reader :enable_metrics
|
|
66
66
|
|
|
67
67
|
# @return [String] Base URL for usage/metrics gRPC (default app.toggly.io)
|
|
68
68
|
attr_accessor :metrics_base_url
|
|
@@ -106,10 +106,11 @@ module Toggly
|
|
|
106
106
|
@allowed_key_ids = options[:allowed_key_ids] || []
|
|
107
107
|
@logger = options[:logger]
|
|
108
108
|
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
@enable_usage_tracking = options
|
|
112
|
-
@enable_metrics = options
|
|
109
|
+
@usage_tracking_explicit = options.key?(:enable_usage_tracking)
|
|
110
|
+
@metrics_explicit = options.key?(:enable_metrics)
|
|
111
|
+
@enable_usage_tracking = options[:enable_usage_tracking] if @usage_tracking_explicit
|
|
112
|
+
@enable_metrics = options[:enable_metrics] if @metrics_explicit
|
|
113
|
+
apply_telemetry_defaults!
|
|
113
114
|
@metrics_base_url = normalize_url(options[:metrics_base_url] || DEFAULT_METRICS_BASE_URL)
|
|
114
115
|
@usage_flush_interval = options.fetch(:usage_flush_interval, DEFAULT_TELEMETRY_FLUSH_SECONDS)
|
|
115
116
|
@metrics_flush_interval = options.fetch(:metrics_flush_interval, DEFAULT_TELEMETRY_FLUSH_SECONDS)
|
|
@@ -136,6 +137,34 @@ module Toggly
|
|
|
136
137
|
raise ConfigError, "environment is required" if @environment.nil? || @environment.empty?
|
|
137
138
|
end
|
|
138
139
|
|
|
140
|
+
def app_key=(value)
|
|
141
|
+
@app_key = value
|
|
142
|
+
apply_telemetry_defaults!
|
|
143
|
+
end
|
|
144
|
+
|
|
145
|
+
def enable_usage_tracking=(value)
|
|
146
|
+
@usage_tracking_explicit = true
|
|
147
|
+
@enable_usage_tracking = value
|
|
148
|
+
end
|
|
149
|
+
|
|
150
|
+
def enable_metrics=(value)
|
|
151
|
+
@metrics_explicit = true
|
|
152
|
+
@enable_metrics = value
|
|
153
|
+
end
|
|
154
|
+
|
|
155
|
+
# Apply usage/metrics defaults from the current +app_key+ and
|
|
156
|
+
# +TOGGLY_DISABLE_TELEMETRY+. Explicit +enable_usage_tracking+ /
|
|
157
|
+
# +enable_metrics+ assignments still win. Call after a configure block
|
|
158
|
+
# so +Config.new+ without options does not leave usage stuck off.
|
|
159
|
+
#
|
|
160
|
+
# @return [self]
|
|
161
|
+
def apply_telemetry_defaults!
|
|
162
|
+
default = telemetry_enabled_by_default?
|
|
163
|
+
@enable_usage_tracking = default unless @usage_tracking_explicit
|
|
164
|
+
@enable_metrics = default unless @metrics_explicit
|
|
165
|
+
self
|
|
166
|
+
end
|
|
167
|
+
|
|
139
168
|
# Check if running in offline mode (defaults only)
|
|
140
169
|
#
|
|
141
170
|
# @return [Boolean]
|
|
@@ -170,6 +199,10 @@ module Toggly
|
|
|
170
199
|
|
|
171
200
|
private
|
|
172
201
|
|
|
202
|
+
def telemetry_enabled_by_default?
|
|
203
|
+
!@app_key.to_s.empty? && ENV["TOGGLY_DISABLE_TELEMETRY"] != "1"
|
|
204
|
+
end
|
|
205
|
+
|
|
173
206
|
def normalize_url(url)
|
|
174
207
|
return url if url.nil?
|
|
175
208
|
|
data/lib/toggly/version.rb
CHANGED
data/lib/toggly.rb
CHANGED
metadata
CHANGED
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: toggly
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.5.
|
|
4
|
+
version: 0.5.1
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ops.ai
|
|
8
8
|
autorequire:
|
|
9
9
|
bindir: bin
|
|
10
10
|
cert_chain: []
|
|
11
|
-
date: 2026-09-
|
|
11
|
+
date: 2026-09-17 00:00:00.000000000 Z
|
|
12
12
|
dependencies: []
|
|
13
13
|
description: High-performance Ruby SDK for Toggly feature flag management. Works with
|
|
14
14
|
or without Toggly.io.
|