redirect_code_generator 0.1.0 → 0.1.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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c8d40e38556846c2530c58303c51369dc731fd33
4
- data.tar.gz: 8cf75b5d12d87525ebf9e0a94cadc26381d060bd
3
+ metadata.gz: bb3b5ce617aeb53103a1f93dfa01154e46133dde
4
+ data.tar.gz: 72d48d2b52d6f26f271bbb54dc7b516ed38a7591
5
5
  SHA512:
6
- metadata.gz: ec79fdc6c0fea74be355f293491a890902459dc0649f13264d251ef15fbf567e77ea0b45fd33df66cf5f339c42f5554f7fe8a8af74fc89843c78aa764af51889
7
- data.tar.gz: 7667527be387eb74f9c00d8a441d3c113afbbef034775ccbbd8453b324ed26704796a34ea216c889e0153a2ddb0603fe5d7e2dfe7d7d57bff0605d7bdeea5903
6
+ metadata.gz: ac183ba6f2af987ccd14f8f987b1992d701d91e37ef3d3f549f3f4ff41599cda43122cd05be778dfd772bcbb9e63b9424979ce715c3de3ba9120fe9db8fa952c
7
+ data.tar.gz: e4e5d7d585657a69b0348fa4d354b48056f09af721fc94bd7a03964bdc0b5627db0bcf388eda9dec5d3282bb70ccbf48b4e55f850b23e4bd5961aef5c786eb68
data/.gitignore CHANGED
@@ -1,4 +1,5 @@
1
1
  /.bundle/
2
+ /.idea/
2
3
  /.yardoc
3
4
  /Gemfile.lock
4
5
  /_yardoc/
data/README.md CHANGED
@@ -1,6 +1,6 @@
1
1
  # RedirectCodeGenerator
2
2
 
3
- RedirectCodeGenerator creates Apache redirect code
3
+ RedirectCodeGenerator creates Apache redirect code.
4
4
 
