Skip to content

Commit 4823f88

Browse files
committed
Gratuitous s:findview() refactoring
1 parent 5d973d4 commit 4823f88

File tree

1 file changed

+18
-36
lines changed

1 file changed

+18
-36
lines changed

autoload/rails.vim

Lines changed: 18 additions & 36 deletions
Original file line numberDiff line numberDiff line change
@@ -2031,15 +2031,12 @@ function! s:RailsIncludefind(str,...)
20312031
elseif line =~# '\<def\s\+' && expand("%:t") =~# '_controller\.rb'
20322032
let str = s:sub(s:sub(RailsFilePath(),'/controllers/','/views/'),'_controller\.rb$','/'.str)
20332033
" FIXME: support nested extensions
2034-
let vt = s:view_types.","
2035-
while vt != ""
2036-
let t = matchstr(vt,'[^,]*')
2037-
let vt = s:sub(vt,'[^,]*,','')
2038-
if filereadable(str.".".t)
2034+
for t in split(s:view_types,',')
2035+
if filereadable(str.format.'.'.t)
20392036
let str .= '.'.t
20402037
break
20412038
endif
2042-
endwhile
2039+
endfor
20432040
elseif str =~# '_\%(path\|url\)$' || (line =~# ':as\s*=>\s*$' && RailsFileType() =~# '^config-routes\>')
20442041
if line !~# ':as\s*=>\s*$'
20452042
let str = s:sub(str,'_%(path|url)$','')
@@ -2550,42 +2547,27 @@ function! s:viewEdit(cmd,...)
25502547
endfunction
25512548

25522549
function! s:findview(name)
2553-
" TODO: full support of nested extensions
2554-
let c = a:name
2555-
let pre = "app/views/"
2556-
let file = ""
2557-
if c !~ '/'
2558-
let controller = s:controller(1)
2550+
let self = rails#buffer()
2551+
let name = a:name
2552+
let pre = 'app/views/'
2553+
if name !~# '/'
2554+
let controller = self.controller_name(1)
25592555
if controller != ''
2560-
let c = controller.'/'.c
2556+
let name = controller.'/'.name
25612557
endif
25622558
endif
2563-
if c =~ '\.\w\+\.\w\+$' || c =~ '\.'.s:viewspattern().'$'
2564-
return pre.c
2565-
elseif rails#app().has_file(pre.c.".rhtml")
2566-
let file = pre.c.".rhtml"
2567-
elseif rails#app().has_file(pre.c.".rxml")
2568-
let file = pre.c.".rxml"
2559+
if name =~# '\.\w\+\.\w\+$' || name =~# '\.'.s:viewspattern().'$'
2560+
return pre.name
25692561
else
2570-
let format = "." . s:format('html')
2571-
let vt = s:view_types.","
2572-
while 1
2573-
while vt != ""
2574-
let t = matchstr(vt,'[^,]*')
2575-
let vt = s:sub(vt,'[^,]*,','')
2576-
if rails#app().has_file(pre.c.format.".".t)
2577-
let file = pre.c.format.".".t
2578-
break
2562+
for format in ['.'.self.format('html'), '']
2563+
for type in split(s:view_types,',')
2564+
if self.app().has_file(pre.name.format.'.'.type)
2565+
return pre.name.format.'.'.type
25792566
endif
2580-
endwhile
2581-
if format == '' || file != ''
2582-
break
2583-
else
2584-
let format = ''
2585-
endif
2586-
endwhile
2567+
endfor
2568+
endfor
25872569
endif
2588-
return file
2570+
return ''
25892571
endfunction
25902572

25912573
function! s:findlayout(name)

0 commit comments

Comments
 (0)