paddock 0.0.1 → 0.1.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.
- data/README.md +5 -1
- data/lib/paddock.rb +1 -1
- data/spec/paddock_spec.rb +40 -0
- metadata +2 -2
data/README.md
CHANGED
@@ -6,10 +6,12 @@ Paddock is a feature switch system.
|
|
6
6
|
|
7
7
|
Define which features should be used in certain environments.
|
8
8
|
|
9
|
-
##
|
9
|
+
## Setup
|
10
10
|
|
11
11
|
Put this somewhere like: `config/initializers/paddock.rb`
|
12
12
|
|
13
|
+
include Paddock
|
14
|
+
|
13
15
|
Paddock(Rails.env) do
|
14
16
|
enable :phone_system, :in => [:development, :test]
|
15
17
|
enable :door_locks, :in => :development
|
@@ -36,6 +38,8 @@ This is a unix system. I know this.
|
|
36
38
|
|
37
39
|
## Testing
|
38
40
|
|
41
|
+
This might need some work.
|
42
|
+
|
39
43
|
You can define which features are enabled in a test:
|
40
44
|
|
41
45
|
before(:each) do
|
data/lib/paddock.rb
CHANGED
@@ -18,7 +18,7 @@ module Paddock
|
|
18
18
|
|
19
19
|
def enabled?
|
20
20
|
result = true if @envs == :all
|
21
|
-
result ||= Array(@envs).include?(Paddock.environment.to_sym)
|
21
|
+
result ||= Array(@envs).map { |env| env.to_sym }.include?(Paddock.environment.to_sym)
|
22
22
|
@disabled ? (!result) : result
|
23
23
|
end
|
24
24
|
end
|
data/spec/paddock_spec.rb
CHANGED
@@ -54,6 +54,16 @@ describe Paddock('development') do
|
|
54
54
|
it "returns true from the feature check" do
|
55
55
|
feature(:perimeter_fence).should be_true
|
56
56
|
end
|
57
|
+
|
58
|
+
it "is indifferent to strings/symbols" do
|
59
|
+
Paddock('development') do
|
60
|
+
enable :perimeter_fence, :in => 'development'
|
61
|
+
end
|
62
|
+
|
63
|
+
called = false
|
64
|
+
feature(:perimeter_fence) { called = true }
|
65
|
+
called.should be_true
|
66
|
+
end
|
57
67
|
end
|
58
68
|
end
|
59
69
|
|
@@ -78,6 +88,16 @@ describe Paddock('development') do
|
|
78
88
|
it "returns true from the feature check" do
|
79
89
|
feature(:perimeter_fence).should be_true
|
80
90
|
end
|
91
|
+
|
92
|
+
it "is indifferent to strings/symbols" do
|
93
|
+
Paddock('development') do
|
94
|
+
enable :perimeter_fence, :in => %w[development test]
|
95
|
+
end
|
96
|
+
|
97
|
+
called = false
|
98
|
+
feature(:perimeter_fence) { called = true }
|
99
|
+
called.should be_true
|
100
|
+
end
|
81
101
|
end
|
82
102
|
|
83
103
|
context "when not in appropriate environment" do
|
@@ -132,6 +152,16 @@ describe Paddock('development') do
|
|
132
152
|
it "returns false from the feature check" do
|
133
153
|
feature(:perimeter_fence).should be_false
|
134
154
|
end
|
155
|
+
|
156
|
+
it "is indifferent to strings/symbols" do
|
157
|
+
Paddock('development') do
|
158
|
+
disable :perimeter_fence, :in => 'production'
|
159
|
+
end
|
160
|
+
|
161
|
+
called = false
|
162
|
+
feature(:perimeter_fence) { called = true }
|
163
|
+
called.should be_true
|
164
|
+
end
|
135
165
|
end
|
136
166
|
|
137
167
|
describe "using disabled features in different environment" do
|
@@ -150,5 +180,15 @@ describe Paddock('development') do
|
|
150
180
|
it "returns false from the feature check" do
|
151
181
|
feature(:perimeter_fence).should be_true
|
152
182
|
end
|
183
|
+
|
184
|
+
it "is indifferent to strings/symbols" do
|
185
|
+
Paddock('development') do
|
186
|
+
disable :perimeter_fence, :in => %w[production other]
|
187
|
+
end
|
188
|
+
|
189
|
+
called = false
|
190
|
+
feature(:perimeter_fence) { called = true }
|
191
|
+
called.should be_true
|
192
|
+
end
|
153
193
|
end
|
154
194
|
end
|