rack_slashless 0.0.5 → 0.0.6

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/.travis.yml ADDED
@@ -0,0 +1,5 @@
1
+ rvm:
2
+ - ree
3
+ - 1.8.7
4
+ - 1.9.2
5
+ - 1.9.3
data/Gemfile ADDED
@@ -0,0 +1,5 @@
1
+ source :rubygems
2
+ gemspec
3
+
4
+ gem 'rake'
5
+ gem 'rspec', '~>2'
data/Gemfile.lock ADDED
@@ -0,0 +1,30 @@
1
+ PATH
2
+ remote: .
3
+ specs:
4
+ rack_slashless (0.0.6)
5
+
6
+ GEM
7
+ remote: http://rubygems.org/
8
+ specs:
9
+ diff-lcs (1.1.3)
10
+ rack (1.4.1)
11
+ rack-test (0.6.2)
12
+ rack (>= 1.0)
13
+ rake (10.0.3)
14
+ rspec (2.12.0)
15
+ rspec-core (~> 2.12.0)
16
+ rspec-expectations (~> 2.12.0)
17
+ rspec-mocks (~> 2.12.0)
18
+ rspec-core (2.12.2)
19
+ rspec-expectations (2.12.0)
20
+ diff-lcs (~> 1.1.3)
21
+ rspec-mocks (2.12.0)
22
+
23
+ PLATFORMS
24
+ ruby
25
+
26
+ DEPENDENCIES
27
+ rack-test
28
+ rack_slashless!
29
+ rake
30
+ rspec (~> 2)
data/README.md CHANGED
@@ -1,2 +1,37 @@
1
- rack-slashless
2
- ==============
1
+ Rack::Slashless
2
+ ==============
3
+ Rack::Slashless is Rack application that redirects every GET requests ending by a `/` to the same url without the `/`.
4
+
5
+ Rack::Slashless is an easy SEO win, the gem will avoid duplicate contents across your site. For example, you can access the page `example.com/blog/` or `example.com/blog`, both have exactly the same content but with a different url, this causes a duplicate content for Google.
6
+
7
+ If you want more details regarding Duplicate Content, here is the [Guide](http://support.google.com/webmasters/bin/answer.py?hl=en&answer=66359) from Google.
8
+
9
+ ## Installation
10
+ Install the gem locally using:
11
+ ``` ruby
12
+ gem install rack_slashless
13
+ ```
14
+
15
+ ... or add it to your project's Gemfile:
16
+ ``` ruby
17
+ gem 'rack_slashless'
18
+ ```
19
+
20
+ ## Rails
21
+ **config/application.rb**
22
+ ``` ruby
23
+ config.middleware.insert_before(0, "Rack::Slashless")
24
+ ```
25
+
26
+ ## Sinatra
27
+ **app.rb** (your application file)
28
+ ``` ruby
29
+ require 'sinatra'
30
+ require 'rack_slashless'
31
+
32
+ use Rack::Slashless
33
+ ```
34
+
35
+ ## Author
36
+ Gregory Marcilhacy
37
+ License: MIT
data/Rakefile ADDED
@@ -0,0 +1,5 @@
1
+ require 'bundler/gem_tasks'
2
+
3
+ task :default do
4
+ sh "rspec spec/"
5
+ end
@@ -9,13 +9,12 @@ module Rack
9
9
  request = Rack::Request.new(env)
10
10
  if request.get? && request.path_info.match(/\w+\/$/)
11
11
  destination = [
12
- "#{request.scheme}://",
13
- request.env['SERVER_NAME'],
14
- request.path_info[0..-2],
15
- (request.query_string.empty? ? '' : "?#{request.query_string}")
16
- ].join
17
-
18
- [301, {'Location' => destination}, ['Redirecting to the same url but with the ending /']]
12
+ "#{request.scheme}://",
13
+ request.env['SERVER_NAME'],
14
+ request.path_info[0..-2],
15
+ (request.query_string.empty? ? '' : "?#{request.query_string}")
16
+ ].join
17
+ [301, {'Location' => destination}, ["Redirecting to #{destination}"]]
19
18
  else
20
19
  @app.call(env)
21
20
  end
@@ -8,9 +8,9 @@ Gem::Specification.new do |gem|
8
8
  gem.test_files = `git ls-files -- spec/*`.split("\n")
9
9
  gem.name = "rack_slashless"
10
10
  gem.require_paths = ["lib"]
11
- gem.version = "0.0.5"
11
+ gem.version = "0.0.6"
12
12
  gem.license = "MIT"
13
13
 
14
- gem.add_development_dependency 'rspec'
15
- gem.add_development_dependency 'rake-test'
14
+ gem.add_development_dependency 'rspec', '>= 2'
15
+ gem.add_development_dependency 'rack-test'
16
16
  end
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rack_slashless
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.0.5
4
+ version: 0.0.6
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2012-12-06 00:00:00.000000000 Z
12
+ date: 2012-12-15 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: rspec
@@ -18,7 +18,7 @@ dependencies:
18
18
  requirements:
19
19
  - - ! '>='
20
20
  - !ruby/object:Gem::Version
21
- version: '0'
21
+ version: '2'
22
22
  type: :development
23
23
  prerelease: false
24
24
  version_requirements: !ruby/object:Gem::Requirement
@@ -26,9 +26,9 @@ dependencies:
26
26
  requirements:
27
27
  - - ! '>='
28
28
  - !ruby/object:Gem::Version
29
- version: '0'
29
+ version: '2'
30
30
  - !ruby/object:Gem::Dependency
31
- name: rake-test
31
+ name: rack-test
32
32
  requirement: !ruby/object:Gem::Requirement
33
33
  none: false
34
34
  requirements:
@@ -51,7 +51,11 @@ extensions: []
51
51
  extra_rdoc_files: []
52
52
  files:
53
53
  - .gitignore
54
+ - .travis.yml
55
+ - Gemfile
56
+ - Gemfile.lock
54
57
  - README.md
58
+ - Rakefile
55
59
  - lib/rack_slashless.rb
56
60
  - rack_slashless.gemspec
57
61
  - spec/rack_slashless_spec.rb