unused_view 0.0.2 → 0.0.4
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/README.md +14 -1
- data/lib/unused_view.rb +7 -35
- data/lib/unused_view/layout.rb +33 -0
- data/lib/unused_view/partial_view.rb +39 -0
- data/lib/unused_view/target_files.rb +25 -0
- data/lib/unused_view/version.rb +1 -1
- data/lib/unused_view/view.rb +17 -0
- metadata +8 -4
data/README.md
CHANGED
@@ -23,6 +23,8 @@ $ bundle exec rake 'unused_views[users]'
|
|
23
23
|
/Users/toqoz/Projects/ppp/app/views/articles/new.html.erb
|
24
24
|
/Users/toqoz/Projects/ppp/app/views/users/create.html.erb
|
25
25
|
/Users/toqoz/Projects/ppp/app/views/users/edit.html.erb
|
26
|
+
/Users/toqoz/Projects/ppp/app/views/users/_form.html.erb
|
27
|
+
/Users/toqoz/Projects/ppp/app/views/shared/_header.html.erb
|
26
28
|
|
27
29
|
```
|
28
30
|
|
@@ -35,6 +37,8 @@ irb(main):001:0> show_unused_views
|
|
35
37
|
/Users/toqoz/Projects/ppp/app/views/articles/new.html.erb
|
36
38
|
/Users/toqoz/Projects/ppp/app/views/users/create.html.erb
|
37
39
|
/Users/toqoz/Projects/ppp/app/views/users/edit.html.erb
|
40
|
+
/Users/toqoz/Projects/ppp/app/views/users/_form.html.erb
|
41
|
+
/Users/toqoz/Projects/ppp/app/views/shared/_header.html.erb
|
38
42
|
|
39
43
|
# if you use pry-rails
|
40
44
|
[1] pry(main)> show-unused-views
|
@@ -42,8 +46,17 @@ irb(main):001:0> show_unused_views
|
|
42
46
|
/Users/toqoz/Projects/ppp/app/views/articles/new.html.erb
|
43
47
|
/Users/toqoz/Projects/ppp/app/views/users/create.html.erb
|
44
48
|
/Users/toqoz/Projects/ppp/app/views/users/edit.html.erb
|
49
|
+
/Users/toqoz/Projects/ppp/app/views/users/_form.html.erb
|
50
|
+
/Users/toqoz/Projects/ppp/app/views/shared/_header.html.erb
|
45
51
|
```
|
46
52
|
|
47
53
|
then see list of unused views.
|
48
54
|
|
49
|
-
|
55
|
+
|
56
|
+
## Testing
|
57
|
+
|
58
|
+
```sh
|
59
|
+
$ cd path-to-unused-view
|
60
|
+
$ bundle install
|
61
|
+
$ rspec
|
62
|
+
```
|
data/lib/unused_view.rb
CHANGED
@@ -1,43 +1,15 @@
|
|
1
1
|
require 'unused_view/railtie'
|
2
|
+
require 'unused_view/view'
|
3
|
+
require 'unused_view/layout'
|
4
|
+
require 'unused_view/partial_view'
|
5
|
+
require 'unused_view/target_files'
|
2
6
|
|
3
7
|
module UnusedView
|
4
8
|
extend self
|
5
9
|
|
6
10
|
def find_all(base_path)
|
7
|
-
|
8
|
-
|
9
|
-
|
10
|
-
views + UnusedView.find_views(controller).compact + [ UnusedView.find_layout(controller) ].compact
|
11
|
-
end.map(&:identifier).uniq
|
12
|
-
|
13
|
-
ApplicationController.view_paths.reduce([]) do |unused_views, view_path|
|
14
|
-
unused_views + Dir.glob(File.join(view_path, '**/[a-zA-Z]*')).select do |f|
|
15
|
-
File.file?(f) && used_views.exclude?(f) && f[%r{^#{base_path}}]
|
16
|
-
end
|
17
|
-
end
|
18
|
-
end
|
19
|
-
end
|
20
|
-
|
21
|
-
def find_views(controller)
|
22
|
-
controller.action_methods.map do |action|
|
23
|
-
controller.lookup_context.find(action, controller._prefixes) rescue nil
|
24
|
-
end
|
25
|
-
end
|
26
|
-
|
27
|
-
def find_layout(controller)
|
28
|
-
name = layout_name(controller)
|
29
|
-
if name
|
30
|
-
controller.lookup_context.find(name, 'layouts') rescue nil
|
31
|
-
end
|
32
|
-
end
|
33
|
-
|
34
|
-
def layout_name(controller)
|
35
|
-
name = controller.send(:_layout) rescue nil
|
36
|
-
case name
|
37
|
-
when String
|
38
|
-
name
|
39
|
-
when ActionView::Template
|
40
|
-
File.basename(name.identifier).split('.').first
|
41
|
-
end
|
11
|
+
controllers = ApplicationController.descendants.map(&:new)
|
12
|
+
views = View.new(controllers).find_all + Layout.new(controllers).find_all
|
13
|
+
TargetFiles.new(base_path).all - views - PartialView.new(views).find_all
|
42
14
|
end
|
43
15
|
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
module UnusedView
|
4
|
+
class Layout
|
5
|
+
def initialize(controllers)
|
6
|
+
@controllers = controllers
|
7
|
+
end
|
8
|
+
|
9
|
+
def find_all
|
10
|
+
@controllers.reduce([]) do |layouts, controller|
|
11
|
+
if _name = name(controller)
|
12
|
+
begin
|
13
|
+
layouts << controller.lookup_context.find(_name, 'layouts')
|
14
|
+
rescue
|
15
|
+
layouts
|
16
|
+
end
|
17
|
+
else
|
18
|
+
layouts
|
19
|
+
end
|
20
|
+
end.uniq.compact.map(&:identifier)
|
21
|
+
end
|
22
|
+
|
23
|
+
def name(controller)
|
24
|
+
_name = controller.send(:_layout) rescue nil
|
25
|
+
case _name
|
26
|
+
when String
|
27
|
+
_name
|
28
|
+
when ActionView::Template
|
29
|
+
File.basename(_name.identifier).split('.').first
|
30
|
+
end
|
31
|
+
end
|
32
|
+
end
|
33
|
+
end
|
@@ -0,0 +1,39 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
module UnusedView
|
4
|
+
class PartialView
|
5
|
+
PATTERN = {
|
6
|
+
render: %r{\brender\s*(?:\(\s*)?},
|
7
|
+
partial: %r{:partial\s*=>\s*|partial:\s*},
|
8
|
+
filename: %r{[\w/]+?},
|
9
|
+
extention: %r{\.\w+}
|
10
|
+
}
|
11
|
+
|
12
|
+
def initialize(views)
|
13
|
+
@views = views
|
14
|
+
end
|
15
|
+
|
16
|
+
def find_all
|
17
|
+
@views.reduce([]) do |sum, view|
|
18
|
+
used_partials_by_view = File.open(view) { |f| f.read.split("\n") }.map do |line|
|
19
|
+
if line =~ %r[(?:#{PATTERN[:partial]}|#{PATTERN[:render]})(['"])/?(#{PATTERN[:filename]})#{PATTERN[:extention]}*\1]
|
20
|
+
$2 # virtual path. e.g. articles/form
|
21
|
+
end
|
22
|
+
end.compact.map do |vpath|
|
23
|
+
File.class_eval do
|
24
|
+
if vpath.index('/')
|
25
|
+
path = ApplicationController.view_paths.map do |view_path|
|
26
|
+
File.join(view_path.to_s, vpath)
|
27
|
+
end.select { |f| File.exists?(File.dirname(f)) }.first || vpath
|
28
|
+
else
|
29
|
+
path = view
|
30
|
+
end
|
31
|
+
filename = "_#{basename(vpath)}.#{basename(view).split('.')[1..-1].join('.')}"
|
32
|
+
expand_path(join(dirname(path), filename)).to_s
|
33
|
+
end
|
34
|
+
end
|
35
|
+
sum + used_partials_by_view
|
36
|
+
end.uniq
|
37
|
+
end
|
38
|
+
end
|
39
|
+
end
|
@@ -0,0 +1,25 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
module UnusedView
|
4
|
+
class TargetFiles
|
5
|
+
def initialize(path)
|
6
|
+
@path = path
|
7
|
+
end
|
8
|
+
|
9
|
+
def all
|
10
|
+
views + partial_views
|
11
|
+
end
|
12
|
+
|
13
|
+
def views
|
14
|
+
ApplicationController.view_paths.reduce([]) do |sum, view_path|
|
15
|
+
sum + Dir[File.join(view_path, '**/[a-zA-Z]*')].select { |f| File.file?(f) && f[%r{^#{@path}}] }
|
16
|
+
end
|
17
|
+
end
|
18
|
+
|
19
|
+
def partial_views
|
20
|
+
ApplicationController.view_paths.reduce([]) do |sum, view_path|
|
21
|
+
sum + Dir[File.join(view_path, '**/_*')].select { |f| File.file?(f) && f[%r{^#{@path}}] }
|
22
|
+
end
|
23
|
+
end
|
24
|
+
end
|
25
|
+
end
|
data/lib/unused_view/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
# -*- coding: utf-8 -*-
|
2
|
+
|
3
|
+
module UnusedView
|
4
|
+
class View
|
5
|
+
def initialize(controllers)
|
6
|
+
@controllers = controllers
|
7
|
+
end
|
8
|
+
|
9
|
+
def find_all
|
10
|
+
@controllers.reduce([]) do |views, controller|
|
11
|
+
views + controller.action_methods.map do |action|
|
12
|
+
controller.lookup_context.find(action, controller._prefixes) rescue nil
|
13
|
+
end
|
14
|
+
end.uniq.compact.map(&:identifier)
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
metadata
CHANGED
@@ -2,14 +2,14 @@
|
|
2
2
|
name: unused_view
|
3
3
|
version: !ruby/object:Gem::Version
|
4
4
|
prerelease:
|
5
|
-
version: 0.0.
|
5
|
+
version: 0.0.4
|
6
6
|
platform: ruby
|
7
7
|
authors:
|
8
8
|
- Takatoshi Matsumoto
|
9
9
|
autorequire:
|
10
10
|
bindir: bin
|
11
11
|
cert_chain: []
|
12
|
-
date: 2012-12-
|
12
|
+
date: 2012-12-26 00:00:00.000000000 Z
|
13
13
|
dependencies:
|
14
14
|
- !ruby/object:Gem::Dependency
|
15
15
|
type: :runtime
|
@@ -84,9 +84,13 @@ extra_rdoc_files: []
|
|
84
84
|
files:
|
85
85
|
- lib/unused_view/commands/show_unused_views.rb
|
86
86
|
- lib/unused_view/commands.rb
|
87
|
+
- lib/unused_view/layout.rb
|
88
|
+
- lib/unused_view/partial_view.rb
|
87
89
|
- lib/unused_view/railtie.rb
|
90
|
+
- lib/unused_view/target_files.rb
|
88
91
|
- lib/unused_view/tasks.rake
|
89
92
|
- lib/unused_view/version.rb
|
93
|
+
- lib/unused_view/view.rb
|
90
94
|
- lib/unused_view.rb
|
91
95
|
- MIT-LICENSE
|
92
96
|
- Rakefile
|
@@ -104,7 +108,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
104
108
|
- !ruby/object:Gem::Version
|
105
109
|
segments:
|
106
110
|
- 0
|
107
|
-
hash:
|
111
|
+
hash: 2956511099555490744
|
108
112
|
version: '0'
|
109
113
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
110
114
|
none: false
|
@@ -113,7 +117,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
113
117
|
- !ruby/object:Gem::Version
|
114
118
|
segments:
|
115
119
|
- 0
|
116
|
-
hash:
|
120
|
+
hash: 2956511099555490744
|
117
121
|
version: '0'
|
118
122
|
requirements: []
|
119
123
|
rubyforge_project:
|