flipper 1.1.2 → 1.3.0

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.
Files changed (65) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +9 -2
  3. data/.github/workflows/examples.yml +8 -2
  4. data/Changelog.md +1 -647
  5. data/Gemfile +3 -2
  6. data/README.md +3 -1
  7. data/Rakefile +2 -2
  8. data/docs/images/banner.jpg +0 -0
  9. data/exe/flipper +5 -0
  10. data/flipper.gemspec +5 -1
  11. data/lib/flipper/adapters/actor_limit.rb +28 -0
  12. data/lib/flipper/adapters/cache_base.rb +143 -0
  13. data/lib/flipper/adapters/http/client.rb +25 -16
  14. data/lib/flipper/adapters/operation_logger.rb +18 -88
  15. data/lib/flipper/adapters/read_only.rb +6 -39
  16. data/lib/flipper/adapters/strict.rb +16 -18
  17. data/lib/flipper/adapters/wrapper.rb +54 -0
  18. data/lib/flipper/cli.rb +263 -0
  19. data/lib/flipper/cloud/configuration.rb +9 -4
  20. data/lib/flipper/cloud/middleware.rb +5 -5
  21. data/lib/flipper/cloud/telemetry/instrumenter.rb +4 -8
  22. data/lib/flipper/cloud/telemetry/submitter.rb +2 -2
  23. data/lib/flipper/cloud/telemetry.rb +10 -2
  24. data/lib/flipper/cloud.rb +1 -1
  25. data/lib/flipper/engine.rb +32 -17
  26. data/lib/flipper/instrumentation/log_subscriber.rb +12 -3
  27. data/lib/flipper/metadata.rb +3 -1
  28. data/lib/flipper/poller.rb +6 -5
  29. data/lib/flipper/serializers/gzip.rb +3 -5
  30. data/lib/flipper/serializers/json.rb +3 -5
  31. data/lib/flipper/spec/shared_adapter_specs.rb +17 -16
  32. data/lib/flipper/test/shared_adapter_test.rb +17 -17
  33. data/lib/flipper/test_help.rb +43 -0
  34. data/lib/flipper/typecast.rb +3 -3
  35. data/lib/flipper/version.rb +11 -1
  36. data/lib/flipper.rb +3 -1
  37. data/lib/generators/flipper/setup_generator.rb +63 -0
  38. data/package-lock.json +41 -0
  39. data/package.json +10 -0
  40. data/spec/fixtures/environment.rb +1 -0
  41. data/spec/flipper/adapter_builder_spec.rb +1 -2
  42. data/spec/flipper/adapters/actor_limit_spec.rb +20 -0
  43. data/spec/flipper/adapters/http/client_spec.rb +61 -0
  44. data/spec/flipper/adapters/http_spec.rb +102 -76
  45. data/spec/flipper/adapters/strict_spec.rb +11 -9
  46. data/spec/flipper/cli_spec.rb +164 -0
  47. data/spec/flipper/cloud/configuration_spec.rb +35 -36
  48. data/spec/flipper/cloud/dsl_spec.rb +5 -5
  49. data/spec/flipper/cloud/middleware_spec.rb +8 -8
  50. data/spec/flipper/cloud/telemetry/backoff_policy_spec.rb +8 -9
  51. data/spec/flipper/cloud/telemetry/submitter_spec.rb +24 -24
  52. data/spec/flipper/cloud/telemetry_spec.rb +53 -1
  53. data/spec/flipper/cloud_spec.rb +10 -9
  54. data/spec/flipper/engine_spec.rb +140 -58
  55. data/spec/flipper/instrumentation/log_subscriber_spec.rb +9 -2
  56. data/spec/flipper/middleware/memoizer_spec.rb +7 -4
  57. data/spec/flipper_spec.rb +1 -1
  58. data/spec/spec_helper.rb +1 -0
  59. data/spec/support/fail_on_output.rb +8 -0
  60. data/spec/support/spec_helpers.rb +12 -5
  61. data/test/adapters/actor_limit_test.rb +20 -0
  62. data/test_rails/generators/flipper/setup_generator_test.rb +64 -0
  63. data/test_rails/system/test_help_test.rb +51 -0
  64. metadata +31 -9
  65. data/spec/support/climate_control.rb +0 -7
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: flipper
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.2
4
+ version: 1.3.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
8
8
  autorequire:
9
- bindir: bin
9
+ bindir: exe
10
10
  cert_chain: []
