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.
- checksums.yaml +4 -4
- data/.travis.yml +2 -2
- data/Gemfile +10 -10
- data/Guardfile +2 -1
- data/README.md +54 -23
- data/Rakefile +1 -1
- data/examples/dsl.rb +2 -2
- data/examples/{percentage_of_random.rb → percentage_of_time.rb} +1 -1
- data/lib/flipper.rb +25 -12
- data/lib/flipper/dsl.rb +96 -8
- data/lib/flipper/feature.rb +216 -37
- data/lib/flipper/gate.rb +6 -38
- data/lib/flipper/gate_values.rb +42 -0
- data/lib/flipper/gates/actor.rb +11 -13
- data/lib/flipper/gates/boolean.rb +3 -12
- data/lib/flipper/gates/group.rb +14 -16
- data/lib/flipper/gates/percentage_of_actors.rb +12 -13
- data/lib/flipper/gates/{percentage_of_random.rb → percentage_of_time.rb} +8 -11
- data/lib/flipper/instrumentation/log_subscriber.rb +1 -1
- data/lib/flipper/instrumentation/subscriber.rb +1 -1
- data/lib/flipper/spec/shared_adapter_specs.rb +16 -16
- data/lib/flipper/type.rb +1 -1
- data/lib/flipper/typecast.rb +44 -0
- data/lib/flipper/types/actor.rb +2 -5
- data/lib/flipper/types/group.rb +6 -0
- data/lib/flipper/types/percentage.rb +7 -1
- data/lib/flipper/types/{percentage_of_random.rb → percentage_of_time.rb} +1 -1
- data/lib/flipper/version.rb +1 -1
- data/script/bootstrap +21 -0
- data/script/guard +15 -0
- data/script/release +15 -0
- data/script/test +30 -0
- data/spec/flipper/dsl_spec.rb +67 -8
- data/spec/flipper/feature_spec.rb +424 -12
- data/spec/flipper/gate_spec.rb +1 -20
- data/spec/flipper/gate_values_spec.rb +134 -0
- data/spec/flipper/gates/actor_spec.rb +1 -21
- data/spec/flipper/gates/boolean_spec.rb +3 -71
- data/spec/flipper/gates/group_spec.rb +3 -23
- data/spec/flipper/gates/percentage_of_actors_spec.rb +5 -26
- data/spec/flipper/gates/percentage_of_time_spec.rb +23 -0
- data/spec/flipper/middleware/memoizer_spec.rb +1 -2
- data/spec/flipper/typecast_spec.rb +63 -0
- data/spec/flipper/types/group_spec.rb +21 -1
- data/spec/flipper/types/percentage_of_time_spec.rb +6 -0
- data/spec/flipper/types/percentage_spec.rb +20 -0
- data/spec/flipper_spec.rb +31 -9
- data/spec/helper.rb +1 -3
- data/spec/integration_spec.rb +22 -22
- metadata +21 -11
- data/spec/flipper/gates/percentage_of_random_spec.rb +0 -46
- 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
|