module Bashly::Completions
This is a `Command` concern responsible for providing bash completion data
Public Instance Methods
completion_data(with_version: true)
click to toggle source
# File lib/bashly/concerns/completions.rb, line 6 def completion_data(with_version: true) result = { full_name => completion_words(with_version: with_version) } commands.each do |command| result.merge! command.completion_data(with_version: false) end result end
completion_function(name = nil)
click to toggle source
# File lib/bashly/concerns/completions.rb, line 20 def completion_function(name = nil) completion_generator.wrapper_function(name) end
completion_script()
click to toggle source
# File lib/bashly/concerns/completions.rb, line 16 def completion_script completion_generator.script end
Private Instance Methods
completion_flag_names()
click to toggle source
# File lib/bashly/concerns/completions.rb, line 30 def completion_flag_names flags.map(&:name) + flags.map(&:short) end
completion_generator()
click to toggle source
# File lib/bashly/concerns/completions.rb, line 26 def completion_generator Completely::Completions.new(completion_data) end
completion_words(with_version: false)
click to toggle source
# File lib/bashly/concerns/completions.rb, line 34 def completion_words(with_version: false) trivial_flags = %w[--help -h] trivial_flags += %w[--version -v] if with_version all = ( command_names + trivial_flags + completion_flag_names ) all += completions if completions all.compact.uniq.sort end