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.
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