redirector 0.1.4 → 0.1.5
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 +7 -0
- data/README.md +18 -5
- data/Rakefile +1 -0
- data/app/models/redirect_rule.rb +5 -4
- data/app/models/request_environment_rule.rb +3 -3
- data/lib/redirector.rb +6 -1
- data/lib/redirector/engine.rb +3 -2
- data/lib/redirector/middleware.rb +33 -9
- data/lib/redirector/version.rb +1 -1
- data/redirector.gemspec +4 -3
- data/spec/dummy/config/boot.rb +3 -7
- data/spec/dummy/config/database.yml.example +17 -0
- data/spec/dummy/config/environments/development.rb +2 -0
- data/spec/dummy/config/environments/test.rb +2 -0
- data/spec/dummy/log/development.log +13 -84581
- data/spec/dummy/log/test.log +1057 -19129
- data/spec/{requests → features}/middleware_spec.rb +23 -1
- data/spec/models/redirect_rule_spec.rb +13 -20
- data/spec/models/request_environment_rule_spec.rb +4 -10
- data/spec/spec_helper.rb +1 -1
- metadata +71 -56
@@ -6,7 +6,7 @@ describe 'Redirector middleware' do
|
|
6
6
|
FactoryGirl.create(:redirect_rule_regex, :destination => '/news/$1', :source => '/my_custom_url/([A-Za-z0-9_]+)')
|
7
7
|
FactoryGirl.create(:redirect_rule_regex, :destination => '/news', :source => 'categoryID=12345')
|
8
8
|
end
|
9
|
-
|
9
|
+
|
10
10
|
it 'correctly redirects the visitor for an exact match rule' do
|
11
11
|
visit '/my_custom_url'
|
12
12
|
current_path.should == '/news/5'
|
@@ -29,4 +29,26 @@ describe 'Redirector middleware' do
|
|
29
29
|
current_path.should == '/news'
|
30
30
|
Redirector.include_query_in_source = original_option
|
31
31
|
end
|
32
|
+
|
33
|
+
it 'handles requests with or without a port specified' do
|
34
|
+
Capybara.app_host = 'http://example.com'
|
35
|
+
|
36
|
+
visit '/my_custom_url'
|
37
|
+
current_url.should == 'http://example.com/news/5'
|
38
|
+
|
39
|
+
Capybara.app_host = 'http://example.com:3000'
|
40
|
+
|
41
|
+
visit '/my_custom_url'
|
42
|
+
current_url.should == 'http://example.com:3000/news/5'
|
43
|
+
end
|
44
|
+
|
45
|
+
it 'handles invalid URIs properly' do
|
46
|
+
bad_rule = FactoryGirl.create(:redirect_rule_regex, :destination => 'http://www.example.com$1', :source => '^/custom(.*)$')
|
47
|
+
|
48
|
+
begin
|
49
|
+
visit '/custom)%e2'
|
50
|
+
rescue Redirector::RuleError => e
|
51
|
+
e.message.should == "RedirectRule #{bad_rule.id} generated the bad destination: http://www.example.com)%e2"
|
52
|
+
end
|
53
|
+
end
|
32
54
|
end
|
@@ -6,13 +6,6 @@ describe RedirectRule do
|
|
6
6
|
|
7
7
|
it { should have_many(:request_environment_rules) }
|
8
8
|
|
9
|
-
it { should allow_mass_assignment_of(:source) }
|
10
|
-
it { should allow_mass_assignment_of(:source_is_regex) }
|
11
|
-
it { should allow_mass_assignment_of(:destination) }
|
12
|
-
it { should allow_mass_assignment_of(:active) }
|
13
|
-
it { should allow_mass_assignment_of(:source_is_case_sensitive) }
|
14
|
-
it { should allow_mass_assignment_of(:request_environment_rules_attributes) }
|
15
|
-
|
16
9
|
it { should accept_nested_attributes_for(:request_environment_rules) }
|
17
10
|
|
18
11
|
it { should validate_presence_of(:source) }
|
@@ -50,7 +43,7 @@ describe RedirectRule do
|
|
50
43
|
|
51
44
|
context 'for a case sensitive regex match' do
|
52
45
|
let!(:regex_rule){ FactoryGirl.create(:redirect_rule_regex, :source_is_case_sensitive => true) }
|
53
|
-
|
46
|
+
|
54
47
|
it 'returns the rule if it matches the case' do
|
55
48
|
RedirectRule.match_for('/new_shiny/from_company', {}).should == regex_rule
|
56
49
|
end
|
@@ -62,7 +55,7 @@ describe RedirectRule do
|
|
62
55
|
|
63
56
|
context 'for a case insensitive regex match' do
|
64
57
|
let!(:regex_rule){ FactoryGirl.create(:redirect_rule_regex) }
|
65
|
-
|
58
|
+
|
66
59
|
it 'returns the rule if it matches the case' do
|
67
60
|
RedirectRule.match_for('/new_shiny/from_company', {}).should == regex_rule
|
68
61
|
end
|
@@ -76,16 +69,16 @@ describe RedirectRule do
|
|
76
69
|
before do
|
77
70
|
FactoryGirl.create(:request_environment_rule, :redirect_rule => subject)
|
78
71
|
end
|
79
|
-
|
72
|
+
|
80
73
|
it 'should find the rule if it matches' do
|
81
74
|
RedirectRule.match_for('/catchy_thingy', {'SERVER_NAME' => 'example.com'}).should == subject
|
82
75
|
end
|
83
|
-
|
76
|
+
|
84
77
|
it 'should not find the rule if there is no match' do
|
85
78
|
RedirectRule.match_for('/catchy_thingy', {'SERVER_NAME' => 'example.ca'}).should be_nil
|
86
79
|
end
|
87
80
|
end
|
88
|
-
|
81
|
+
|
89
82
|
context 'with a rule with multiple environment conditions' do
|
90
83
|
before do
|
91
84
|
FactoryGirl.create(:request_environment_rule, :redirect_rule => subject)
|
@@ -96,13 +89,13 @@ describe RedirectRule do
|
|
96
89
|
RedirectRule.match_for('/catchy_thingy', {'SERVER_NAME' => 'example.com',
|
97
90
|
'QUERY_STRING' => 's=bogus&something=value'}).should == subject
|
98
91
|
end
|
99
|
-
|
92
|
+
|
100
93
|
it 'should not find the rule if there is no match' do
|
101
|
-
RedirectRule.match_for('/catchy_thingy', {'SERVER_NAME' => 'example.com',
|
94
|
+
RedirectRule.match_for('/catchy_thingy', {'SERVER_NAME' => 'example.com',
|
102
95
|
"QUERY_STRING" => 's=bogus&something=wrong'}).should be_nil
|
103
96
|
end
|
104
97
|
end
|
105
|
-
|
98
|
+
|
106
99
|
context 'with multiple rules with multiple environment conditions' do
|
107
100
|
let!(:rule2){ FactoryGirl.create(:redirect_rule) }
|
108
101
|
before do
|
@@ -124,14 +117,14 @@ describe RedirectRule do
|
|
124
117
|
end
|
125
118
|
|
126
119
|
it 'should not find the rule if there is no match' do
|
127
|
-
RedirectRule.match_for('/catchy_thingy', {'SERVER_NAME' => 'example.com',
|
120
|
+
RedirectRule.match_for('/catchy_thingy', {'SERVER_NAME' => 'example.com',
|
128
121
|
"QUERY_STRING" => 's=bogus&something=wrong'}).should be_nil
|
129
122
|
end
|
130
123
|
end
|
131
|
-
|
124
|
+
|
132
125
|
context 'with a regex rule that also matches an exact string match' do
|
133
126
|
let!(:regex_rule){ FactoryGirl.create(:redirect_rule_regex, :source => '[A-Za-z0-9]_thingy') }
|
134
|
-
|
127
|
+
|
135
128
|
it 'should return the exact match' do
|
136
129
|
RedirectRule.match_for('/catchy_thingy', {}).should == subject
|
137
130
|
end
|
@@ -156,7 +149,7 @@ describe RedirectRule do
|
|
156
149
|
|
157
150
|
describe '#evaluated_destination_for' do
|
158
151
|
let(:regex_rule) { FactoryGirl.create(:redirect_rule_regex) }
|
159
|
-
|
152
|
+
|
160
153
|
it 'returns the destination for a non regex rule' do
|
161
154
|
subject.evaluated_destination_for('/catchy_thingy').should == 'http://www.example.com/products/1'
|
162
155
|
end
|
@@ -165,4 +158,4 @@ describe RedirectRule do
|
|
165
158
|
regex_rule.evaluated_destination_for('/new_shiny/from_company').should == 'http://www.example.com/news/from_company'
|
166
159
|
end
|
167
160
|
end
|
168
|
-
end
|
161
|
+
end
|
@@ -5,13 +5,7 @@ describe RequestEnvironmentRule do
|
|
5
5
|
|
6
6
|
it { should belong_to(:redirect_rule) }
|
7
7
|
|
8
|
-
it { should
|
9
|
-
it { should allow_mass_assignment_of(:environment_key_name) }
|
10
|
-
it { should allow_mass_assignment_of(:environment_value) }
|
11
|
-
it { should allow_mass_assignment_of(:environment_value_is_regex) }
|
12
|
-
it { should allow_mass_assignment_of(:environment_value_is_case_sensitive) }
|
13
|
-
|
14
|
-
it { should validate_presence_of(:redirect_rule_id) }
|
8
|
+
it { should validate_presence_of(:redirect_rule) }
|
15
9
|
it { should validate_presence_of(:environment_key_name) }
|
16
10
|
it { should validate_presence_of(:environment_value) }
|
17
11
|
|
@@ -38,7 +32,7 @@ describe RequestEnvironmentRule do
|
|
38
32
|
|
39
33
|
context 'with a case sensitive regex value' do
|
40
34
|
subject { FactoryGirl.create(:request_environment_rule_regex) }
|
41
|
-
|
35
|
+
|
42
36
|
it "should know if it's matched" do
|
43
37
|
subject.matches?({'QUERY_STRING' => 'something=value'}).should be_true
|
44
38
|
subject.matches?({'QUERY_STRING' => 'q=search&something=value'}).should be_true
|
@@ -51,7 +45,7 @@ describe RequestEnvironmentRule do
|
|
51
45
|
|
52
46
|
context 'with a case insensitve regex value' do
|
53
47
|
subject { FactoryGirl.create(:request_environment_rule_regex, :environment_value_is_case_sensitive => false) }
|
54
|
-
|
48
|
+
|
55
49
|
it "should know if it's matched" do
|
56
50
|
subject.matches?({'QUERY_STRING' => 'something=value'}).should be_true
|
57
51
|
subject.matches?({'QUERY_STRING' => 'q=search&something=value'}).should be_true
|
@@ -61,4 +55,4 @@ describe RequestEnvironmentRule do
|
|
61
55
|
subject.matches?({'SERVER_NAME' => 'example.ca'}).should be_false
|
62
56
|
end
|
63
57
|
end
|
64
|
-
end
|
58
|
+
end
|
data/spec/spec_helper.rb
CHANGED
@@ -18,7 +18,7 @@ RSpec.configure do |config|
|
|
18
18
|
config.mock_with :rspec
|
19
19
|
config.use_transactional_fixtures = true
|
20
20
|
config.infer_base_class_for_anonymous_controllers = false
|
21
|
-
|
21
|
+
|
22
22
|
config.after(:each, :type => :request) do
|
23
23
|
DatabaseCleaner.clean # Truncate the database
|
24
24
|
Capybara.reset_sessions! # Forget the (simulated) browser state
|
metadata
CHANGED
@@ -1,128 +1,148 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: redirector
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.1.
|
5
|
-
prerelease:
|
4
|
+
version: 0.1.5
|
6
5
|
platform: ruby
|
7
6
|
authors:
|
8
7
|
- Brian Landau
|
9
8
|
autorequire:
|
10
9
|
bindir: bin
|
11
|
-
cert_chain:
|
12
|
-
|
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-01-17 00:00:00.000000000 Z
|
13
33
|
dependencies:
|
14
34
|
- !ruby/object:Gem::Dependency
|
15
35
|
name: rails
|
16
36
|
requirement: !ruby/object:Gem::Requirement
|
17
|
-
none: false
|
18
37
|
requirements:
|
19
|
-
- -
|
38
|
+
- - ">="
|
20
39
|
- !ruby/object:Gem::Version
|
21
40
|
version: '3.1'
|
22
41
|
type: :runtime
|
23
42
|
prerelease: false
|
24
43
|
version_requirements: !ruby/object:Gem::Requirement
|
25
|
-
none: false
|
26
44
|
requirements:
|
27
|
-
- -
|
45
|
+
- - ">="
|
28
46
|
- !ruby/object:Gem::Version
|
29
47
|
version: '3.1'
|
30
48
|
- !ruby/object:Gem::Dependency
|
31
49
|
name: mysql2
|
32
50
|
requirement: !ruby/object:Gem::Requirement
|
33
|
-
none: false
|
34
51
|
requirements:
|
35
|
-
- -
|
52
|
+
- - ">="
|
36
53
|
- !ruby/object:Gem::Version
|
37
54
|
version: '0'
|
38
55
|
type: :development
|
39
56
|
prerelease: false
|
40
57
|
version_requirements: !ruby/object:Gem::Requirement
|
41
|
-
none: false
|
42
58
|
requirements:
|
43
|
-
- -
|
59
|
+
- - ">="
|
44
60
|
- !ruby/object:Gem::Version
|
45
61
|
version: '0'
|
46
62
|
- !ruby/object:Gem::Dependency
|
47
63
|
name: rspec-rails
|
48
64
|
requirement: !ruby/object:Gem::Requirement
|
49
|
-
none: false
|
50
65
|
requirements:
|
51
|
-
- -
|
66
|
+
- - ">="
|
52
67
|
- !ruby/object:Gem::Version
|
53
68
|
version: '0'
|
54
69
|
type: :development
|
55
70
|
prerelease: false
|
56
71
|
version_requirements: !ruby/object:Gem::Requirement
|
57
|
-
none: false
|
58
72
|
requirements:
|
59
|
-
- -
|
73
|
+
- - ">="
|
60
74
|
- !ruby/object:Gem::Version
|
61
75
|
version: '0'
|
62
76
|
- !ruby/object:Gem::Dependency
|
63
77
|
name: shoulda-matchers
|
64
78
|
requirement: !ruby/object:Gem::Requirement
|
65
|
-
none: false
|
66
79
|
requirements:
|
67
|
-
- -
|
80
|
+
- - ">="
|
68
81
|
- !ruby/object:Gem::Version
|
69
82
|
version: '0'
|
70
83
|
type: :development
|
71
84
|
prerelease: false
|
72
85
|
version_requirements: !ruby/object:Gem::Requirement
|
73
|
-
none: false
|
74
86
|
requirements:
|
75
|
-
- -
|
87
|
+
- - ">="
|
76
88
|
- !ruby/object:Gem::Version
|
77
89
|
version: '0'
|
78
90
|
- !ruby/object:Gem::Dependency
|
79
91
|
name: capybara
|
80
92
|
requirement: !ruby/object:Gem::Requirement
|
81
|
-
none: false
|
82
93
|
requirements:
|
83
|
-
- -
|
94
|
+
- - "~>"
|
84
95
|
- !ruby/object:Gem::Version
|
85
|
-
version: '
|
96
|
+
version: '2.2'
|
86
97
|
type: :development
|
87
98
|
prerelease: false
|
88
99
|
version_requirements: !ruby/object:Gem::Requirement
|
89
|
-
none: false
|
90
100
|
requirements:
|
91
|
-
- -
|
101
|
+
- - "~>"
|
92
102
|
- !ruby/object:Gem::Version
|
93
|
-
version: '
|
103
|
+
version: '2.2'
|
94
104
|
- !ruby/object:Gem::Dependency
|
95
105
|
name: database_cleaner
|
96
106
|
requirement: !ruby/object:Gem::Requirement
|
97
|
-
none: false
|
98
107
|
requirements:
|
99
|
-
- -
|
108
|
+
- - ">="
|
100
109
|
- !ruby/object:Gem::Version
|
101
110
|
version: '0'
|
102
111
|
type: :development
|
103
112
|
prerelease: false
|
104
113
|
version_requirements: !ruby/object:Gem::Requirement
|
105
|
-
none: false
|
106
114
|
requirements:
|
107
|
-
- -
|
115
|
+
- - ">="
|
108
116
|
- !ruby/object:Gem::Version
|
109
117
|
version: '0'
|
110
118
|
- !ruby/object:Gem::Dependency
|
111
119
|
name: factory_girl_rails
|
112
120
|
requirement: !ruby/object:Gem::Requirement
|
113
|
-
none: false
|
114
121
|
requirements:
|
115
|
-
- - ~>
|
122
|
+
- - "~>"
|
116
123
|
- !ruby/object:Gem::Version
|
117
124
|
version: '1.7'
|
118
125
|
type: :development
|
119
126
|
prerelease: false
|
120
127
|
version_requirements: !ruby/object:Gem::Requirement
|
121
|
-
none: false
|
122
128
|
requirements:
|
123
|
-
- - ~>
|
129
|
+
- - "~>"
|
124
130
|
- !ruby/object:Gem::Version
|
125
131
|
version: '1.7'
|
132
|
+
- !ruby/object:Gem::Dependency
|
133
|
+
name: appraisal
|
134
|
+
requirement: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
type: :development
|
140
|
+
prerelease: false
|
141
|
+
version_requirements: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
144
|
+
- !ruby/object:Gem::Version
|
145
|
+
version: '0'
|
126
146
|
description: A Rails engine that adds a piece of middleware to the top of your middleware
|
127
147
|
stack that looks for redirect rules stored in your database and redirects you accordingly.
|
128
148
|
email:
|
@@ -131,20 +151,20 @@ executables: []
|
|
131
151
|
extensions: []
|
132
152
|
extra_rdoc_files: []
|
133
153
|
files:
|
154
|
+
- HISTORY
|
155
|
+
- MIT-LICENSE
|
156
|
+
- README.md
|
157
|
+
- Rakefile
|
134
158
|
- app/models/redirect_rule.rb
|
135
159
|
- app/models/request_environment_rule.rb
|
136
160
|
- db/migrate/20120815212612_create_redirect_rules.rb
|
137
161
|
- db/migrate/20120823163756_create_request_environment_rules.rb
|
162
|
+
- lib/redirector.rb
|
138
163
|
- lib/redirector/engine.rb
|
139
164
|
- lib/redirector/middleware.rb
|
140
165
|
- lib/redirector/regex_attribute.rb
|
141
166
|
- lib/redirector/version.rb
|
142
|
-
- lib/redirector.rb
|
143
|
-
- MIT-LICENSE
|
144
|
-
- Rakefile
|
145
|
-
- README.md
|
146
167
|
- redirector.gemspec
|
147
|
-
- HISTORY
|
148
168
|
- spec/dummy/README.rdoc
|
149
169
|
- spec/dummy/Rakefile
|
150
170
|
- spec/dummy/app/assets/javascripts/application.js
|
@@ -153,9 +173,11 @@ files:
|
|
153
173
|
- spec/dummy/app/controllers/news_controller.rb
|
154
174
|
- spec/dummy/app/helpers/application_helper.rb
|
155
175
|
- spec/dummy/app/views/layouts/application.html.erb
|
176
|
+
- spec/dummy/config.ru
|
156
177
|
- spec/dummy/config/application.rb
|
157
178
|
- spec/dummy/config/boot.rb
|
158
179
|
- spec/dummy/config/database.yml
|
180
|
+
- spec/dummy/config/database.yml.example
|
159
181
|
- spec/dummy/config/environment.rb
|
160
182
|
- spec/dummy/config/environments/development.rb
|
161
183
|
- spec/dummy/config/environments/production.rb
|
@@ -168,7 +190,6 @@ files:
|
|
168
190
|
- spec/dummy/config/initializers/wrap_parameters.rb
|
169
191
|
- spec/dummy/config/locales/en.yml
|
170
192
|
- spec/dummy/config/routes.rb
|
171
|
-
- spec/dummy/config.ru
|
172
193
|
- spec/dummy/db/schema.rb
|
173
194
|
- spec/dummy/log/development.log
|
174
195
|
- spec/dummy/log/test.log
|
@@ -179,44 +200,35 @@ files:
|
|
179
200
|
- spec/dummy/script/rails
|
180
201
|
- spec/factories/redirect_rules.rb
|
181
202
|
- spec/factories/request_environment_rules.rb
|
203
|
+
- spec/features/middleware_spec.rb
|
182
204
|
- spec/models/redirect_rule_spec.rb
|
183
205
|
- spec/models/request_environment_rule_spec.rb
|
184
|
-
- spec/requests/middleware_spec.rb
|
185
206
|
- spec/spec_helper.rb
|
186
207
|
homepage: https://github.com/vigetlabs/redirector
|
187
208
|
licenses: []
|
209
|
+
metadata: {}
|
188
210
|
post_install_message:
|
189
211
|
rdoc_options: []
|
190
212
|
require_paths:
|
191
213
|
- lib
|
192
214
|
required_ruby_version: !ruby/object:Gem::Requirement
|
193
|
-
none: false
|
194
215
|
requirements:
|
195
|
-
- -
|
216
|
+
- - ">="
|
196
217
|
- !ruby/object:Gem::Version
|
197
218
|
version: '0'
|
198
|
-
segments:
|
199
|
-
- 0
|
200
|
-
hash: -1337487945762421703
|
201
219
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
202
|
-
none: false
|
203
220
|
requirements:
|
204
|
-
- -
|
221
|
+
- - ">="
|
205
222
|
- !ruby/object:Gem::Version
|
206
223
|
version: '0'
|
207
|
-
segments:
|
208
|
-
- 0
|
209
|
-
hash: -1337487945762421703
|
210
224
|
requirements: []
|
211
225
|
rubyforge_project:
|
212
|
-
rubygems_version:
|
226
|
+
rubygems_version: 2.2.0
|
213
227
|
signing_key:
|
214
|
-
specification_version:
|
228
|
+
specification_version: 4
|
215
229
|
summary: A Rails engine that adds a piece of middleware to the top of your middleware
|
216
230
|
stack that looks for redirect rules stored in your database and redirects you accordingly.
|
217
231
|
test_files:
|
218
|
-
- spec/dummy/README.rdoc
|
219
|
-
- spec/dummy/Rakefile
|
220
232
|
- spec/dummy/app/assets/javascripts/application.js
|
221
233
|
- spec/dummy/app/assets/stylesheets/application.css
|
222
234
|
- spec/dummy/app/controllers/application_controller.rb
|
@@ -226,6 +238,7 @@ test_files:
|
|
226
238
|
- spec/dummy/config/application.rb
|
227
239
|
- spec/dummy/config/boot.rb
|
228
240
|
- spec/dummy/config/database.yml
|
241
|
+
- spec/dummy/config/database.yml.example
|
229
242
|
- spec/dummy/config/environment.rb
|
230
243
|
- spec/dummy/config/environments/development.rb
|
231
244
|
- spec/dummy/config/environments/production.rb
|
@@ -246,10 +259,12 @@ test_files:
|
|
246
259
|
- spec/dummy/public/422.html
|
247
260
|
- spec/dummy/public/500.html
|
248
261
|
- spec/dummy/public/favicon.ico
|
262
|
+
- spec/dummy/Rakefile
|
263
|
+
- spec/dummy/README.rdoc
|
249
264
|
- spec/dummy/script/rails
|
250
265
|
- spec/factories/redirect_rules.rb
|
251
266
|
- spec/factories/request_environment_rules.rb
|
267
|
+
- spec/features/middleware_spec.rb
|
252
268
|
- spec/models/redirect_rule_spec.rb
|
253
269
|
- spec/models/request_environment_rule_spec.rb
|
254
|
-
- spec/requests/middleware_spec.rb
|
255
270
|
- spec/spec_helper.rb
|