Class: Toys::Utils::CompletionEngine::Bash
- Inherits:
 - 
      Object
      
        
- Object
 - Toys::Utils::CompletionEngine::Bash
 
 
- Defined in:
 - lib/toys/utils/completion_engine.rb
 
Overview
A completion engine for bash.
Instance Method Summary collapse
- 
  
    
      #initialize(cli)  ⇒ Bash 
    
    
  
  
  
    constructor
  
  
  
  
  
  
  
    
Create a bash completion engine.
 - 
  
    
      #run  ⇒ Integer 
    
    
  
  
  
  
  
  
  
  
  
    
Perform completion in the current shell environment, which must include settings for the
COMP_LINEandCOMP_POINTenvironment variables. 
Constructor Details
#initialize(cli) ⇒ Bash
Create a bash completion engine.
      21 22 23 24  | 
    
      # File 'lib/toys/utils/completion_engine.rb', line 21 def initialize(cli) require "shellwords" @cli = cli end  | 
  
Instance Method Details
#run ⇒ Integer
Perform completion in the current shell environment, which must
include settings for the COMP_LINE and COMP_POINT environment
variables. Prints out completion candidates, one per line, and
returns a status code indicating the result.
- 0 for success.
 - 1 if completion failed.
 - 2 if the environment is incorrect (e.g. expected environment variables not found)
 
      39 40 41 42 43 44 45 46 47 48 49 50 51 52  | 
    
      # File 'lib/toys/utils/completion_engine.rb', line 39 def run return 2 if !::ENV.key?("COMP_LINE") || !::ENV.key?("COMP_POINT") line = ::ENV["COMP_LINE"].to_s point = ::ENV["COMP_POINT"].to_i point = line.length if point.negative? line = line[0, point] completions = run_internal(line) if completions completions.each { |completion| puts completion } 0 else 1 end end  |