Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion Gemfile.lock
Original file line number Diff line number Diff line change
Expand Up @@ -8,7 +8,7 @@ GIT
PATH
remote: .
specs:
rollout_ui (0.2.0)
rollout_ui (0.3.0)
rollout

GEM
Expand Down
8 changes: 0 additions & 8 deletions lib/rollout_ui/monkey_patch.rb
Original file line number Diff line number Diff line change
@@ -1,8 +0,0 @@
class Rollout
alias_method :original_active?, :active?

def active?(feature, user=nil)
RolloutUi::Wrapper.new(self).add_feature(feature)
original_active?(feature, user)
end
end
8 changes: 2 additions & 6 deletions lib/rollout_ui/wrapper.rb
Original file line number Diff line number Diff line change
Expand Up @@ -12,13 +12,9 @@ def initialize(rollout = nil)
def groups
rollout.instance_variable_get("@groups").keys
end

def add_feature(feature)
redis.sadd(:features, feature)
end


def features
features = redis.smembers(:features)
features = @rollout.features
features ? features.sort : []
end

Expand Down
34 changes: 13 additions & 21 deletions spec/lib/rollout_ui/wrapper_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -34,39 +34,31 @@
end

describe "#features" do
it "returns an empty array if no features have been requested" do
it "returns an empty array if no features have been set" do
@rollout_ui.features.should == []
end

it "returns all features that have been requested" do
$rollout.active?(:featureA, mock(:user, :id => 5))
$rollout.active?(:featureB, mock(:user, :id => 6))
it "returns all features that have been set" do
$rollout.activate_user(:featureA, mock(:user, :id => 5))
$rollout.activate_user(:featureB, mock(:user, :id => 6))

@rollout_ui.features.should == ["featureA", "featureB"]
@rollout_ui.features.should == [:featureA, :featureB]
end

it "lists each feature only once" do
$rollout.active?(:featureA, mock(:user, :id => 5))
$rollout.active?(:featureA, mock(:user, :id => 6))
$rollout.activate_user(:featureA, mock(:user, :id => 5))
$rollout.activate_user(:featureA, mock(:user, :id => 6))

@rollout_ui.features.should == ["featureA"]
@rollout_ui.features.should == [:featureA]
end

it "lists features in alphabetical order" do
$rollout.active?(:zFeature, mock(:user, :id => 1))
$rollout.active?(:featureA, mock(:user, :id => 5))
$rollout.active?(:featureB, mock(:user, :id => 6))
$rollout.active?(:anotherFeature, mock(:user, :id => 8))
$rollout.activate_user(:zFeature, mock(:user, :id => 1))
$rollout.activate_user(:featureA, mock(:user, :id => 5))
$rollout.activate_user(:featureB, mock(:user, :id => 6))
$rollout.activate_user(:anotherFeature, mock(:user, :id => 8))

@rollout_ui.features.should == %w(anotherFeature featureA featureB zFeature)
end
end

describe "#add_feature" do
it "adds feature to the list of features" do
@rollout_ui.add_feature(:featureA)

@rollout_ui.features.should == ["featureA"]
@rollout_ui.features.should == [:anotherFeature, :featureA, :featureB, :zFeature]
end
end
end
6 changes: 3 additions & 3 deletions spec/requests/engine/engine_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,7 @@
let(:user) { mock(:user, :id => 5) }

before do
$rollout.active?(:featureA, user)
$rollout.activate_user(:featureA, user)
end

it "shows requested rollout features" do
Expand Down Expand Up @@ -93,8 +93,8 @@

describe "order" do
before do
$rollout.active?(:featureB, user)
$rollout.active?(:anotherFeature, user)
$rollout.activate_user(:featureB, user)
$rollout.activate_user(:anotherFeature, user)
end

it "shows features in alphabetical order" do
Expand Down