#!/usr/bin/env ruby require 'rrb/completion' if $0 == __FILE__ then def print_usage print "\ Usage: rrb_compinfo INFOTYPE IOTYPE INFOTYPE * --methods-local-vars * --methods * --bare-methods * --classes * --classes-instance-vars * --classes-class-vars * --gloval-vars * --constants IOTYPE * --stdin-stdout * --filein-stdout FILES.. * --marshalin-stdout FILE " end if ARGV.size == 0 || ARGV[0] == '--help' then print_usage exit end infotype = ARGV.shift if ARGV[0] == '--target' then ARGV.shift target = ARGV.shift end case ARGV.shift when '--stdin-stdout' script = RRB::Script.new_from_io( STDIN ) when '--filein-stdout' script = RRB::Script.new_from_filenames( *ARGV ) when '--marshalin-stdout' script = RRB::Script.new_from_marshal(ARGV.shift) end case infotype when '--methods-local-vars' script.refactable_methods.each do |method| print method.name, ';' print method.local_vars.to_a.join(",") print "\n" end when '--local-vars' script.refactable_methods.each do |method| if method.name == target print method.local_vars.to_a.join(",") end end when '--instance-vars' script.refactable_classes_instance_vars.each do |classname,ivars| if classname == target print ivars.to_a.join(','), "\n" end end when '--class-vars' script.refactable_classes_class_vars.each do |classname, cvars| if classname == target print cvars.to_a.join(','), "\n" end end when '--bare-methods' script.refactable_methods.map{|m| m.bare_name}.sort.uniq.each do |method| print method,"," end print "\n" when '--methods' script.refactable_methods.each do |method| print method.name, ',' end when '--classes' script.refactable_classes.each do |klass| print klass, "," end when '--classes-instance-vars' script.refactable_classes_instance_vars.each do |classname,ivars| print classname, ';', ivars.to_a.join(','), "\n" end when '--classes-class-vars' script.refactable_classes_class_vars.each do |classname, cvars| print classname, ';', cvars.to_a.join(','), "\n" end when '--global-vars' script.refactable_global_vars.each do |var| print var, "," end when '--constants' script.refactable_consts.each do |const| print const, "," end end end