rewritten 0.4.0 → 0.5.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/HISTORY.rdoc +9 -0
- data/bin/rewritten-dump.rb +45 -0
- data/bin/rewritten-import.rb +52 -0
- data/lib/rewritten/version.rb +1 -1
- data/lib/rewritten.rb +27 -1
- data/test/rewritten_test.rb +25 -0
- metadata +8 -4
- data/test/test_rewritten.rb +0 -6
- /data/test/{rewritten_url_test.rb → rack/rewritten_url_test.rb} +0 -0
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 7457fe2750b09f702f64e2255515fcb1b7d681f1
|
4
|
+
data.tar.gz: a7653f8eb5b983e220f4332d6395d0f17fec6e4a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: e0f1fb6a8ee92c5517963ec40e34d7ac286312ae4382049c9b10209e3402b6a858d7d9346abd06fc0925ad3124c9a7c6f5523f0ddaf9e603d3d9215c66b5020e
|
7
|
+
data.tar.gz: 23194964b145fe819f7aa68a6bc327661f932483a5046d16d9868604c350be7fc829cf2c6c82aaa0e77dc953f05e57fa0ef8d403fb96b98af7afb3b200ec9351
|
data/HISTORY.rdoc
CHANGED
@@ -0,0 +1,45 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
|
4
|
+
|
5
|
+
require 'optparse'
|
6
|
+
require 'rewritten'
|
7
|
+
|
8
|
+
options = {
|
9
|
+
:out => 'rewritten.csv',
|
10
|
+
:verbose => false
|
11
|
+
}
|
12
|
+
|
13
|
+
op = OptionParser.new do |opts|
|
14
|
+
opts.banner = "Usage: rewriten-dump.rb [options]"
|
15
|
+
|
16
|
+
opts.on("-v", "--verbose", "be more verbose") do
|
17
|
+
options[:verbose] = true
|
18
|
+
end
|
19
|
+
|
20
|
+
opts.on("-o", "--out FILE", 'output file or "-" for stdout') do |o|
|
21
|
+
options[:out] = o
|
22
|
+
end
|
23
|
+
|
24
|
+
opts.on("-u", "--uri URI", 'uri to the redis db') do |uri|
|
25
|
+
options[:uri] = uri
|
26
|
+
end
|
27
|
+
|
28
|
+
opts.on("-h", "--help", 'print help') do
|
29
|
+
puts opts
|
30
|
+
exit 0
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
34
|
+
op.parse!
|
35
|
+
|
36
|
+
Rewritten.redis = options[:uri] if options[:uri]
|
37
|
+
|
38
|
+
file = options[:out] == "-" ? STDOUT : File.open(options[:out], "w")
|
39
|
+
|
40
|
+
file.puts "#from;to"
|
41
|
+
Rewritten.all_tos.each do |to|
|
42
|
+
file.puts Rewritten.get_all_translations(to).map{|from| "#{from};#{to}"}.join("\n")
|
43
|
+
end
|
44
|
+
|
45
|
+
|
@@ -0,0 +1,52 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
$LOAD_PATH.unshift File.expand_path(File.dirname(__FILE__) + '/../lib')
|
4
|
+
|
5
|
+
require 'optparse'
|
6
|
+
require 'rewritten'
|
7
|
+
require 'multi_json'
|
8
|
+
|
9
|
+
options = {
|
10
|
+
:drop => false
|
11
|
+
}
|
12
|
+
|
13
|
+
op = OptionParser.new do |opts|
|
14
|
+
opts.banner = "Usage: rewriten-dump.rb [options]"
|
15
|
+
|
16
|
+
opts.on("-v", "--verbose", "be more verbose") do |v|
|
17
|
+
options[:verbose] = v
|
18
|
+
end
|
19
|
+
|
20
|
+
opts.on("-f", "--file FILE", 'input file') do |o|
|
21
|
+
options[:file] = o
|
22
|
+
end
|
23
|
+
|
24
|
+
opts.on("-u", "--uri URI", 'uri to the redis db') do |uri|
|
25
|
+
options[:uri] = uri
|
26
|
+
end
|
27
|
+
|
28
|
+
opts.on("-d", "--drop", 'drop translations first') do
|
29
|
+
options[:drop] = true
|
30
|
+
end
|
31
|
+
|
32
|
+
end
|
33
|
+
|
34
|
+
op.parse!
|
35
|
+
|
36
|
+
unless options[:file]
|
37
|
+
puts op
|
38
|
+
exit
|
39
|
+
end
|
40
|
+
|
41
|
+
Rewritten.redis = options[:uri] if options[:uri]
|
42
|
+
|
43
|
+
Rewritten.clear_translations if options[:drop]
|
44
|
+
|
45
|
+
File.open(options[:file]).each do |line|
|
46
|
+
next if line =~ /^#/
|
47
|
+
from,to = line.split(";")
|
48
|
+
puts "adding #{from} -> #{to}" if options[:verbose]
|
49
|
+
Rewritten.add_translation(from,to)
|
50
|
+
end
|
51
|
+
|
52
|
+
|
data/lib/rewritten/version.rb
CHANGED
data/lib/rewritten.rb
CHANGED
@@ -6,6 +6,7 @@ require 'rack/url'
|
|
6
6
|
require 'rack/record'
|
7
7
|
require 'rack/html'
|
8
8
|
require 'rack/subdomain'
|
9
|
+
require 'pry'
|
9
10
|
|
10
11
|
module Rewritten
|
11
12
|
include Helpers
|
@@ -160,8 +161,33 @@ module Rewritten
|
|
160
161
|
end
|
161
162
|
end
|
162
163
|
|
164
|
+
def clear_translations
|
165
|
+
if Rewritten.redis == :test
|
166
|
+
@static_translations = {}
|
167
|
+
else
|
168
|
+
Rewritten.redis.del(*Rewritten.redis.keys) unless Rewritten.redis.keys.empty?
|
169
|
+
end
|
170
|
+
end
|
171
|
+
|
172
|
+
def all_tos
|
173
|
+
tos = []
|
174
|
+
if Rewritten.redis == :test
|
175
|
+
tos = @static_translations.values.uniq
|
176
|
+
else
|
177
|
+
tos = Rewritten.redis.lrange("tos",0,-1).uniq
|
178
|
+
end
|
179
|
+
end
|
180
|
+
|
181
|
+
def all_translations
|
182
|
+
Hash[all_tos.map {|to| [to, Rewritten.get_all_translations(to)]}]
|
183
|
+
end
|
184
|
+
|
163
185
|
def get_all_translations(to)
|
164
|
-
Rewritten.redis
|
186
|
+
if Rewritten.redis == :test
|
187
|
+
@static_translations.to_a.select{|k,v| v == to}.map{|k,v| k}
|
188
|
+
else
|
189
|
+
Rewritten.redis.lrange("to:#{to}", 0, -1)
|
190
|
+
end
|
165
191
|
end
|
166
192
|
|
167
193
|
def get_current_translation(path)
|
@@ -0,0 +1,25 @@
|
|
1
|
+
require 'rewritten'
|
2
|
+
require 'minitest/autorun'
|
3
|
+
|
4
|
+
describe Rewritten do
|
5
|
+
|
6
|
+
before{
|
7
|
+
Rewritten.redis = :test
|
8
|
+
Rewritten.clear_translations
|
9
|
+
Rewritten.add_translation('/from', '/to')
|
10
|
+
Rewritten.add_translation('/from2', '/to')
|
11
|
+
Rewritten.add_translation('/from3', '/to2')
|
12
|
+
}
|
13
|
+
|
14
|
+
it "must give all tos" do
|
15
|
+
Rewritten.all_tos.must_equal ["/to", "/to2"]
|
16
|
+
end
|
17
|
+
|
18
|
+
it "must return all translations" do
|
19
|
+
expected = { "/to" => ['/from', '/from2'], "/to2" => ['/from3']}
|
20
|
+
Rewritten.all_translations.must_equal expected
|
21
|
+
end
|
22
|
+
|
23
|
+
end
|
24
|
+
|
25
|
+
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: rewritten
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.5.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Kai Rubarth
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2013-05-
|
11
|
+
date: 2013-05-12 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: redis-namespace
|
@@ -128,6 +128,8 @@ description: |2
|
|
128
128
|
email:
|
129
129
|
- kai@doxter.de
|
130
130
|
executables:
|
131
|
+
- rewritten-dump.rb
|
132
|
+
- rewritten-import.rb
|
131
133
|
- rewritten-web.rb
|
132
134
|
extensions: []
|
133
135
|
extra_rdoc_files: []
|
@@ -137,6 +139,8 @@ files:
|
|
137
139
|
- HISTORY.rdoc
|
138
140
|
- README.rdoc
|
139
141
|
- Rakefile
|
142
|
+
- bin/rewritten-dump.rb
|
143
|
+
- bin/rewritten-import.rb
|
140
144
|
- bin/rewritten-web.rb
|
141
145
|
- config.ru
|
142
146
|
- lib/rack/dummy.rb
|
@@ -176,8 +180,8 @@ files:
|
|
176
180
|
- lib/rewritten/version.rb
|
177
181
|
- lib/test.ru
|
178
182
|
- rewritten.gemspec
|
179
|
-
- test/rewritten_url_test.rb
|
180
|
-
- test/
|
183
|
+
- test/rack/rewritten_url_test.rb
|
184
|
+
- test/rewritten_test.rb
|
181
185
|
homepage: ''
|
182
186
|
licenses: []
|
183
187
|
metadata: {}
|
data/test/test_rewritten.rb
DELETED
File without changes
|