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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 62d54073d16c04726b00e66b33a8edc9081b9dc397a8f8a8e5aac5316c00bacd
4
- data.tar.gz: 8687814d25dbba0b4353622aed082f508f5ce185107419614e018cd4ea047afe
3
+ metadata.gz: 0cde892347959f5a15a5c42626562e9e9e5565fe3c1aa68bed4d0290ebfd08a1
4
+ data.tar.gz: d6825a1cc1616c69a9f4738b333e9a07bfc0d5ae3bd70d70221b158d4ecf0891
5
5
  SHA512:
6
- metadata.gz: 6fae978a95aea14cccb5c639623ed55bc65559feab2bf3053fa9c785ddaee516dcffd10977afb58f2f78b353b80d55ef48cf7defd18b564a92d7c966abd4d8f4
7
- data.tar.gz: 82b457f3764084effd4b0724a422dfabc69972aff30e6c0af7bff1b28ab215c287662026c86b4e36be657c7351001134093bfc7ca18aab326b547fa41842ca2e
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
- attr_accessor :app_key
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
- attr_accessor :enable_usage_tracking
62
+ attr_reader :enable_usage_tracking
63
63
 
64
64
  # @return [Boolean] Enable business metrics (Metrics.SendMetrics)
65
- attr_accessor :enable_metrics
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
- telemetry_default = options.key?(:app_key) && !options[:app_key].to_s.empty? &&
110
- ENV["TOGGLY_DISABLE_TELEMETRY"] != "1"
111
- @enable_usage_tracking = options.fetch(:enable_usage_tracking, telemetry_default)
112
- @enable_metrics = options.fetch(:enable_metrics, telemetry_default)
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
 
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Toggly
4
- VERSION = "0.5.0"
4
+ VERSION = "0.5.1"
5
5
  end
data/lib/toggly.rb CHANGED
@@ -79,6 +79,7 @@ module Toggly
79
79
  def configure
80
80
  config = Config.new
81
81
  yield(config) if block_given?
82
+ config.apply_telemetry_defaults!
82
83
  @client = Client.new(config)
83
84
  end
84
85
 
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.0
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-10 00:00:00.000000000 Z
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.