p8-redirect 0.3.0 → 0.3.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.
Files changed (4) hide show
  1. data/README.txt +5 -4
  2. data/bin/redirect_app +41 -2
  3. data/lib/redirect.rb +1 -1
  4. metadata +1 -1
data/README.txt CHANGED
@@ -4,22 +4,23 @@ http://github.com/p8/redirect/tree/master
4
4
 
5
5
  == DESCRIPTION:
6
6
 
7
- Redirect is a simple Ruby redirect DSL build on Rack
7
+ Redirect is a simple Ruby redirect DSL build on Rack.
8
+ It's like a simple Ruby mod_rewrite, so you can write and test your redirects in Ruby.
8
9
 
9
- == GETTING STARTED
10
+ == GETTING STARTED:
10
11
 
11
12
  From the commandline run:
12
13
 
13
14
  redirect_app PROJECT_NAME
14
15
 
15
- This create a directory PROJECT_NAME with the required files.
16
+ This create a directory PROJECT_NAME with the required files and tests.
16
17
  PROJECT_NAME.rb contains the main logic.
17
18
 
18
19
  To locally run the app you can do:
19
20
 
20
21
  ruby PROJECT_NAME.rb
21
22
 
22
- == REDIRECTS
23
+ == REDIRECTS:
23
24
 
24
25
  The first one is evaluated first, then the next one, etc..
25
26
 
data/bin/redirect_app CHANGED
@@ -1,7 +1,7 @@
1
1
  #!/usr/bin/env ruby
2
2
  require 'fileutils'
3
3
  project = ARGV.first
4
- FileUtils.mkdir_p(project, :verbose => false) unless File.directory?(project)
4
+ FileUtils.mkdir_p(project) unless File.directory?(project)
5
5
 
6
6
  # create application
7
7
  open("#{project}/#{project}.rb", "w") do |f|
@@ -18,4 +18,43 @@ open("#{project}/config.ru", "w") do |f|
18
18
  %(Redirect.autorun = false\n\n) +
19
19
  %(require '#{project}.rb'\n\n) +
20
20
  %(run Redirect.app)
21
- end
21
+ end
22
+
23
+ # create public dir
24
+ FileUtils.mkdir_p("#{project}/public") unless File.directory?("#{project}/public")
25
+
26
+ # create tests dir
27
+ FileUtils.mkdir_p("#{project}/test") unless File.directory?("#{project}/test")
28
+
29
+ # create sample test
30
+ open("#{project}/test/#{project}_test.rb", "w") do |f|
31
+ f.puts %(require 'rubygems'
32
+ require 'test/unit'
33
+ require 'redirect'
34
+
35
+ class Test::Unit::TestCase
36
+
37
+ def assert_redirects(from, to)
38
+ res = Rack::MockRequest.new(APP[:redirect_app]).get(from)
39
+ res.headers.should == { 'Location' => to, 'Content-Type' => 'text/html' }
40
+ res.body.should == "Redirecting to: #{to}"
41
+ end
42
+
43
+ end
44
+
45
+ APP = {}
46
+
47
+ def redirect(*redirects)
48
+ APP[:redirect_app] = Rack::Redirect.new(*redirects)
49
+ end
50
+
51
+ require File.dirname(__FILE__) + '/../#{project}.rb'
52
+
53
+ class TestClient < Test::Unit::TestCase
54
+
55
+ def test_old_url
56
+ assert_redirects('/old_url', '/new_url')
57
+ end
58
+
59
+ end)
60
+ end
data/lib/redirect.rb CHANGED
@@ -5,7 +5,7 @@ require 'rack/request'
5
5
  require 'rack/response'
6
6
 
7
7
  module Redirect
8
- VERSION = '0.3.0'
8
+ VERSION = '0.3.1'
9
9
 
10
10
  def self.default_code= default_code
11
11
  @default_code = default_code
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: p8-redirect
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.3.0
4
+ version: 0.3.1
5
5
  platform: ruby
6
6
  authors:
7
7
  - Petrik de Heus