rake_routes_normalizer 0.1.0
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/.gitignore +6 -0
- data/Gemfile +4 -0
- data/Guardfile +16 -0
- data/README.markdown +26 -0
- data/Rakefile +1 -0
- data/bin/rake_routes_normalizer +17 -0
- data/lib/rake_routes_normalizer.rb +11 -0
- data/lib/rake_routes_normalizer/app.rb +11 -0
- data/lib/rake_routes_normalizer/exception_with_default_message.rb +12 -0
- data/lib/rake_routes_normalizer/route.rb +39 -0
- data/lib/rake_routes_normalizer/route_set.rb +20 -0
- data/lib/rake_routes_normalizer/version.rb +3 -0
- data/rake_routes_normalizer.gemspec +32 -0
- data/spec/rake_routes_normalizer/route_set_spec.rb +79 -0
- data/spec/rake_routes_normalizer/route_spec.rb +96 -0
- data/spec/spec_helper.rb +6 -0
- metadata +164 -0
data/.gitignore
ADDED
data/Gemfile
ADDED
data/Guardfile
ADDED
@@ -0,0 +1,16 @@
|
|
1
|
+
# A sample Guardfile
|
2
|
+
# More info at https://github.com/guard/guard#readme
|
3
|
+
|
4
|
+
guard 'minitest' do
|
5
|
+
# with Minitest::Unit
|
6
|
+
#watch(%r|^test/test_(.*)\.rb|)
|
7
|
+
#watch(%r|^lib/(.*)([^/]+)\.rb|) { |m| "test/#{m[1]}test_#{m[2]}.rb" }
|
8
|
+
#watch(%r|^test/test_helper\.rb|) { "test" }
|
9
|
+
|
10
|
+
# with Minitest::Spec
|
11
|
+
watch(%r|^rake_routes_normalizer\.gemspec|) { "spec" }
|
12
|
+
watch(%r|^lib/rake_routes_normalizer\.rb|) { "spec" }
|
13
|
+
watch(%r|^lib/(.*)\.rb|) { |m| "spec/#{m[1]}_spec.rb" }
|
14
|
+
watch(%r|^spec/spec_helper\.rb|) { "spec" }
|
15
|
+
watch(%r|^spec/(.*)_spec\.rb|)
|
16
|
+
end
|
data/README.markdown
ADDED
@@ -0,0 +1,26 @@
|
|
1
|
+
Rake Routes Normalizer
|
2
|
+
------------------------
|
3
|
+
|
4
|
+
rake_routes_normalizer is a utility for migrating routes from Rails 2 to 3.
|
5
|
+
It can normalize the printout of `rake routes` so that it's easier to diff
|
6
|
+
Rails 2 to 3 routes.
|
7
|
+
|
8
|
+
(Yes, Rails 3 was released last year. But better late than never.)
|
9
|
+
|
10
|
+
Usage
|
11
|
+
=====
|
12
|
+
|
13
|
+
In a rails directory:
|
14
|
+
|
15
|
+
rake routes | rake_routes_normalizer
|
16
|
+
|
17
|
+
Or if you saved the `rake routes` printout:
|
18
|
+
|
19
|
+
rake_routes_normalizer rake_routes_printout.txt
|
20
|
+
|
21
|
+
Install
|
22
|
+
=======
|
23
|
+
|
24
|
+
gem install rake_routes_normalizer
|
25
|
+
|
26
|
+
|
data/Rakefile
ADDED
@@ -0,0 +1 @@
|
|
1
|
+
require "bundler/gem_tasks"
|
@@ -0,0 +1,17 @@
|
|
1
|
+
#!/usr/bin/env ruby
|
2
|
+
|
3
|
+
require 'rake_routes_normalizer'
|
4
|
+
|
5
|
+
case ARGV.length
|
6
|
+
when 0
|
7
|
+
if $stdin.tty?
|
8
|
+
# e.g. rake_routes_normalizer
|
9
|
+
RakeRoutesNormalizer::App.start # display the help
|
10
|
+
else
|
11
|
+
# rake routes | rake_routes_normalizer
|
12
|
+
RakeRoutesNormalizer::App.new.normalize(ARGF.read)
|
13
|
+
end
|
14
|
+
else
|
15
|
+
# e.g. rake_routes_normalizer rake_routes_printout.txt
|
16
|
+
RakeRoutesNormalizer::App.new.normalize(ARGF.read)
|
17
|
+
end
|
@@ -0,0 +1,11 @@
|
|
1
|
+
require 'hashery/dictionary'
|
2
|
+
require 'hashery/key_hash'
|
3
|
+
require 'thor'
|
4
|
+
require 'valuable'
|
5
|
+
|
6
|
+
require "rake_routes_normalizer/version"
|
7
|
+
|
8
|
+
require "rake_routes_normalizer/app"
|
9
|
+
require "rake_routes_normalizer/exception_with_default_message"
|
10
|
+
require "rake_routes_normalizer/route"
|
11
|
+
require "rake_routes_normalizer/route_set"
|
@@ -0,0 +1,11 @@
|
|
1
|
+
module RakeRoutesNormalizer
|
2
|
+
class App < Thor
|
3
|
+
desc "RAKE_PRINTOUT_FILE", "Print the normalized version of RAKE_PRINTOUT_FILE"
|
4
|
+
def normalize(text)
|
5
|
+
table = RouteSet.parse(text).normalize.routes.map do |route|
|
6
|
+
[route.name, route.http_verb, route.url_pattern, route.params.inspect]
|
7
|
+
end
|
8
|
+
print_table table
|
9
|
+
end
|
10
|
+
end
|
11
|
+
end
|
@@ -0,0 +1,12 @@
|
|
1
|
+
module RakeRoutesNormalizer
|
2
|
+
class ExceptionWithDefaultMessage < Exception
|
3
|
+
attr_reader :options
|
4
|
+
def initialize(options={})
|
5
|
+
@options = options
|
6
|
+
message = options.is_a?(String) ?
|
7
|
+
options :
|
8
|
+
"#{self.class}. Got #{options.inspect}"
|
9
|
+
super(message)
|
10
|
+
end
|
11
|
+
end
|
12
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
module RakeRoutesNormalizer
|
2
|
+
class Route < Valuable
|
3
|
+
LINE_REGEX = %r{ *([abcdefghijklmnopqrstuvwxyz_]*) +([ABCDEFGHIJKLMNOPQRSTUVWXYZ]*) +(\S+) +(.*)}
|
4
|
+
|
5
|
+
has_value :http_verb
|
6
|
+
has_value :name
|
7
|
+
has_value :params
|
8
|
+
has_value :url_pattern
|
9
|
+
|
10
|
+
def self.parse(line)
|
11
|
+
new.tap do |result|
|
12
|
+
tokens = line.match(LINE_REGEX)
|
13
|
+
result.name = tokens[1]
|
14
|
+
result.http_verb = tokens[2]
|
15
|
+
result.url_pattern = tokens[3]
|
16
|
+
result.params = eval(tokens[4])
|
17
|
+
end
|
18
|
+
rescue NoMethodError => e
|
19
|
+
raise CannotParseLine.new(:line => line)
|
20
|
+
end
|
21
|
+
|
22
|
+
def <=>(other)
|
23
|
+
[:url_pattern, :http_verb].inject(0) do |result, attribute|
|
24
|
+
result == 0 ? (self.send(attribute) || '') <=> (other.send(attribute) || '') : result
|
25
|
+
end
|
26
|
+
end
|
27
|
+
|
28
|
+
def normalize(options = {})
|
29
|
+
clone.tap do |result|
|
30
|
+
result.http_verb = 'GET' if result.http_verb.to_s =~ /^\s*$/
|
31
|
+
result.name = options[:previous_route].name if result.name =~ /^\s*$/
|
32
|
+
result.params = Dictionary[KeyHash[params || {}]].order_by_key
|
33
|
+
end
|
34
|
+
end
|
35
|
+
|
36
|
+
class CannotParseLine < ExceptionWithDefaultMessage
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module RakeRoutesNormalizer
|
2
|
+
class RouteSet < Valuable
|
3
|
+
has_collection :routes
|
4
|
+
|
5
|
+
def self.parse(text)
|
6
|
+
RouteSet.new.tap do |result|
|
7
|
+
result.routes = text.split("\n").reject{|line| line =~ /^\s*$/}.map{|line| Route.parse(line)}
|
8
|
+
end
|
9
|
+
end
|
10
|
+
|
11
|
+
def normalize
|
12
|
+
result = routes.inject(RouteSet.new) do|route_set, route|
|
13
|
+
route_set.routes << route.normalize(:previous_route => route_set.routes.last)
|
14
|
+
route_set
|
15
|
+
end
|
16
|
+
result.routes.sort!
|
17
|
+
result
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,32 @@
|
|
1
|
+
# -*- encoding: utf-8 -*-
|
2
|
+
$:.push File.expand_path("../lib", __FILE__)
|
3
|
+
require "rake_routes_normalizer/version"
|
4
|
+
|
5
|
+
Gem::Specification.new do |s|
|
6
|
+
s.name = "rake_routes_normalizer"
|
7
|
+
s.version = RakeRoutesNormalizer::VERSION
|
8
|
+
s.authors = ["George Mendoza"]
|
9
|
+
s.email = ["gsmendoza@gmail.com"]
|
10
|
+
s.homepage = ""
|
11
|
+
s.summary = "Normalize the printout of rake routes so that it's easier to diff"
|
12
|
+
s.description = %q{
|
13
|
+
rake_routes_normalizer is a utility for migrating routes from Rails 2 to 3. It can
|
14
|
+
normalize the printout of rake routes so that it's easier to diff Rails 2 to 3 routes.
|
15
|
+
}
|
16
|
+
|
17
|
+
s.rubyforge_project = "rake_routes_normalizer"
|
18
|
+
|
19
|
+
s.files = `git ls-files`.split("\n")
|
20
|
+
s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
|
21
|
+
s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
|
22
|
+
s.require_paths = ["lib"]
|
23
|
+
|
24
|
+
# specify any dependencies here; for example:
|
25
|
+
s.add_development_dependency 'guard-minitest'
|
26
|
+
s.add_development_dependency "minitest"
|
27
|
+
s.add_development_dependency "ruby-debug"
|
28
|
+
|
29
|
+
s.add_runtime_dependency "hashery"
|
30
|
+
s.add_runtime_dependency "thor"
|
31
|
+
s.add_runtime_dependency "valuable"
|
32
|
+
end
|
@@ -0,0 +1,79 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe RouteSet do
|
4
|
+
describe "parse(text)" do
|
5
|
+
it "can convert one line of text to a route set" do
|
6
|
+
text = %Q{root /(.:format) {:action=>"default", :controller=>"pages"}}
|
7
|
+
|
8
|
+
route_set = RouteSet.parse(text)
|
9
|
+
route_set.routes.size.must_equal 1
|
10
|
+
end
|
11
|
+
|
12
|
+
it "should ignore blank lines" do
|
13
|
+
text = %Q|root /(.:format) {:action=>"default", :controller=>"pages"}\n |
|
14
|
+
|
15
|
+
route_set = RouteSet.parse(text)
|
16
|
+
route_set.routes.size.must_equal 1
|
17
|
+
end
|
18
|
+
end
|
19
|
+
|
20
|
+
describe "normalize" do
|
21
|
+
it "should be a copy of the route set" do
|
22
|
+
route_set = RouteSet.new.tap do |route_set|
|
23
|
+
route_set.routes << Route.new.tap do |route|
|
24
|
+
route.name = 'root'
|
25
|
+
route.http_verb = 'GET'
|
26
|
+
route.url_pattern = '/(.:format)'
|
27
|
+
route.params = {:action=>"default", :controller=>"pages"}
|
28
|
+
end
|
29
|
+
end
|
30
|
+
|
31
|
+
copy = route_set.normalize
|
32
|
+
copy.must_be_instance_of RouteSet
|
33
|
+
copy.wont_be_same_as route_set
|
34
|
+
copy.routes.size.must_equal 1
|
35
|
+
|
36
|
+
route = copy.routes[0]
|
37
|
+
route.wont_be_same_as route_set.routes[0]
|
38
|
+
route.name.must_equal 'root'
|
39
|
+
route.http_verb.must_equal 'GET'
|
40
|
+
route.url_pattern.must_equal '/(.:format)'
|
41
|
+
route.params.inspect.must_equal %q|{"action"=>"default", "controller"=>"pages"}|
|
42
|
+
end
|
43
|
+
|
44
|
+
it "should normalize its route" do
|
45
|
+
route_set = RouteSet.new.tap do |route_set|
|
46
|
+
route_set.routes << Route.new.tap do |route|
|
47
|
+
route.name = 'root'
|
48
|
+
route.http_verb = ''
|
49
|
+
route.url_pattern = '/(.:format)'
|
50
|
+
route.params = {:action=>"default", :controller=>"pages"}
|
51
|
+
end
|
52
|
+
end
|
53
|
+
|
54
|
+
route_set.normalize.routes[0].http_verb.must_equal "GET"
|
55
|
+
end
|
56
|
+
|
57
|
+
it "should normalize a route based the route's previous route" do
|
58
|
+
route_set = RouteSet.new(
|
59
|
+
:routes => [
|
60
|
+
Route.new(:name => 'account'),
|
61
|
+
Route.new(:name => '')
|
62
|
+
]
|
63
|
+
)
|
64
|
+
copy = route_set.normalize
|
65
|
+
copy.routes.map(&:name).uniq.must_equal ['account']
|
66
|
+
end
|
67
|
+
|
68
|
+
it "should sort the routes" do
|
69
|
+
route_set = RouteSet.new(
|
70
|
+
:routes => [
|
71
|
+
Route.new(:url_pattern => '/airports(.:format)', :http_verb => 'GET'),
|
72
|
+
Route.new(:url_pattern => '/account(.:format)', :http_verb => 'GET')
|
73
|
+
]
|
74
|
+
)
|
75
|
+
copy = route_set.normalize
|
76
|
+
copy.routes.map(&:url_pattern).uniq.must_equal ['/account(.:format)', '/airports(.:format)']
|
77
|
+
end
|
78
|
+
end
|
79
|
+
end
|
@@ -0,0 +1,96 @@
|
|
1
|
+
require 'spec_helper'
|
2
|
+
|
3
|
+
describe Route do
|
4
|
+
describe "parse(text)" do
|
5
|
+
it "can convert the text to a route set" do
|
6
|
+
text = %q{root GET /(.:format) {:action=>"default", :controller=>"pages"}}
|
7
|
+
|
8
|
+
route = Route.parse(text)
|
9
|
+
route.name.must_equal 'root'
|
10
|
+
route.http_verb.must_equal 'GET'
|
11
|
+
route.url_pattern.must_equal '/(.:format)'
|
12
|
+
route.params.must_equal({:action => "default", :controller => "pages"})
|
13
|
+
end
|
14
|
+
|
15
|
+
it "can convert the text if the text does not have an http verb" do
|
16
|
+
text = %q{root /(.:format) {:action=>"default", :controller=>"pages"}}
|
17
|
+
|
18
|
+
route = Route.parse(text)
|
19
|
+
route.name.must_equal 'root'
|
20
|
+
route.http_verb.strip.must_equal ''
|
21
|
+
route.url_pattern.must_equal '/(.:format)'
|
22
|
+
route.params.must_equal({:action => "default", :controller => "pages"})
|
23
|
+
end
|
24
|
+
|
25
|
+
it "can convert the text if the text starts with spaces" do
|
26
|
+
text = %q{ root GET /(.:format) {:controller=>"pages", :action=>"default"}}
|
27
|
+
|
28
|
+
route = Route.parse(text)
|
29
|
+
route.name.must_equal 'root'
|
30
|
+
route.http_verb.must_equal 'GET'
|
31
|
+
route.url_pattern.must_equal '/(.:format)'
|
32
|
+
route.params.must_equal({:action => "default", :controller => "pages"})
|
33
|
+
end
|
34
|
+
|
35
|
+
it "can convert the text if the text does not have an name" do
|
36
|
+
text = %q{ PUT /account/change_password(.:format) {:controller=>"users", :action=>"change_password"}}
|
37
|
+
|
38
|
+
route = Route.parse(text)
|
39
|
+
route.name.must_equal ''
|
40
|
+
route.http_verb.must_equal 'PUT'
|
41
|
+
route.url_pattern.must_equal '/account/change_password(.:format)'
|
42
|
+
route.params.must_equal({:controller=>"users", :action=>"change_password"})
|
43
|
+
end
|
44
|
+
end
|
45
|
+
|
46
|
+
describe "normalize(options)" do
|
47
|
+
it "should return a copy of the route" do
|
48
|
+
route = Route.new.tap do |route|
|
49
|
+
route.name = 'root'
|
50
|
+
route.http_verb = 'GET'
|
51
|
+
route.url_pattern = '/(.:format)'
|
52
|
+
route.params = {:action=>"default", :controller=>"pages"}
|
53
|
+
end
|
54
|
+
|
55
|
+
copy = route.normalize
|
56
|
+
copy.must_be_instance_of Route
|
57
|
+
copy.wont_be_same_as route
|
58
|
+
end
|
59
|
+
|
60
|
+
it "should set the http_verb to GET if it is blank" do
|
61
|
+
route = Route.new(:http_verb => '')
|
62
|
+
route.normalize.http_verb.must_equal 'GET'
|
63
|
+
end
|
64
|
+
|
65
|
+
it "should set the name to the options[:previous_route]'s name if it is blank" do
|
66
|
+
previous_route = Route.new(:name => 'account_path')
|
67
|
+
route = Route.new(:name => '')
|
68
|
+
route.normalize(:previous_route => previous_route).name.must_equal 'account_path'
|
69
|
+
end
|
70
|
+
|
71
|
+
it "should sort the route's params by key" do
|
72
|
+
route = Route.new(:params => {:controller=>"users", :action=>"edit_password", :protocol=>nil})
|
73
|
+
route.normalize.params.inspect.must_equal %q|{"action"=>"edit_password", "controller"=>"users", "protocol"=>nil}|
|
74
|
+
end
|
75
|
+
end
|
76
|
+
|
77
|
+
describe "<=>(other)" do
|
78
|
+
it "should sort the route and other's url_pattern" do
|
79
|
+
routes = [
|
80
|
+
Route.new(:url_pattern => '/account(.:format)', :http_verb => 'GET'),
|
81
|
+
Route.new(:url_pattern => '/airports(.:format)', :http_verb => 'GET')
|
82
|
+
]
|
83
|
+
|
84
|
+
(routes[0] <=> routes[1]).must_be :<, 0
|
85
|
+
end
|
86
|
+
|
87
|
+
it "should compare the route and other's url_pattern by http_verb, if the url patterns are the same" do
|
88
|
+
routes = [
|
89
|
+
Route.new(:url_pattern => '/account(.:format)', :http_verb => 'GET'),
|
90
|
+
Route.new(:url_pattern => '/account(.:format)', :http_verb => 'PUT')
|
91
|
+
]
|
92
|
+
|
93
|
+
(routes[0] <=> routes[1]).must_be :<, 0
|
94
|
+
end
|
95
|
+
end
|
96
|
+
end
|
data/spec/spec_helper.rb
ADDED
metadata
ADDED
@@ -0,0 +1,164 @@
|
|
1
|
+
--- !ruby/object:Gem::Specification
|
2
|
+
name: rake_routes_normalizer
|
3
|
+
version: !ruby/object:Gem::Version
|
4
|
+
hash: 27
|
5
|
+
prerelease:
|
6
|
+
segments:
|
7
|
+
- 0
|
8
|
+
- 1
|
9
|
+
- 0
|
10
|
+
version: 0.1.0
|
11
|
+
platform: ruby
|
12
|
+
authors:
|
13
|
+
- George Mendoza
|
14
|
+
autorequire:
|
15
|
+
bindir: bin
|
16
|
+
cert_chain: []
|
17
|
+
|
18
|
+
date: 2011-12-07 00:00:00 Z
|
19
|
+
dependencies:
|
20
|
+
- !ruby/object:Gem::Dependency
|
21
|
+
name: guard-minitest
|
22
|
+
prerelease: false
|
23
|
+
requirement: &id001 !ruby/object:Gem::Requirement
|
24
|
+
none: false
|
25
|
+
requirements:
|
26
|
+
- - ">="
|
27
|
+
- !ruby/object:Gem::Version
|
28
|
+
hash: 3
|
29
|
+
segments:
|
30
|
+
- 0
|
31
|
+
version: "0"
|
32
|
+
type: :development
|
33
|
+
version_requirements: *id001
|
34
|
+
- !ruby/object:Gem::Dependency
|
35
|
+
name: minitest
|
36
|
+
prerelease: false
|
37
|
+
requirement: &id002 !ruby/object:Gem::Requirement
|
38
|
+
none: false
|
39
|
+
requirements:
|
40
|
+
- - ">="
|
41
|
+
- !ruby/object:Gem::Version
|
42
|
+
hash: 3
|
43
|
+
segments:
|
44
|
+
- 0
|
45
|
+
version: "0"
|
46
|
+
type: :development
|
47
|
+
version_requirements: *id002
|
48
|
+
- !ruby/object:Gem::Dependency
|
49
|
+
name: ruby-debug
|
50
|
+
prerelease: false
|
51
|
+
requirement: &id003 !ruby/object:Gem::Requirement
|
52
|
+
none: false
|
53
|
+
requirements:
|
54
|
+
- - ">="
|
55
|
+
- !ruby/object:Gem::Version
|
56
|
+
hash: 3
|
57
|
+
segments:
|
58
|
+
- 0
|
59
|
+
version: "0"
|
60
|
+
type: :development
|
61
|
+
version_requirements: *id003
|
62
|
+
- !ruby/object:Gem::Dependency
|
63
|
+
name: hashery
|
64
|
+
prerelease: false
|
65
|
+
requirement: &id004 !ruby/object:Gem::Requirement
|
66
|
+
none: false
|
67
|
+
requirements:
|
68
|
+
- - ">="
|
69
|
+
- !ruby/object:Gem::Version
|
70
|
+
hash: 3
|
71
|
+
segments:
|
72
|
+
- 0
|
73
|
+
version: "0"
|
74
|
+
type: :runtime
|
75
|
+
version_requirements: *id004
|
76
|
+
- !ruby/object:Gem::Dependency
|
77
|
+
name: thor
|
78
|
+
prerelease: false
|
79
|
+
requirement: &id005 !ruby/object:Gem::Requirement
|
80
|
+
none: false
|
81
|
+
requirements:
|
82
|
+
- - ">="
|
83
|
+
- !ruby/object:Gem::Version
|
84
|
+
hash: 3
|
85
|
+
segments:
|
86
|
+
- 0
|
87
|
+
version: "0"
|
88
|
+
type: :runtime
|
89
|
+
version_requirements: *id005
|
90
|
+
- !ruby/object:Gem::Dependency
|
91
|
+
name: valuable
|
92
|
+
prerelease: false
|
93
|
+
requirement: &id006 !ruby/object:Gem::Requirement
|
94
|
+
none: false
|
95
|
+
requirements:
|
96
|
+
- - ">="
|
97
|
+
- !ruby/object:Gem::Version
|
98
|
+
hash: 3
|
99
|
+
segments:
|
100
|
+
- 0
|
101
|
+
version: "0"
|
102
|
+
type: :runtime
|
103
|
+
version_requirements: *id006
|
104
|
+
description: "\n rake_routes_normalizer is a utility for migrating routes from Rails 2 to 3. It can\n normalize the printout of rake routes so that it's easier to diff Rails 2 to 3 routes.\n "
|
105
|
+
email:
|
106
|
+
- gsmendoza@gmail.com
|
107
|
+
executables:
|
108
|
+
- rake_routes_normalizer
|
109
|
+
extensions: []
|
110
|
+
|
111
|
+
extra_rdoc_files: []
|
112
|
+
|
113
|
+
files:
|
114
|
+
- .gitignore
|
115
|
+
- Gemfile
|
116
|
+
- Guardfile
|
117
|
+
- README.markdown
|
118
|
+
- Rakefile
|
119
|
+
- bin/rake_routes_normalizer
|
120
|
+
- lib/rake_routes_normalizer.rb
|
121
|
+
- lib/rake_routes_normalizer/app.rb
|
122
|
+
- lib/rake_routes_normalizer/exception_with_default_message.rb
|
123
|
+
- lib/rake_routes_normalizer/route.rb
|
124
|
+
- lib/rake_routes_normalizer/route_set.rb
|
125
|
+
- lib/rake_routes_normalizer/version.rb
|
126
|
+
- rake_routes_normalizer.gemspec
|
127
|
+
- spec/rake_routes_normalizer/route_set_spec.rb
|
128
|
+
- spec/rake_routes_normalizer/route_spec.rb
|
129
|
+
- spec/spec_helper.rb
|
130
|
+
homepage: ""
|
131
|
+
licenses: []
|
132
|
+
|
133
|
+
post_install_message:
|
134
|
+
rdoc_options: []
|
135
|
+
|
136
|
+
require_paths:
|
137
|
+
- lib
|
138
|
+
required_ruby_version: !ruby/object:Gem::Requirement
|
139
|
+
none: false
|
140
|
+
requirements:
|
141
|
+
- - ">="
|
142
|
+
- !ruby/object:Gem::Version
|
143
|
+
hash: 3
|
144
|
+
segments:
|
145
|
+
- 0
|
146
|
+
version: "0"
|
147
|
+
required_rubygems_version: !ruby/object:Gem::Requirement
|
148
|
+
none: false
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
hash: 3
|
153
|
+
segments:
|
154
|
+
- 0
|
155
|
+
version: "0"
|
156
|
+
requirements: []
|
157
|
+
|
158
|
+
rubyforge_project: rake_routes_normalizer
|
159
|
+
rubygems_version: 1.8.10
|
160
|
+
signing_key:
|
161
|
+
specification_version: 3
|
162
|
+
summary: Normalize the printout of rake routes so that it's easier to diff
|
163
|
+
test_files: []
|
164
|
+
|