module Bond::Rc

Namespace in which completion files, ~/.bondrc and ~/.bond/completions/*.rb, are evaluated. Methods in this module and Search are the DSL in completion files and can be used within completion actions.

Example ~/.bondrc

# complete arguments for any object's :respond_to?
complete(:method => "Object#respond_to?") {|e| e.object.methods }
# complete arguments for any module's :public
complete(:method => "Module#public") {|e| e.object.instance_methods }

# Share generate_tags action across completions
complete(:method => "edit_tags", :action => :generate_tags)
complete(:method => "delete_tags", :search => false) {|e| generate_tags(e).grep(/#{e}/i) }

def generate_tags(input)
 ...
end

Public Instance Methods

complete(*args, &block) click to toggle source

See {Bond#complete}

# File lib/bond/rc.rb, line 22
def complete(*args, &block); M.complete(*args, &block); end
eval(str) click to toggle source

Calls eval with Bond::Mission.current_eval, rescuing any exceptions to return nil. If Bond#config is true, exceptions are raised again.

# File lib/bond/rc.rb, line 42
def eval(str)
  Mission.current_eval(str)
rescue Exception
  raise if Bond.config[:debug]
end
files(input) click to toggle source

Action method with search which returns array of files that match current input.

# File lib/bond/rc.rb, line 27
def files(input)
  (::Readline::FILENAME_COMPLETION_PROC.call(input) || []).map {|f|
    f =~ /^~/ ?  File.expand_path(f) : f
  }
end
objects_of(klass) click to toggle source

Helper method which returns objects of a given class.

# File lib/bond/rc.rb, line 34
def objects_of(klass)
  object = []
  ObjectSpace.each_object(klass) {|e| object.push(e) }
  object
end
recomplete(*args, &block) click to toggle source

See {Bond#recomplete}

# File lib/bond/rc.rb, line 24
def recomplete(*args, &block); M.recomplete(*args, &block); end