flipper 0.6.3 → 0.7.0.beta1

Sign up to get free protection for your applications and to get access to all the features.
Files changed (52) hide show
  1. checksums.yaml +4 -4
  2. data/.travis.yml +2 -2
  3. data/Gemfile +10 -10
  4. data/Guardfile +2 -1
  5. data/README.md +54 -23
  6. data/Rakefile +1 -1
  7. data/examples/dsl.rb +2 -2
  8. data/examples/{percentage_of_random.rb → percentage_of_time.rb} +1 -1
  9. data/lib/flipper.rb +25 -12
  10. data/lib/flipper/dsl.rb +96 -8
  11. data/lib/flipper/feature.rb +216 -37
  12. data/lib/flipper/gate.rb +6 -38
  13. data/lib/flipper/gate_values.rb +42 -0
  14. data/lib/flipper/gates/actor.rb +11 -13
  15. data/lib/flipper/gates/boolean.rb +3 -12
  16. data/lib/flipper/gates/group.rb +14 -16
  17. data/lib/flipper/gates/percentage_of_actors.rb +12 -13
  18. data/lib/flipper/gates/{percentage_of_random.rb → percentage_of_time.rb} +8 -11
  19. data/lib/flipper/instrumentation/log_subscriber.rb +1 -1
  20. data/lib/flipper/instrumentation/subscriber.rb +1 -1
  21. data/lib/flipper/spec/shared_adapter_specs.rb +16 -16
  22. data/lib/flipper/type.rb +1 -1
  23. data/lib/flipper/typecast.rb +44 -0
  24. data/lib/flipper/types/actor.rb +2 -5
  25. data/lib/flipper/types/group.rb +6 -0
  26. data/lib/flipper/types/percentage.rb +7 -1
  27. data/lib/flipper/types/{percentage_of_random.rb → percentage_of_time.rb} +1 -1
  28. data/lib/flipper/version.rb +1 -1
  29. data/script/bootstrap +21 -0
  30. data/script/guard +15 -0
  31. data/script/release +15 -0
  32. data/script/test +30 -0
  33. data/spec/flipper/dsl_spec.rb +67 -8
  34. data/spec/flipper/feature_spec.rb +424 -12
  35. data/spec/flipper/gate_spec.rb +1 -20
  36. data/spec/flipper/gate_values_spec.rb +134 -0
  37. data/spec/flipper/gates/actor_spec.rb +1 -21
  38. data/spec/flipper/gates/boolean_spec.rb +3 -71
  39. data/spec/flipper/gates/group_spec.rb +3 -23
  40. data/spec/flipper/gates/percentage_of_actors_spec.rb +5 -26
  41. data/spec/flipper/gates/percentage_of_time_spec.rb +23 -0
  42. data/spec/flipper/middleware/memoizer_spec.rb +1 -2
  43. data/spec/flipper/typecast_spec.rb +63 -0
  44. data/spec/flipper/types/group_spec.rb +21 -1
  45. data/spec/flipper/types/percentage_of_time_spec.rb +6 -0
  46. data/spec/flipper/types/percentage_spec.rb +20 -0
  47. data/spec/flipper_spec.rb +31 -9
  48. data/spec/helper.rb +1 -3
  49. data/spec/integration_spec.rb +22 -22
  50. metadata +21 -11
  51. data/spec/flipper/gates/percentage_of_random_spec.rb +0 -46
  52. data/spec/flipper/types/percentage_of_random_spec.rb +0 -6
@@ -1,46 +0,0 @@
1
- require 'helper'
2
- require 'flipper/instrumenters/memory'
3
-
4
- describe Flipper::Gates::PercentageOfRandom do
5
- let(:instrumenter) { Flipper::Instrumenters::Memory.new }
6
- let(:feature_name) { :search }
7
-
8
- subject {
9
- described_class.new(feature_name, :instrumenter => instrumenter)
10
- }
11
-
12
- describe "instrumentation" do
13
- it "is recorded for open" do
14
- thing = Struct.new(:flipper_id).new('22')
15
- subject.open?(thing, 0)
16
-
17
- event = instrumenter.events.last
18
- event.should_not be_nil
19
- event.name.should eq('gate_operation.flipper')
20
-
21
- event.payload[:thing].should eq(thing)
22
- event.payload[:operation].should eq(:open?)
23
- event.payload[:gate_name].should eq(:percentage_of_random)
24
- event.payload[:feature_name].should eq(:search)
25
-
26
- # random so don't test value
27
- event.payload.key?(:result).should eq(true)
28
- event.payload[:result].should_not be_nil
29
- end
30
- end
31
-
32
- describe "#description" do
33
- context "when enabled" do
34
- it "returns text" do
35
- subject.description(22).should eq('22% of the time')
36
- end
37
- end
38
-
39
- context "when disabled" do
40
- it "returns disabled" do
41
- subject.description(nil).should eq('disabled')
42
- subject.description(0).should eq('disabled')
43
- end
44
- end
45
- end
46
- end
@@ -1,6 +0,0 @@
1
- require 'helper'
2
- require 'flipper/types/percentage_of_random'
3
-
4
- describe Flipper::Types::PercentageOfRandom do
5
- it_should_behave_like 'a percentage'
6
- end