aboutsummaryrefslogtreecommitdiff
path: root/vim/plugin/vim-rspec.vim
diff options
context:
space:
mode:
authorBen Beltran <ben@freshout.us>2013-06-05 10:50:57 -0500
committerBen Beltran <ben@freshout.us>2013-06-05 10:50:57 -0500
commitfe337504f2fb3ded76326b1e3d4d02787a27d853 (patch)
treeb84891d78de37ae078ea9850a541799b5bca8085 /vim/plugin/vim-rspec.vim
parente23d7a9f7363bdc69e95a1df31e093db15459fcf (diff)
Aand that's all the plugins.
Diffstat (limited to 'vim/plugin/vim-rspec.vim')
-rw-r--r--vim/plugin/vim-rspec.vim174
1 files changed, 0 insertions, 174 deletions
diff --git a/vim/plugin/vim-rspec.vim b/vim/plugin/vim-rspec.vim
deleted file mode 100644
index edc7145..0000000
--- a/vim/plugin/vim-rspec.vim
+++ /dev/null
@@ -1,174 +0,0 @@
-"
-" Vim Rspec
-" Last change: March 5 2009
-" Version> 0.0.5
-" Maintainer: Eustáquio 'TaQ' Rangel
-" License: GPL
-" URL: git://github.com/taq/vim-rspec
-"
-" Script to run the spec command inside Vim
-" To install, unpack the files on your ~/.vim directory and source it
-"
-" The following options can be set/overridden in your .vimrc
-" * g:RspecXSLPath :: Path to xsl file
-" * g:RspecRBFilePath :: Path to vim-rspec.rb
-" * g:RspecBin :: Rspec binary command (in rspec 2 this is 'rspec')
-" * g:RspecOpts :: Opts to send to rspec call
-
-let s:xsltproc_cmd = ""
-let s:grep_cmd = ""
-let s:hpricot_cmd = ""
-let s:xslt = 0
-let s:hpricot = 0
-let s:helper_dir = expand("<sfile>:h")
-
-function! s:find_xslt()
- return system("xsltproc --version | head -n1")
-endfunction
-
-function! s:find_grep()
- return system("grep --version | head -n1")
-endfunction
-
-function! s:find_hpricot()
- return system("gem search -i hpricot")
-endfunction
-
-function! s:error_msg(msg)
- echohl ErrorMsg
- echo a:msg
- echohl None
-endfunction
-
-function! s:notice_msg(msg)
- echohl MoreMsg
- echo a:msg
- echohl None
-endfunction
-
-function! s:fetch(varname, default)
- if exists("g:".a:varname)
- return eval("g:".a:varname)
- else
- return a:default
- endif
-endfunction
-
-function! s:RunSpecMain(type)
- if len(s:xsltproc_cmd)<1
- let s:xsltproc_cmd = s:find_xslt()
- let s:xslt = match(s:xsltproc_cmd,'\d')>=0
- end
- if len(s:hpricot_cmd)<1
- let s:hpricot_cmd = s:find_hpricot()
- let s:hpricot = match(s:hpricot_cmd,'true')>=0
- end
- if !s:hpricot && !s:xslt
- call s:error_msg("You need the hpricot gem or xsltproc to run this script.")
- return
- end
- if len(s:grep_cmd)<1
- let s:grep_cmd = s:find_grep()
- if match(s:grep_cmd,'\d')<0
- call s:error_msg("You need grep to run this script.")
- return
- end
- end
- let l:bufn = bufname("%")
-
- " find the installed rspec command
- let l:default_cmd = ""
- if executable("spec")==1
- let l:default_cmd = "spec"
- elseif executable("rspec")==1
- let l:default_cmd = "rspec"
- end
-
- " filters
- let l:xsl = s:fetch("RspecXSLPath", s:helper_dir."/vim-rspec.xsl")
- let l:rubys = s:fetch("RspecRBPath", s:helper_dir."/vim-rspec.rb")
-
- " hpricot gets the priority
- let l:type = s:hpricot ? "hpricot" : "xsltproc"
- let l:filter = s:hpricot ? "ruby ".l:rubys : "xsltproc --novalid --html ".l:xsl." - "
-
- " run just the current file
- if a:type=="file"
- if match(l:bufn,'_spec.rb')>=0
- call s:notice_msg("Running spec on the current file with ".l:type." ...")
- let l:spec_bin = s:fetch("RspecBin",l:default_cmd)
- let l:spec_opts = s:fetch("RspecOpts", "")
- let l:spec = l:spec_bin . " " . l:spec_opts . " -f h " . l:bufn
- else
- call s:error_msg("Seems ".l:bufn." is not a *_spec.rb file")
- return
- end
- else
- let l:dir = expand("%:p:h")
- if isdirectory(l:dir."/spec")>0
- call s:notice_msg("Running spec on the spec directory with ".l:type." ...")
- else
- " try to find a spec directory on the current path
- let l:tokens = split(l:dir,"/")
- let l:dir = ""
- for l:item in l:tokens
- call remove(l:tokens,-1)
- let l:path = "/".join(l:tokens,"/")."/spec"
- if isdirectory(l:path)
- let l:dir = l:path
- break
- end
- endfor
- if len(l:dir)>0
- call s:notice_msg("Running spec with ".l:type." on the spec directory found (".l:dir.") ...")
- else
- call s:error_msg("No ".l:dir."/spec directory found")
- return
- end
- end
- if isdirectory(l:dir)<0
- call s:error_msg("Could not find the ".l:dir." directory.")
- return
- end
- let l:spec = s:fetch("RspecBin", "spec") . s:fetch("RspecOpts", "")
- let l:spec = l:spec . " -f h " . l:dir . " -p **/*_spec.rb"
- end
-
- " run the spec command
- let s:cmd = l:spec." | ".l:filter." 2> /dev/null | grep \"^[-\+\[\\#\\* ]\""
- echo
-
- " put the result on a new buffer
- silent exec "new"
- setl buftype=nofile
- silent exec "r! ".s:cmd
- setl syntax=vim-rspec
- silent exec "nnoremap <buffer> <cr> :call <SID>TryToOpen()<cr>"
- silent exec "nnoremap <buffer> q :q<CR>"
- setl foldmethod=expr
- setl foldexpr=getline(v:lnum)=~'^\+'
- setl foldtext=\"+--\ \".string(v:foldend-v:foldstart+1).\"\ passed\ \"
- call cursor(1,1)
-endfunction
-
-function! s:TryToOpen()
- let l:line = getline(".")
- if match(l:line,'^ [\/\.]')<0
- call s:error_msg("No file found.")
- return
- end
- let l:tokens = split(l:line,":")
- silent exec "sp ".substitute(l:tokens[0],'/^\s\+',"","")
- call cursor(l:tokens[1],1)
-endfunction
-
-function! RunSpec()
- call s:RunSpecMain("file")
-endfunction
-
-function! RunSpecs()
- call s:RunSpecMain("dir")
-endfunction
-
-command! RunSpec call RunSpec()
-command! RunSpecs call RunSpecs()