rack-rewrite 1.0.0 → 1.0.1
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.
- data/History.rdoc +4 -0
- data/README.rdoc +3 -3
- data/RELEASING +4 -0
- data/Rakefile +0 -21
- data/lib/rack/rewrite/rule.rb +2 -2
- data/rack-rewrite.gemspec +4 -4
- data/test/rule_test.rb +10 -2
- metadata +10 -5
- data/VERSION +0 -1
data/History.rdoc
CHANGED
@@ -1,3 +1,7 @@
|
|
1
|
+
=== 1.0.1 / 2010-09-17
|
2
|
+
* Maintenance
|
3
|
+
* Set Content-Type based on file extension of file/location being redirected to. Addresses GitHub Issue #8.
|
4
|
+
|
1
5
|
=== 1.0.0 / 2010-05-13
|
2
6
|
* API
|
3
7
|
* Fix rack 1.1.0 / rails3 compatibility by eliminating reliance on REQUEST_URI env param. Paths are now constructed with PATH_INFO and QUERY_STRING
|
data/README.rdoc
CHANGED
@@ -14,8 +14,8 @@ can get away with rack-rewrite instead of writing Apache mod_rewrite rules.
|
|
14
14
|
|
15
15
|
=== Sample rackup file
|
16
16
|
|
17
|
-
gem 'rack-rewrite', '~> 0.
|
18
|
-
require 'rack/rewrite
|
17
|
+
gem 'rack-rewrite', '~> 1.0.0'
|
18
|
+
require 'rack/rewrite'
|
19
19
|
use Rack::Rewrite do
|
20
20
|
rewrite '/wiki/John_Trupiano', '/john'
|
21
21
|
r301 '/wiki/Yair_Flicker', '/yair'
|
@@ -24,7 +24,7 @@ can get away with rack-rewrite instead of writing Apache mod_rewrite rules.
|
|
24
24
|
end
|
25
25
|
|
26
26
|
=== Sample usage in a rails app
|
27
|
-
config.gem 'rack-rewrite', '~> 0.
|
27
|
+
config.gem 'rack-rewrite', '~> 1.0.0'
|
28
28
|
require 'rack/rewrite'
|
29
29
|
config.middleware.insert_before(Rack::Lock, Rack::Rewrite) do
|
30
30
|
rewrite '/wiki/John_Trupiano', '/john'
|
data/RELEASING
ADDED
data/Rakefile
CHANGED
@@ -1,27 +1,6 @@
|
|
1
1
|
require 'rubygems'
|
2
2
|
require 'rake'
|
3
3
|
|
4
|
-
begin
|
5
|
-
require 'jeweler'
|
6
|
-
Jeweler::Tasks.new do |gem|
|
7
|
-
gem.name = "rack-rewrite"
|
8
|
-
gem.summary = %Q{A rack middleware for enforcing rewrite rules}
|
9
|
-
gem.description = %Q{A rack middleware for enforcing rewrite rules. In many cases you can get away with rack-rewrite instead of writing Apache mod_rewrite rules.}
|
10
|
-
gem.email = "jtrupiano@gmail.com"
|
11
|
-
gem.homepage = "http://github.com/jtrupiano/rack-rewrite"
|
12
|
-
gem.authors = ["John Trupiano"]
|
13
|
-
gem.rubyforge_project = "johntrupiano"
|
14
|
-
gem.add_development_dependency "shoulda"
|
15
|
-
# gem is a Gem::Specification... see http://www.rubygems.org/read/chapter/20 for additional settings
|
16
|
-
end
|
17
|
-
Jeweler::GemcutterTasks.new
|
18
|
-
Jeweler::RubyforgeTasks.new do |rubyforge|
|
19
|
-
rubyforge.doc_task = "rdoc"
|
20
|
-
end
|
21
|
-
rescue LoadError
|
22
|
-
puts "Jeweler (or a dependency) not available. Install it with: sudo gem install jeweler"
|
23
|
-
end
|
24
|
-
|
25
4
|
require 'rake/testtask'
|
26
5
|
Rake::TestTask.new(:test) do |test|
|
27
6
|
test.libs << 'lib' << 'test' << '.'
|
data/lib/rack/rewrite/rule.rb
CHANGED
@@ -87,9 +87,9 @@ module Rack
|
|
87
87
|
interpreted_to = self.interpret_to(env)
|
88
88
|
case self.rule_type
|
89
89
|
when :r301
|
90
|
-
[301, {'Location' => interpreted_to, 'Content-Type' =>
|
90
|
+
[301, {'Location' => interpreted_to, 'Content-Type' => Rack::Mime.mime_type(::File.extname(interpreted_to))}, [redirect_message(interpreted_to)]]
|
91
91
|
when :r302
|
92
|
-
[302, {'Location' => interpreted_to, 'Content-Type' =>
|
92
|
+
[302, {'Location' => interpreted_to, 'Content-Type' => Rack::Mime.mime_type(::File.extname(interpreted_to))}, [redirect_message(interpreted_to)]]
|
93
93
|
when :rewrite
|
94
94
|
# return [200, {}, {:content => env.inspect}]
|
95
95
|
env['REQUEST_URI'] = interpreted_to
|
data/rack-rewrite.gemspec
CHANGED
@@ -5,11 +5,11 @@
|
|
5
5
|
|
6
6
|
Gem::Specification.new do |s|
|
7
7
|
s.name = %q{rack-rewrite}
|
8
|
-
s.version = "1.0.
|
8
|
+
s.version = "1.0.1"
|
9
9
|
|
10
10
|
s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
|
11
11
|
s.authors = ["John Trupiano"]
|
12
|
-
s.date = %q{2010-
|
12
|
+
s.date = %q{2010-09-17}
|
13
13
|
s.description = %q{A rack middleware for enforcing rewrite rules. In many cases you can get away with rack-rewrite instead of writing Apache mod_rewrite rules.}
|
14
14
|
s.email = %q{jtrupiano@gmail.com}
|
15
15
|
s.extra_rdoc_files = [
|
@@ -24,7 +24,7 @@ Gem::Specification.new do |s|
|
|
24
24
|
"LICENSE",
|
25
25
|
"README.rdoc",
|
26
26
|
"Rakefile",
|
27
|
-
"
|
27
|
+
"RELEASING",
|
28
28
|
"lib/rack-rewrite.rb",
|
29
29
|
"lib/rack/rewrite.rb",
|
30
30
|
"lib/rack/rewrite/rule.rb",
|
@@ -38,7 +38,7 @@ Gem::Specification.new do |s|
|
|
38
38
|
s.rdoc_options = ["--charset=UTF-8"]
|
39
39
|
s.require_paths = ["lib"]
|
40
40
|
s.rubyforge_project = %q{johntrupiano}
|
41
|
-
s.rubygems_version = %q{1.3.
|
41
|
+
s.rubygems_version = %q{1.3.7}
|
42
42
|
s.summary = %q{A rack middleware for enforcing rewrite rules}
|
43
43
|
s.test_files = [
|
44
44
|
"test/rack-rewrite_test.rb",
|
data/test/rule_test.rb
CHANGED
@@ -70,14 +70,22 @@ class RuleTest < Test::Unit::TestCase
|
|
70
70
|
assert_equal '/john?bio=1', env['REQUEST_URI']
|
71
71
|
end
|
72
72
|
|
73
|
-
should 'set Content-Type header to text/html for a 301 and 302' do
|
73
|
+
should 'set Content-Type header to text/html for a 301 and 302 request for a .html page' do
|
74
74
|
[:r301, :r302].each do |rule_type|
|
75
|
-
rule = Rack::Rewrite::Rule.new(rule_type, %r{/abc}, '/def')
|
75
|
+
rule = Rack::Rewrite::Rule.new(rule_type, %r{/abc}, '/def.html')
|
76
76
|
env = {'PATH_INFO' => '/abc'}
|
77
77
|
assert_equal 'text/html', rule.apply!(env)[1]['Content-Type']
|
78
78
|
end
|
79
79
|
end
|
80
80
|
|
81
|
+
should 'set Content-Type header to text/css for a 301 and 302 request for a .css page' do
|
82
|
+
[:r301, :r302].each do |rule_type|
|
83
|
+
rule = Rack::Rewrite::Rule.new(rule_type, %r{/abc}, '/def.css')
|
84
|
+
env = {'PATH_INFO' => '/abc'}
|
85
|
+
assert_equal 'text/css', rule.apply!(env)[1]['Content-Type']
|
86
|
+
end
|
87
|
+
end
|
88
|
+
|
81
89
|
context 'Given an :x_send_file rule that matches' do
|
82
90
|
setup do
|
83
91
|
@file = File.join(TEST_ROOT, 'geminstaller.yml')
|
metadata
CHANGED
@@ -1,12 +1,13 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rack-rewrite
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
+
hash: 21
|
4
5
|
prerelease: false
|
5
6
|
segments:
|
6
7
|
- 1
|
7
8
|
- 0
|
8
|
-
-
|
9
|
-
version: 1.0.
|
9
|
+
- 1
|
10
|
+
version: 1.0.1
|
10
11
|
platform: ruby
|
11
12
|
authors:
|
12
13
|
- John Trupiano
|
@@ -14,7 +15,7 @@ autorequire:
|
|
14
15
|
bindir: bin
|
15
16
|
cert_chain: []
|
16
17
|
|
17
|
-
date: 2010-
|
18
|
+
date: 2010-09-17 00:00:00 -04:00
|
18
19
|
default_executable:
|
19
20
|
dependencies: []
|
20
21
|
|
@@ -35,7 +36,7 @@ files:
|
|
35
36
|
- LICENSE
|
36
37
|
- README.rdoc
|
37
38
|
- Rakefile
|
38
|
-
-
|
39
|
+
- RELEASING
|
39
40
|
- lib/rack-rewrite.rb
|
40
41
|
- lib/rack/rewrite.rb
|
41
42
|
- lib/rack/rewrite/rule.rb
|
@@ -54,23 +55,27 @@ rdoc_options:
|
|
54
55
|
require_paths:
|
55
56
|
- lib
|
56
57
|
required_ruby_version: !ruby/object:Gem::Requirement
|
58
|
+
none: false
|
57
59
|
requirements:
|
58
60
|
- - ">="
|
59
61
|
- !ruby/object:Gem::Version
|
62
|
+
hash: 3
|
60
63
|
segments:
|
61
64
|
- 0
|
62
65
|
version: "0"
|
63
66
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
67
|
+
none: false
|
64
68
|
requirements:
|
65
69
|
- - ">="
|
66
70
|
- !ruby/object:Gem::Version
|
71
|
+
hash: 3
|
67
72
|
segments:
|
68
73
|
- 0
|
69
74
|
version: "0"
|
70
75
|
requirements: []
|
71
76
|
|
72
77
|
rubyforge_project: johntrupiano
|
73
|
-
rubygems_version: 1.3.
|
78
|
+
rubygems_version: 1.3.7
|
74
79
|
signing_key:
|
75
80
|
specification_version: 3
|
76
81
|
summary: A rack middleware for enforcing rewrite rules
|
data/VERSION
DELETED
@@ -1 +0,0 @@
|
|
1
|
-
1.0.0
|