flipper 0.20.3 → 0.22.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 (50) hide show
  1. checksums.yaml +4 -4
  2. data/.github/workflows/ci.yml +18 -9
  3. data/Changelog.md +62 -0
  4. data/Gemfile +2 -0
  5. data/README.md +104 -47
  6. data/docs/Adapters.md +9 -9
  7. data/docs/Caveats.md +2 -2
  8. data/docs/Gates.md +74 -74
  9. data/docs/Optimization.md +70 -47
  10. data/docs/api/README.md +5 -5
  11. data/docs/http/README.md +12 -11
  12. data/docs/images/banner.jpg +0 -0
  13. data/docs/read-only/README.md +8 -5
  14. data/examples/api/basic.ru +19 -0
  15. data/examples/api/custom_memoized.ru +37 -0
  16. data/examples/api/memoized.ru +43 -0
  17. data/examples/basic.rb +1 -12
  18. data/examples/configuring_default.rb +2 -5
  19. data/examples/dsl.rb +13 -24
  20. data/examples/enabled_for_actor.rb +8 -15
  21. data/examples/group.rb +3 -6
  22. data/examples/group_dynamic_lookup.rb +5 -19
  23. data/examples/group_with_members.rb +4 -14
  24. data/examples/importing.rb +1 -1
  25. data/examples/individual_actor.rb +2 -5
  26. data/examples/instrumentation.rb +1 -2
  27. data/examples/memoizing.rb +3 -7
  28. data/examples/percentage_of_actors.rb +6 -16
  29. data/examples/percentage_of_actors_enabled_check.rb +7 -10
  30. data/examples/percentage_of_actors_group.rb +5 -18
  31. data/examples/percentage_of_time.rb +3 -6
  32. data/lib/flipper.rb +4 -1
  33. data/lib/flipper/adapters/pstore.rb +4 -0
  34. data/lib/flipper/configuration.rb +33 -7
  35. data/lib/flipper/errors.rb +2 -3
  36. data/lib/flipper/identifier.rb +17 -0
  37. data/lib/flipper/middleware/memoizer.rb +30 -15
  38. data/lib/flipper/railtie.rb +46 -0
  39. data/lib/flipper/version.rb +1 -1
  40. data/spec/flipper/configuration_spec.rb +20 -2
  41. data/spec/flipper/identifier_spec.rb +14 -0
  42. data/spec/flipper/middleware/memoizer_spec.rb +95 -35
  43. data/spec/flipper/middleware/setup_env_spec.rb +0 -16
  44. data/spec/flipper/railtie_spec.rb +69 -0
  45. data/spec/flipper_spec.rb +0 -1
  46. data/spec/helper.rb +2 -2
  47. data/spec/support/spec_helpers.rb +20 -0
  48. data/test/test_helper.rb +1 -0
  49. metadata +12 -3
  50. data/examples/example_setup.rb +0 -8
data/spec/flipper_spec.rb CHANGED
@@ -232,7 +232,6 @@ RSpec.describe Flipper do
232
232
  cloud_configuration = Flipper::Cloud::Configuration.new({
233
233
  token: "asdf",
234
234
  sync_secret: "tasty",
235
- sync_method: :webhook,
236
235
  })
237
236
 
238
237
  described_class.configure do |config|
data/spec/helper.rb CHANGED
@@ -14,8 +14,8 @@ require 'webmock/rspec'
14
14
  WebMock.disable_net_connect!(allow_localhost: true)
15
15
 
16
16
  require 'flipper'
17
- require 'flipper-ui'
18
- require 'flipper-api'
17
+ require 'flipper/ui'
18
+ require 'flipper/api'
19
19
 
20
20
  Dir[FlipperRoot.join('spec/support/**/*.rb')].sort.each { |f| require f }
21
21
 
@@ -61,9 +61,29 @@ module SpecHelpers
61
61
  def with_modified_env(options, &block)
62
62
  ClimateControl.modify(options, &block)
63
63
  end
64
+
65
+ def silence
66
+ # Store the original stderr and stdout in order to restore them later
67
+ original_stderr = $stderr
68
+ original_stdout = $stdout
69
+
70
+ # Redirect stderr and stdout
71
+ output = $stderr = $stdout = StringIO.new
72
+
73
+ yield
74
+
75
+ $stderr = original_stderr
76
+ $stdout = original_stdout
77
+
78
+ # Return output
79
+ output.string
80
+ end
64
81
  end
65
82
 
66
83
  RSpec.configure do |config|
84
+ config.order = :random
85
+ Kernel.srand config.seed
86
+
67
87
  config.include Rack::Test::Methods
