Created
July 24, 2014 13:18
-
-
Save rummelonp/1281943725027d2aad41 to your computer and use it in GitHub Desktop.
rspec コマンドの zsh 補完
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#compdef rspec | |
# ------------------------------------------------------------------------------ | |
# Description | |
# ----------- | |
# | |
# Completion script for Ruby on Rails (http://rubyonrails.org/). | |
# | |
# ------------------------------------------------------------------------------ | |
# Authors | |
# ------- | |
# | |
# * Kazuya Takeshima (https://github.com/mitukiii) | |
# | |
# ------------------------------------------------------------------------------ | |
_rspec() { | |
local context state line curcontext="$curcontext" | |
_arguments \ | |
-C \ | |
-I'[Specify PATH to add to $LOAD_PATH (may be used more than once)]:PATH:_files' \ | |
'*'{-r,--require}'[Require a file]:PATH:_files' \ | |
'*'{-O,--options}'[Specify the path to a custom options file]:PATH:_files' \ | |
--order'[Run examples by the specified order type]: :->order' \ | |
--seed'[Equivalent of --order rand:SEED]: :_guard "[[\:digit\:]]#" "SEED"' \ | |
--fail-fast'[Abort the run on first failure]' \ | |
--no-fail-fast'[Do not abort the run on first failure]' \ | |
--failure-exit-code'[Override the exit code used when there are failing specs]: :_guard "[[\:digit\:]]#" "CODE"' \ | |
--dry-run'[Print the formatter output of your suite without running any examples or hooks]' \ | |
'(-X --drb)'{-X,--drb}'[Run examples via DRb]' \ | |
--drb-port'[Port to connect to the DRb server]: :_guard "[[\:digit\:]]#" "PORT"' \ | |
'(-f --format)'{-f,--format}'[Choose a formatter]:FORMATTER:(progress documentation html json)' \ | |
'(-o --out)'{-o,--out}'[Write output to a file instead of $stdout]:FILE:_files' \ | |
--deprecation-out'[Write deprecation warnings to a file instead of $stderr]:FILE:_files' \ | |
'(-b --backtrace)'{-b,--backtrace}'[Enable full backtrace]' \ | |
'(-c --color)'{-c,--color}'[Enable color in the output]' \ | |
'(-p --profile)'{-p,--profile}'[Enable profiling of examples and list the slowest examples (default: 10)]: :_guard "[[\:digit\:]]#" "COUNT"' \ | |
'(-w --warnings)'{-w,--warnings}'[Enable ruby warnings]' \ | |
'(-P --pattern)'{-P,--pattern}'[Load files matching pattern (default: "spec/**/*_spec.rb")]:PATTERN:' \ | |
'(-e --example)'{-e,--example}'[Run examples whose full nested names include STRING (may be used more than once)]:STRING:' \ | |
'(-t --tag)'{-t,--tag}'[Run examples with the specified tag, or exclude examples by adding ~ before the tag]: :->tag' \ | |
--default-path'[Set the default path where RSpec looks for examples (can be a path to a file or a directory)]:PATH:_files' \ | |
'(- *)'--init'[Initialize your project with RSpec]' \ | |
'(- *)'{-h,--help}"[You're looking at it]" \ | |
'(- *)'{-v,--version}'[Display the version]' \ | |
'*:files or directories:_files' | |
case "$state" in | |
order) | |
if compset -P '*:'; then | |
_guard '[[:digit:]]#' 'SEED' | |
else | |
_values \ | |
'TYPE[:SEED]' \ | |
defined'[examples and groups are run in the order they are defined]' \ | |
rand'[randomize the order of groups and examples]' \ | |
random'[alias for rand]' | |
fi | |
;; | |
tag) | |
if compset -P '*:'; then | |
_message 'VALUE' | |
else | |
_message 'TAG[:VALUE]' | |
fi | |
;; | |
esac | |
} | |
_rspec "$@" | |
# Local Variables: | |
# mode: Shell-Script | |
# sh-indentation: 2 | |
# indent-tabs-mode: nil | |
# sh-basic-offset: 2 | |
# End: | |
# vim: ft=zsh sw=2 ts=2 et |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment