Class: UnusedView::PartialView
- Inherits:
-
Object
- Object
- UnusedView::PartialView
- Defined in:
- lib/unused_view/partial_view.rb
Constant Summary collapse
- PATTERN =
{ render: %r{\brender\s*(?:\(\s*)?}, partial: %r{:partial\s*=>\s*|partial:\s*}, filename: %r{[\w/]+?}, extention: %r{\.\w+} }
Instance Method Summary collapse
- #find_all ⇒ Object
-
#initialize(views) ⇒ PartialView
constructor
A new instance of PartialView.
Constructor Details
#initialize(views) ⇒ PartialView
Returns a new instance of PartialView.
12 13 14 |
# File 'lib/unused_view/partial_view.rb', line 12 def initialize(views) @views = views end |
Instance Method Details
#find_all ⇒ Object
16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 |
# File 'lib/unused_view/partial_view.rb', line 16 def find_all @views.reduce([]) do |sum, view| used_partials_by_view = File.open(view) { |f| f.read.split("\n") }.map do |line| if line =~ %r[(?:#{PATTERN[:partial]}|#{PATTERN[:render]})(['"])/?(#{PATTERN[:filename]})#{PATTERN[:extention]}*\1] $2 # virtual path. e.g. articles/form end end.compact.map do |vpath| File.class_eval do if vpath.index('/') path = ApplicationController.view_paths.map do |view_path| File.join(view_path.to_s, vpath) end.select { |f| File.exists?(File.dirname(f)) }.first || vpath else path = view end filename = "_#{basename(vpath)}.#{basename(view).split('.')[1..-1].join('.')}" (join(dirname(path), filename)).to_s end end sum + used_partials_by_view end.uniq end |