11
- date: 2023-12-12 00:00:00.000000000 Z
11
+ date: 2024-04-17 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: concurrent-ruby
@@ -26,7 +26,8 @@ dependencies:
26
26
  version: '2'
27
27
  description:
28
28
  email: support@flippercloud.io
29
- executables: []
29
+ executables:
30
+ - flipper
30
31
  extensions: []
31
32
  extra_rdoc_files: []
32
33
  files:
@@ -82,12 +83,15 @@ files:
82
83
  - examples/percentage_of_actors_group.rb
83
84
  - examples/percentage_of_time.rb
84
85
  - examples/strict.rb
86
+ - exe/flipper
85
87
  - flipper-cloud.gemspec
86
88
  - flipper.gemspec
87
89
  - lib/flipper.rb
88
90
  - lib/flipper/actor.rb
89
91
  - lib/flipper/adapter.rb
90
92
  - lib/flipper/adapter_builder.rb
93
+ - lib/flipper/adapters/actor_limit.rb
94
+ - lib/flipper/adapters/cache_base.rb
91
95
  - lib/flipper/adapters/dual_write.rb
92
96
  - lib/flipper/adapters/failover.rb
93
97
  - lib/flipper/adapters/failsafe.rb
@@ -107,6 +111,8 @@ files:
107
111
  - lib/flipper/adapters/sync/feature_synchronizer.rb
108
112
  - lib/flipper/adapters/sync/interval_synchronizer.rb
109
113
  - lib/flipper/adapters/sync/synchronizer.rb
114
+ - lib/flipper/adapters/wrapper.rb
115
+ - lib/flipper/cli.rb
110
116
  - lib/flipper/cloud.rb
111
117
  - lib/flipper/cloud/configuration.rb
112
118
  - lib/flipper/cloud/dsl.rb
@@ -176,6 +182,7 @@ files:
176
182
  - lib/flipper/serializers/json.rb
177
183
  - lib/flipper/spec/shared_adapter_specs.rb
178
184
  - lib/flipper/test/shared_adapter_test.rb
185
+ - lib/flipper/test_help.rb
179
186
  - lib/flipper/type.rb
180
187
  - lib/flipper/typecast.rb
181
188
  - lib/flipper/types/actor.rb
@@ -185,17 +192,23 @@ files:
185
192
  - lib/flipper/types/percentage_of_actors.rb
186
193
  - lib/flipper/types/percentage_of_time.rb
187
194
  - lib/flipper/version.rb
195
+ - lib/generators/flipper/setup_generator.rb
188
196
  - lib/generators/flipper/templates/update/migrations/01_create_flipper_tables.rb.erb
189
197
  - lib/generators/flipper/templates/update/migrations/02_change_flipper_gates_value_to_text.rb.erb
190
198
  - lib/generators/flipper/update_generator.rb
199
+ - package-lock.json
200
+ - package.json
201
+ - spec/fixtures/environment.rb
191
202
  - spec/fixtures/feature.json
192
203
  - spec/fixtures/flipper_pstore_1679087600.json
193
204
  - spec/flipper/actor_spec.rb
194
205
  - spec/flipper/adapter_builder_spec.rb
195
206
  - spec/flipper/adapter_spec.rb
207
+ - spec/flipper/adapters/actor_limit_spec.rb
196
208
  - spec/flipper/adapters/dual_write_spec.rb
197
209
  - spec/flipper/adapters/failover_spec.rb
198
210
  - spec/flipper/adapters/failsafe_spec.rb
211
+ - spec/flipper/adapters/http/client_spec.rb
199
212
  - spec/flipper/adapters/http_spec.rb
200
213
  - spec/flipper/adapters/instrumented_spec.rb
201
214
  - spec/flipper/adapters/memoizable_spec.rb
@@ -208,6 +221,7 @@ files:
208
221
  - spec/flipper/adapters/sync/interval_synchronizer_spec.rb
209
222
  - spec/flipper/adapters/sync/synchronizer_spec.rb
210
223
  - spec/flipper/adapters/sync_spec.rb
224
+ - spec/flipper/cli_spec.rb
211
225
  - spec/flipper/cloud/configuration_spec.rb
212
226
  - spec/flipper/cloud/dsl_spec.rb
213
227
  - spec/flipper/cloud/message_verifier_spec.rb
@@ -278,17 +292,20 @@ files:
278
292
  - spec/flipper_spec.rb
279
293
  - spec/spec_helper.rb
280
294
  - spec/support/actor_names.yml
281
- - spec/support/climate_control.rb
282
295
  - spec/support/descriptions.yml
