redirector 1.0.1 → 1.0.2
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/README.md +11 -0
- data/app/models/redirect_rule.rb +6 -0
- data/lib/redirector.rb +1 -0
- data/lib/redirector/engine.rb +1 -0
- data/lib/redirector/middleware.rb +8 -2
- data/lib/redirector/version.rb +1 -1
- data/spec/dummy/config/database.yml +2 -2
- data/spec/dummy/log/development.log +2 -486
- data/spec/dummy/log/test.log +8384 -26039
- data/spec/features/middleware_spec.rb +20 -8
- data/spec/models/redirect_rule_spec.rb +9 -0
- metadata +4 -25
@@ -33,9 +33,9 @@ describe 'Redirector middleware', :type => :feature do
|
|
33
33
|
it 'should preserve the query string if the Redirector.preserve_query is true' do
|
34
34
|
original_option = Redirector.preserve_query
|
35
35
|
Redirector.preserve_query = true
|
36
|
-
visit '/my_custom_url/20?categoryID=
|
36
|
+
visit '/my_custom_url/20?categoryID=43257'
|
37
37
|
uri = URI.parse(current_url)
|
38
|
-
uri.query.should == 'categoryID=
|
38
|
+
uri.query.should == 'categoryID=43257'
|
39
39
|
current_path.should == '/news/20'
|
40
40
|
Redirector.preserve_query = original_option
|
41
41
|
end
|
@@ -60,13 +60,25 @@ describe 'Redirector middleware', :type => :feature do
|
|
60
60
|
current_url.should == 'http://example.com:3000/news/5'
|
61
61
|
end
|
62
62
|
|
63
|
-
it '
|
64
|
-
|
63
|
+
it 'foregoes search if ignored path pattern is detected' do
|
64
|
+
original_option = Redirector.ignored_patterns
|
65
|
+
Redirector.ignored_patterns = [/^\/my_custom_url\/.+/]
|
65
66
|
|
66
|
-
|
67
|
-
|
68
|
-
|
69
|
-
|
67
|
+
visit '/my_custom_url/20'
|
68
|
+
current_path.should == '/my_custom_url/20'
|
69
|
+
|
70
|
+
Redirector.ignored_patterns = original_option
|
71
|
+
end
|
72
|
+
|
73
|
+
unless Rails.version =~ /\A4\.2\.\d\z/
|
74
|
+
it 'handles invalid URIs properly' do
|
75
|
+
bad_rule = create(:redirect_rule_regex, :destination => 'http://www.example.com$1', :source => '^/custom(.*)$')
|
76
|
+
|
77
|
+
begin
|
78
|
+
visit '/custom)e2'
|
79
|
+
rescue Redirector::RuleError => e
|
80
|
+
e.message.should == "RedirectRule #{bad_rule.id} generated the bad destination: http://www.example.com)e2"
|
81
|
+
end
|
70
82
|
end
|
71
83
|
end
|
72
84
|
end
|
@@ -32,6 +32,15 @@ describe RedirectRule do
|
|
32
32
|
new_rule.errors_on(:source).should == ['is an invalid regular expression']
|
33
33
|
end
|
34
34
|
|
35
|
+
describe 'strip_source_whitespace before_save callback' do
|
36
|
+
it 'strips leading and trailing whitespace when saved' do
|
37
|
+
subject = FactoryGirl.build(:redirect_rule, :source => ' /needs-stripping ')
|
38
|
+
|
39
|
+
subject.save
|
40
|
+
subject.reload.source.should == '/needs-stripping'
|
41
|
+
end
|
42
|
+
end
|
43
|
+
|
35
44
|
describe '.match_for' do
|
36
45
|
it 'returns nil if there is no matching rule' do
|
37
46
|
RedirectRule.match_for('/someplace', {}).should be_nil
|
metadata
CHANGED
@@ -1,35 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redirector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0.
|
4
|
+
version: 1.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Brian Landau
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
|
-
cert_chain:
|
11
|
-
-
|
12
|
-
-----BEGIN CERTIFICATE-----
|
13
|
-
MIIDOjCCAiKgAwIBAgIBADANBgkqhkiG9w0BAQUFADBDMRUwEwYDVQQDDAxicmlh
|
14
|
-
bmpsYW5kYXUxFTATBgoJkiaJk/IsZAEZFgVnbWFpbDETMBEGCgmSJomT8ixkARkW
|
15
|
-
A2NvbTAeFw0wNzEyMDUwMzA5NTBaFw0wODEyMDQwMzA5NTBaMEMxFTATBgNVBAMM
|
16
|
-
DGJyaWFuamxhbmRhdTEVMBMGCgmSJomT8ixkARkWBWdtYWlsMRMwEQYKCZImiZPy
|
17
|
-
LGQBGRYDY29tMIIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAvizK5bV4
|
18
|
-
NQARcbPgZpLkSaashTY2JgLqQbxw9en6F4JFQsAlalWvmPqaC65NUxpV+Yb7mK1e
|
19
|
-
Rx/6HBln8QeywVMwYTRvqYXXVn1MTLxnYLpLjQQrsM0vZIxwNsmQzrNqvvdGJRok
|
20
|
-
gSrJx8lnb3LkmO68N6mG1lETaviaPwWhlB8mu3kcDG9dDXLWbPLDO4wHIIMl+0Nb
|
21
|
-
wpyl7d4vteRAXOHmA+Ir5KkWloEhpPJ/WzUL4kxmvcqVSo04aEGsGecgkgSWfyID
|
22
|
-
7Z4KcE1dqjA1RjmeRHwxQilW49GkthB3CQhfhsjYJ3IYvUfiQIzDdrWLbJpxzShk
|
23
|
-
E1IpSLMiP4svBQIDAQABozkwNzAJBgNVHRMEAjAAMAsGA1UdDwQEAwIEsDAdBgNV
|
24
|
-
HQ4EFgQU00bxUNAS/W5tSWPDvnSlm3Tf9VYwDQYJKoZIhvcNAQEFBQADggEBAKUC
|
25
|
-
669HsZByRjaana3sE5Tyo59/Cb8LxphAS0s9rMtiQyh2sPIno02/pAKrC7S2qnwZ
|
26
|
-
8W71VKqROGnBhaSjWshwU0BjbcCpNDAE4YPLP3lUlP69FuGXbsqv9sYH1GKjgFHi
|
27
|
-
OCM/uh9PLtUOQ0gRKixi8/edn11sUxYLMjpThagIU/kzw2J/xQoUpOgzHzrDnN00
|
28
|
-
8VWE27Mw4BMckRzTjgyEbGB6+j1NYaaQ76a1q1yFc3XiR9crZhyTmXT887lPCe3B
|
29
|
-
QHjym4e4y/FmXBJjpO/TtRoYd8a5YTCaOsML7M/nb/XrArvE3l5JaNEXkhH/nGs7
|
30
|
-
wR9huisTMlESX3ReGKU=
|
31
|
-
-----END CERTIFICATE-----
|
32
|
-
date: 2014-09-26 00:00:00.000000000 Z
|
10
|
+
cert_chain: []
|
11
|
+
date: 2017-10-13 00:00:00.000000000 Z
|
33
12
|
dependencies:
|
34
13
|
- !ruby/object:Gem::Dependency
|
35
14
|
name: rails
|
@@ -266,7 +245,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
266
245
|
version: '0'
|
267
246
|
requirements: []
|
268
247
|
rubyforge_project:
|
269
|
-
rubygems_version: 2.
|
248
|
+
rubygems_version: 2.5.1
|
270
249
|
signing_key:
|
271
250
|
specification_version: 4
|
272
251
|
summary: A Rails engine that adds a piece of middleware to the top of your middleware
|