blob: b4e08f4af26d7769f099381fca4048850aa18b65 (
plain) (
blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
|
hook global KakBegin .* %{
declare-user-mode code-ruby
map global code r ': enter-user-mode code-ruby<ret>' -docstring 'Ruby'
}
hook global BufSetOption filetype=(?:ruby) %{
map global code-ruby t ': rails-edit-test<ret>' -docstring 'Open relevant spec file'
}
define-command rails-edit-test %{
evaluate-commands %sh{
open_spec_matching() {
in_pattern="$1"
out_pattern="$2"
pattern=$(sed -E "s#.*/app/${in_pattern}[.]rb#${out_pattern}#" <<< "$kak_buffile");
if [ ! -z "$pattern" ] && [ ! "$kak_buffile" = "$pattern" ]; then
echo "findfzf-filtered 'spec/.*$pattern.*'"
else
echo "info 'unrecognized file'"
fi
}
case "$kak_buffile" in
*_controller.rb) open_spec_matching '.*/(\w+)_controller' 'requests/.*\1' ;;
*)
open_spec_matching \
'(queries|interactors|domain|mailers|dashboards|presenters|validators|models|lib).*/((\w+/)?\w+)' \
'\1.*\2'
;;
esac
}
}
|