296
+ - spec/support/fail_on_output.rb
283
297
  - spec/support/fake_backoff_policy.rb
284
298
  - spec/support/fake_udp_socket.rb
285
299
  - spec/support/skippable.rb
286
300
  - spec/support/spec_helpers.rb
301
+ - test/adapters/actor_limit_test.rb
287
302
  - test/adapters/memory_test.rb
288
303
  - test/adapters/pstore_test.rb
289
304
  - test/test_helper.rb
305
+ - test_rails/generators/flipper/setup_generator_test.rb
290
306
  - test_rails/generators/flipper/update_generator_test.rb
291
307
  - test_rails/helper.rb
308
+ - test_rails/system/test_help_test.rb
292
309
  homepage: https://www.flippercloud.io/docs
293
310
  licenses:
294
311
  - MIT
@@ -297,7 +314,7 @@ metadata:
297
314
  homepage_uri: https://www.flippercloud.io
298
315
  source_code_uri: https://github.com/flippercloud/flipper
299
316
  bug_tracker_uri: https://github.com/flippercloud/flipper/issues
300
- changelog_uri: https://github.com/flippercloud/flipper/blob/main/Changelog.md
317
+ changelog_uri: https://github.com/flippercloud/flipper/releases/tag/v1.3.0
301
318
  post_install_message:
302
319
  rdoc_options: []
303
320
  require_paths:
@@ -306,26 +323,29 @@ required_ruby_version: !ruby/object:Gem::Requirement
306
323
  requirements:
307
324
  - - ">="
308
325
  - !ruby/object:Gem::Version
309
- version: '0'
326
+ version: '2.6'
310
327
  required_rubygems_version: !ruby/object:Gem::Requirement
311
328
  requirements:
312
329
  - - ">="
313
330
  - !ruby/object:Gem::Version
314
331
  version: '0'
315
332
  requirements: []
316
- rubygems_version: 3.4.10
333
+ rubygems_version: 3.5.3
317
334
  signing_key:
318
335
  specification_version: 4
319
336
  summary: Beautiful, performant feature flags for Ruby and Rails.
320
337
  test_files:
338
+ - spec/fixtures/environment.rb
321
339
  - spec/fixtures/feature.json
322
340
  - spec/fixtures/flipper_pstore_1679087600.json
323
341
  - spec/flipper/actor_spec.rb
324
342
  - spec/flipper/adapter_builder_spec.rb
325
343
  - spec/flipper/adapter_spec.rb
344
+ - spec/flipper/adapters/actor_limit_spec.rb
326
345
  - spec/flipper/adapters/dual_write_spec.rb
327
346
  - spec/flipper/adapters/failover_spec.rb
328
347
  - spec/flipper/adapters/failsafe_spec.rb
348
+ - spec/flipper/adapters/http/client_spec.rb
329
349
  - spec/flipper/adapters/http_spec.rb
330
350
  - spec/flipper/adapters/instrumented_spec.rb
331
351
  - spec/flipper/adapters/memoizable_spec.rb
@@ -338,6 +358,7 @@ test_files:
338
358
  - spec/flipper/adapters/sync/interval_synchronizer_spec.rb
339
359
  - spec/flipper/adapters/sync/synchronizer_spec.rb
340
360
  - spec/flipper/adapters/sync_spec.rb
361
+ - spec/flipper/cli_spec.rb
341
362
  - spec/flipper/cloud/configuration_spec.rb
342
363
  - spec/flipper/cloud/dsl_spec.rb
343
364
  - spec/flipper/cloud/message_verifier_spec.rb
@@ -408,12 +429,13 @@ test_files:
408
429
  - spec/flipper_spec.rb
409
430
  - spec/spec_helper.rb
410
431
  - spec/support/actor_names.yml
411
- - spec/support/climate_control.rb
412
432
  - spec/support/descriptions.yml
433
+ - spec/support/fail_on_output.rb
413
434
  - spec/support/fake_backoff_policy.rb
414
435
  - spec/support/fake_udp_socket.rb
415
436
  - spec/support/skippable.rb
416
437
  - spec/support/spec_helpers.rb
438
+ - test/adapters/actor_limit_test.rb
417
439
  - test/adapters/memory_test.rb
418
440
  - test/adapters/pstore_test.rb
419
441
  - test/test_helper.rb
@@ -1,7 +0,0 @@
1
- require 'climate_control'
2
-
3
- RSpec.configure do |config|
4
- def with_env(options = {}, &block)
5
- ClimateControl.modify(options, &block)
6
- end
7
- end