about summary refs log tree commit diff
path: root/Completion/Unix/Command/_ruby
blob: d0f3c3eb0f91005fa64ce6523414e96500cac5ee (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
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
#compdef ruby -P -value-,RUBY(LIB|OPT|PATH),-default-

# ruby 1.8.0 (2003-08-14) [i686-linux]

local curcontext="$curcontext" state line expl ret=1
typeset -A opt_args

local -a args
args=(
  '(-)1:script file:->script'
  '*::script argument: _normal'
)

case "$service" in
  *RUBY(LIB|PATH)*)
    _dir_list && return 0
  ;;
  *RUBYOPT*)
    compset -q
    words=( fake "$words[@]" )
    (( CURRENT++ ))
    args=()
  ;;
esac

_arguments -C -s -S \
  '-0-[specify record separator]:input record separator in octal (default \0):' \
  '-a[autosplit mode with -n or -p (splits $_ into $F)]' \
  '-c[check syntax only]' \
  '-C+[cd to directory, before executing your script]:directory:_files -/' \
  '(-d --debug)'{-d,--debug}'[set debugging flags (set $DEBUG to true)]' \
  "(1)*-e+[one line of script (several -e's allowed, omit program file)]:one line of script:" \
  '-F-[split() pattern for autosplit (-a)]:input field separator:' \
  '-i-[edit ARGV files in place (make backup if extension supplied)]:suffix for in-place-edit mode:(.bak)' \
  '*-I+[specify $LOAD_PATH directory (may be used more than once)]:library directory:_files -/' \
  '-K-[specifies KANJI (Japanese) code-set]:KANJI encoding:((e\:EUC-JP s\:Shift_JIS u\:UTF-8 N\:None))' \
  "-l[assume 'while gets(); ... end' loop around your script]" \
  "(-p)-n[assume 'while gets(); ... end' loop around your script]" \
  '(-n)-p[assume loop like -n but print line also like sed]' \
  '*-r+[require the library, before executing your script]:library name:->library' \
  '-s[enable some switch parsing for switches after script name]' \
  '-S[look for the script using PATH environment variable]' \
  '-T-[turn on tainting checks]:taint level (default 0):((0\:strings\ from\ streams/environment/ARGV\ are\ tainted 1\:no\ dangerous\ operation\ by\ tainted\ value 2\:process/file\ operations\ prohibited 3\:all\ generated\ objects\ are\ tainted 4\:no\ global\ \(non-tainted\)\ variable\ modification/no\ direct\ output))' \
  '(-v --verbose)'{-v,--verbose}'[print version number, then turn on verbose mode]' \
  '-w[turn warnings on for your script]' \
  '-W-[set warning level]:warning level (default 2):((0\:silent 1\:medium 2\:verbose))' \
  '(-y --yydebug)'{-y,--yydebug}'[enable yacc debugging in the parser]' \
  '-x-[strip off text before #!ruby line and perhaps cd to directory]:directory:_files -/' \
  '(1 * -)--copyright[print the copyright]' \
  '(1 * -)'{-h,--help}'[print help message]' \
  '(1 * -)--version[print the version]' \
  "$args[@]" && ret=0

case $state in
  library)
    local -a dirs
    dirs=($(_call_program directories $words[1] -e 'puts\ \$:'))
    _wanted directories expl library _path_files -W dirs && ret=0
  ;;
esac

return ret