paddock 0.0.1 → 0.1.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (4) hide show
  1. data/README.md +5 -1
  2. data/lib/paddock.rb +1 -1
  3. data/spec/paddock_spec.rb +40 -0
  4. 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
- ## Definition
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
@@ -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
@@ -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
metadata CHANGED
@@ -4,9 +4,9 @@ version: !ruby/object:Gem::Version
4
4
  prerelease: false
5
5
  segments:
6
6
  - 0
7
- - 0
8
7
  - 1
9
- version: 0.0.1
8
+ - 0
9
+ version: 0.1.0
10
10
  platform: ruby
11
11
  authors:
12
12
  - Pat Nakajima & Brandon Keene