redirector 1.0.1 → 1.0.2
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.
- 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
|