68
88
  config.include SpecHelpers
69
89
  end
data/test/test_helper.rb CHANGED
@@ -1,3 +1,4 @@
1
+ require 'bundler/setup'
1
2
  require 'flipper'
2
3
  require 'minitest/autorun'
3
4
  require 'minitest/unit'
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: 0.20.3
4
+ version: 0.22.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - John Nunemaker
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2021-01-10 00:00:00.000000000 Z
11
+ date: 2021-07-08 00:00:00.000000000 Z
12
12
  dependencies: []
13
13
  description:
14
14
  email:
@@ -35,12 +35,15 @@ files:
35
35
  - docs/Optimization.md
36
36
  - docs/api/README.md
37
37
  - docs/http/README.md
38
+ - docs/images/banner.jpg
38
39
  - docs/read-only/README.md
40
+ - examples/api/basic.ru
41
+ - examples/api/custom_memoized.ru
42
+ - examples/api/memoized.ru
39
43
  - examples/basic.rb
40
44
  - examples/configuring_default.rb
41
45
  - examples/dsl.rb
42
46
  - examples/enabled_for_actor.rb
43
- - examples/example_setup.rb
44
47
  - examples/group.rb
45
48
  - examples/group_dynamic_lookup.rb
46
49
  - examples/group_with_members.rb
@@ -82,6 +85,7 @@ files:
82
85
  - lib/flipper/gates/group.rb
83
86
  - lib/flipper/gates/percentage_of_actors.rb
84
87
  - lib/flipper/gates/percentage_of_time.rb
88
+ - lib/flipper/identifier.rb
85
89
  - lib/flipper/instrumentation/log_subscriber.rb
86
90
  - lib/flipper/instrumentation/statsd.rb
87
91
  - lib/flipper/instrumentation/statsd_subscriber.rb
@@ -91,6 +95,7 @@ files:
91
95
  - lib/flipper/metadata.rb
92
96
  - lib/flipper/middleware/memoizer.rb
93
97
  - lib/flipper/middleware/setup_env.rb
98
+ - lib/flipper/railtie.rb
94
99
  - lib/flipper/registry.rb
95
100
  - lib/flipper/spec/shared_adapter_specs.rb
96
101
  - lib/flipper/test/shared_adapter_test.rb
@@ -129,12 +134,14 @@ files:
129
134
  - spec/flipper/gates/group_spec.rb
130
135
  - spec/flipper/gates/percentage_of_actors_spec.rb
131
136
  - spec/flipper/gates/percentage_of_time_spec.rb
137
+ - spec/flipper/identifier_spec.rb
132
138
  - spec/flipper/instrumentation/log_subscriber_spec.rb
133
139
  - spec/flipper/instrumentation/statsd_subscriber_spec.rb
134
140
  - spec/flipper/instrumenters/memory_spec.rb
135
141
  - spec/flipper/instrumenters/noop_spec.rb
136
142
  - spec/flipper/middleware/memoizer_spec.rb
137
143
  - spec/flipper/middleware/setup_env_spec.rb
144
+ - spec/flipper/railtie_spec.rb
138
145
  - spec/flipper/registry_spec.rb
139
146
  - spec/flipper/typecast_spec.rb
140
147
  - spec/flipper/types/actor_spec.rb
@@ -204,12 +211,14 @@ test_files:
204
211
  - spec/flipper/gates/group_spec.rb
205
212
  - spec/flipper/gates/percentage_of_actors_spec.rb
206
213
  - spec/flipper/gates/percentage_of_time_spec.rb
214
+ - spec/flipper/identifier_spec.rb
207
215
  - spec/flipper/instrumentation/log_subscriber_spec.rb
208
216
  - spec/flipper/instrumentation/statsd_subscriber_spec.rb
209
217
  - spec/flipper/instrumenters/memory_spec.rb
210
218
  - spec/flipper/instrumenters/noop_spec.rb
211
219
  - spec/flipper/middleware/memoizer_spec.rb
212
220
  - spec/flipper/middleware/setup_env_spec.rb
221
+ - spec/flipper/railtie_spec.rb
213
222
  - spec/flipper/registry_spec.rb
214
223
  - spec/flipper/typecast_spec.rb
215
224
  - spec/flipper/types/actor_spec.rb
@@ -1,8 +0,0 @@
1
- # Nothing to see here... move along.
2
- # Sets up load path for examples and requires some stuff
3
- require 'pp'
4
- require 'pathname'
5
-
6
- root_path = Pathname(__FILE__).dirname.join('..').expand_path
7
- lib_path = root_path.join('lib')
8
- $:.unshift(lib_path)