Sha256: b061f7d2986b167031b05c3674bc8768b2026b9164ca95388f7533427dab49c8

Contents?: true

Size: 953 Bytes

Versions: 2

Compression:

Stored size: 953 Bytes

Contents

# A bolt, referenced by a key, is the basic unit needed to access a lightning command's functionality.
class Lightning
  class Bolt
    attr_reader :key
    def initialize(bolt_key)
      @key = bolt_key
    end
    
    def completions
      completion_map.keys
    end
    
    def completion_map
      @completion_map ||= Lightning::CompletionMap.new(self.paths,
        :global_aliases=>Lightning.config[:aliases], 
        :aliases=>Lightning.config_command(Lightning.current_command)['aliases'])
    end
    
    def resolve_completion(basename)
      basename = basename.join(" ") if basename.is_a?(Array)
      basename.gsub!(/\s*#{TEST_FLAG}\s*/,'')
      #TODO
      # if (regex = Lightning.config_command(Lightning.current_command)['completion_regex'])
      #   basename = basename[/#{regex}/]
      # end
      completion_map[basename] || ''
    end
    
    def paths
      @paths ||= Lightning.config[:paths][key] || []
    end
  end
end

Version data entries

2 entries across 2 versions & 2 rubygems

Version Path
cldwalker-lightning-0.2.0 lib/lightning/bolt.rb
lightning-0.2.1 lib/lightning/bolt.rb