5
5
  [![Build Status](https://travis-ci.org/tsmsogn/redirect_code_generator.svg?branch=master)](https://travis-ci.org/tsmsogn/redirect_code_generator)
6
6
 
@@ -11,7 +11,7 @@ $ ./create_apache_redirect_code /old_dir /new_dir
11
11
  # 301 /old_dir -> /new_dir
12
12
  <IfModule mod_rewrite.c>
13
13
  RewriteEngine On
14
- RewriteRule ^/old_dir$ /new_dir? [R=301,L]
14
+ RewriteRule ^/?old_dir$ /new_dir? [R=301,L]
15
15
  </IfModule>
16
16
  ```
17
17
 
@@ -0,0 +1,16 @@
1
+ require 'uri'
2
+
3
+
4
+ module RedirectCodeGenerator
5
+ module ApacheRewriteNormalize
6
+ def to_rewrite_rule_path(path)
7
+ path.gsub(/^\//, "/?")
8
+ end
9
+
10
+ def escape(str)
11
+ Regexp.escape(str)
12
+ end
13
+
14
+ module_function :to_rewrite_rule_path, :escape
15
+ end
16
+ end
@@ -2,24 +2,24 @@ module RedirectCodeGenerator
2
2
  module ERBTemplates
3
3
 
4
4
  APACHE = <<CODE
5
- # <%= permanent? ? 301 : 302 %> <%= old %> -> <%= new %>
5
+ # <%= redirect_http_status_code %> <%= old %> -> <%= new %>
6
6
  <IfModule mod_rewrite.c>
7
7
  RewriteEngine On
8
- <% if default_port? && uri.scheme %>
9
- RewriteCond %{HTTPS} <% if uri.scheme == 'https'%>on<% else %>off<% end %>
8
+ <% if default_port? && old_uri.scheme %>
9
+ RewriteCond %{HTTPS} <% if old_uri.scheme == 'https'%>on<% else %>off<% end %>
10
10
  <% end %>
11
- <% if uri.host %>
12
- RewriteCond %{HTTP_HOST} ^<%= escape? ? escape(uri.host) : uri.host %>$
11
+ <% if old_uri.host %>
12
+ RewriteCond %{HTTP_HOST} ^<%= escape? ? escape(old_uri.host) : old_uri.host %>$
13
13
  <% end %>
14
- <% if !default_port? && uri.scheme %>
15
- RewriteCond %{SERVER_PORT} <%= uri.port %>
14
+ <% if !default_port? && old_uri.scheme %>
15
+ RewriteCond %{SERVER_PORT} <%= old_uri.port %>
16
16
  <% end %>
17
- <% if uri.query %>
18
- <% uri.query.split('&').each do |param| %>
17
+ <% if old_uri.query %>
18
+ <% old_uri.query.split('&').each do |param| %>
19
19
  RewriteCond %{QUERY_STRING} (^|&)<%= param %>($|&)
20
20
  <% end %>
21
21
  <% end %>
22
- RewriteRule ^<%= escape? ? escape(uri.path) : uri.path %>$ <%= new %>? [R=<%= permanent? ? 301 : 302 %>,L]
22
+ RewriteRule ^<%= rewrite_rule_source_path %>$ <%= new %>? [R=<%= redirect_http_status_code %>,L]
23
23
  </IfModule>
24
24
  CODE
25
25
 
@@ -1,8 +1,10 @@
1
1
  require "redirect_code_generator/generator/generator"
2
+ require "redirect_code_generator/apache_rewrite_normalize"
2
3
 
3
4
  module RedirectCodeGenerator
4
5
  module Generator
5
6
  class Apache < Generator
7
+ include ApacheRewriteNormalize
6
8
  attr_reader :old, :new
7
9
 
8
10
  def initialize(old, new, permanent = true, escape = true)
@@ -14,8 +16,12 @@ module RedirectCodeGenerator
14
16
  erb.result(binding)
15
17
  end
16
18
 
17
- def uri
18
- @uri ||= URI.parse(@old)
19
+ def old_uri
20
+ @old_uri ||= URI.parse(@old)
21
+ end
22
+
23
+ def new_uri
24
+ @new_uri ||= URI.parse(@new)
19
25
  end
20
26
 
21
27
  def permanent?
@@ -26,10 +32,28 @@ module RedirectCodeGenerator
26
32
  @escape
27
33
  end
28
34
 
35
+ def rewrite_rule_source_path
36
+ path = old_uri.path
37
+ if escape?
38
+ path = escape(path)
39
+ end
40
+
41
+ to_rewrite_rule_path(path)
42
+ end
43
+
44
+ def redirect_http_status_code
45
+ case permanent?
46
+ when true then
47
+ 301
48
+ when false then
49
+ 302
50
+ end
51
+ end
52
+
29
53
  def default_port?
30
- if uri.scheme == 'http' && uri.port == 80
54
+ if old_uri.scheme == 'http' && old_uri.port == 80
31
55
  true
32
- elsif uri.scheme == 'https' && uri.port == 443
56
+ elsif old_uri.scheme == 'https' && old_uri.port == 443
33
57
  true
34
58
  else
35
59
  false
@@ -1,11 +1,9 @@
1
1
  require "uri"
2
2
  require "redirect_code_generator/erb_factory"
3
- require "redirect_code_generator/sanitizer"
4
3
 
5
4
  module RedirectCodeGenerator
6
5
  module Generator
7
6
  class Generator
8
- include Sanitizer
9
7
 
10
8
  def initialize(options = {})
11
9
  end
@@ -1,3 +1,3 @@
1
1
  module RedirectCodeGenerator
2
- VERSION = "0.1.0"
2
+ VERSION = "0.1.1"
3
3
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: redirect_code_generator
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.0
4
+ version: 0.1.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - tsmsogn
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2017-11-24 00:00:00.000000000 Z
11
+ date: 2019-02-27 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -72,12 +72,12 @@ files:
72
72
  - bin/setup
73
73
  - create_apache_redirect_code
74
74
  - lib/redirect_code_generator.rb
75
+ - lib/redirect_code_generator/apache_rewrite_normalize.rb
75
76
  - lib/redirect_code_generator/erb_factory.rb
76
77
  - lib/redirect_code_generator/erb_templates.rb
77
78
  - lib/redirect_code_generator/generator/apache.rb
78
79
  - lib/redirect_code_generator/generator/generator.rb
79
80
  - lib/redirect_code_generator/generator_factory.rb
80
- - lib/redirect_code_generator/sanitizer.rb
81
81
  - lib/redirect_code_generator/version.rb
82
82
  - redirect_code_generator.gemspec
83
83
  homepage: https://github.com/tsmsogn/redirect_code_generator
@@ -1,7 +0,0 @@
1
- module RedirectCodeGenerator
2
- module Sanitizer
3
- def escape(str)
4
- Regexp.escape(str)
5
- end
6
- end
7
- end