From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 27374 invoked by alias); 30 Dec 2010 22:41:29 -0000 Mailing-List: contact zsh-workers-help@zsh.org; run by ezmlm Precedence: bulk X-No-Archive: yes List-Id: Zsh Workers List List-Post: List-Help: X-Seq: 28557 Received: (qmail 5346 invoked from network); 30 Dec 2010 22:41:26 -0000 X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on f.primenet.com.au X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00 autolearn=ham version=3.3.1 Received-SPF: none (ns1.primenet.com.au: domain at altlinux.org does not designate permitted sender hosts) From: "Alexey I. Froloff" To: Zsh list Subject: [PATCH] Completion/Unix/Commands/_ri: updated for Ruby 1.9.2 Date: Fri, 31 Dec 2010 01:41:22 +0300 Message-Id: <1293748882-3197-1-git-send-email-raorn@altlinux.org> X-Mailer: git-send-email 1.7.3.2 In Ruby 1.9.2 extension of compiled RI files changed from .yaml to .ri, choose extension accorting to RI version. "plain" formatter was removed, use "bs" formatter and filter output through "col". Signed-off-by: Alexey I. Froloff --- Completion/Unix/Command/_ri | 18 ++++++++++++------ 1 files changed, 12 insertions(+), 6 deletions(-) diff --git a/Completion/Unix/Command/_ri b/Completion/Unix/Command/_ri index a7f2692..7474374 100644 --- a/Completion/Unix/Command/_ri +++ b/Completion/Unix/Command/_ri @@ -21,17 +21,23 @@ _arguments \ '*:ri name:->ri-name' && ret=0 if [[ "$state" = ri-name ]]; then - local -a ri_dirs ri_names ri_wants ri_names + local -a ri_dirs ri_ext ri_names ri_wants ri_names local class_dir esc_name dir curtag tag descr expl ret=1 - if "ruby${words[1]#ri}" -rrdoc/ri/ri_options.rb -e 1 >/dev/null 2>&1; then + if "ruby${words[1]#ri}" -rrdoc/ri/ri_options -e 1 >/dev/null 2>&1; then # Old-style Ruby 1.8.x RI ri_dirs=( ${(f)"$(_call_program ri-names "ruby${words[1]#ri}" -rrdoc/ri/ri_options -e '"o = RI::Options.instance; o.parse(ARGV); o.path.each { |p| puts p }"' -- ${(kv)opt_args[(I)-d|--doc-dir|--(system|site|gems|home)]})"} ) + ri_ext=yaml + elif "ruby${words[1]#ri}" -rrdoc/ri -rrdoc/ri/store -e 1 >/dev/null 2>&1; then + # Newer-style Ruby 1.9.2 RI + ri_dirs=( ${(f)"$(_call_program ri-names "$words[1]" ${(kv)opt_args[(I)-d|--doc-dir|--((no-|)(system|site|gems|home)|standard-docs)]} --list-doc-dirs -f plain -T)"} ) + ri_ext=ri else # New-style Ruby 1.9+ RI ri_dirs=( ${(f)"$(_call_program ri-names "$words[1]" ${(kv)opt_args[(I)-d|--doc-dir|--((no-|)(system|site|gems|home)|standard-docs)]} --list-doc-dirs -f plain -T)"} ) + ri_ext=yaml fi if compset -P '?*(::|\#|.)'; then @@ -64,14 +70,14 @@ if [[ "$state" = ri-name ]]; then ;; (class-methods) for dir in $ri_dirs[@]; do - fnames=( $dir/$class_dir*-c.yaml(-.:t) ) - ri_wants+=( ${${fnames%-c.yaml}//(#b)%(??)/$(print "\\x$match[1]")} ) + fnames=( $dir/$class_dir*-c.$ri_ext(-.:t) ) + ri_wants+=( ${${fnames%-c.$ri_ext}//(#b)%(??)/$(print "\\x$match[1]")} ) done ;; (instance-methods) for dir in $ri_dirs[@]; do - fnames=( $dir/$class_dir*-i.yaml(-.:t) ) - ri_wants+=( ${${fnames%-i.yaml}//(#b)%(??)/$(print "\\x$match[1]")} ) + fnames=( $dir/$class_dir*-i.$ri_ext(-.:t) ) + ri_wants+=( ${${fnames%-i.$ri_ext}//(#b)%(??)/$(print "\\x$match[1]")} ) done ;; esac -- 1.7.3.2