Sha256: deecb76e07a46a8a62d6a1d7bb7fcfea9f0d1252e191b5c8d70cdb34a19f5a5d

Contents?: true

Size: 811 Bytes

Versions: 1

Compression:

Stored size: 811 Bytes

Contents

# derived from http://github.com/ryanb/dotfiles/tree/master/bash/completion_scripts/project_completion
#This class handles completions given a path key and the text already typed.
class Lightning
  class Completion
    def self.complete(text_to_complete, bolt_key)
      new(text_to_complete, bolt_key).matches
    end
      
    def initialize(text_typed, bolt_key)
      @text_typed = text_typed
      @bolt_key = bolt_key
    end
  
    def matches
      possible_completions.select do |e|
        e[0, typed.length] == typed
      end
    end
  
    def typed
      # @text_typed[/\s(.+?)$/, 1] || ''
      text = @text_typed[/^(\S+)\s+(#{Lightning::TEST_FLAG})?\s*(.+?)$/, 3] || ''
      text.strip
    end
  
    def possible_completions
      Lightning.bolts[@bolt_key].completions
    end    
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
cldwalker-lightning-0.1.2 lib/lightning/completion.rb