Skip to content

Commit a8de086

Browse files
pfeifferandrew
authored andcommitted
Ignore previewing requests (#531)
1 parent f47103c commit a8de086

File tree

3 files changed

+14
-2
lines changed

3 files changed

+14
-2
lines changed

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -476,7 +476,7 @@ Split.configure do |config|
476476
# IP config
477477
config.ignore_ip_addresses << '81.19.48.130' # or regex: /81\.19\.48\.[0-9]+/
478478

479-
# or provide your own filter functionality, the default is proc{ |request| is_robot? || is_ignored_ip_address? }
479+
# or provide your own filter functionality, the default is proc{ |request| is_robot? || is_ignored_ip_address? || is_preview? }
480480
config.ignore_filter = -> (request) { CustomExcludeLogic.excludes?(request) }
481481
end
482482
```

lib/split/helper.rb

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -122,13 +122,17 @@ def ab_user
122122
end
123123

124124
def exclude_visitor?
125-
instance_eval(&Split.configuration.ignore_filter) || is_ignored_ip_address? || is_robot?
125+
instance_eval(&Split.configuration.ignore_filter) || is_ignored_ip_address? || is_robot? || is_preview?
126126
end
127127

128128
def is_robot?
129129
defined?(request) && request.user_agent =~ Split.configuration.robot_regex
130130
end
131131

132+
def is_preview?
133+
defined?(request) && defined?(request.headers) && request.headers['x-purpose'] == 'preview'
134+
end
135+
132136
def is_ignored_ip_address?
133137
return false if Split.configuration.ignore_ip_addresses.empty?
134138

spec/helper_spec.rb

Lines changed: 8 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -699,6 +699,14 @@ def should_finish_experiment(experiment_name, should_finish=true)
699699
end
700700
end
701701

702+
describe 'when user is previewing' do
703+
before(:each) do
704+
@request = OpenStruct.new(headers: { 'x-purpose' => 'preview' })
705+
end
706+
707+
it_behaves_like "a disabled test"
708+
end
709+
702710
describe 'versioned experiments' do
703711
it "should use version zero if no version is present" do
704712
alternative_name = ab_test('link_color', 'blue', 'red')

0 commit comments

Comments
 (0)