module Bashly::Completions::Command
Public Instance Methods
completion_data(with_version: true)
click to toggle source
# File lib/bashly/concerns/completions.rb, line 21 def completion_data(with_version: true) result = {} completion_full_names.each do |name| name = "#{name}*" if name.include? '*' result[name] = completion_words with_version: with_version flags.each do |flag| result.merge! flag.completion_data(name) end end visible_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 43 def completion_function(name = nil) completion_generator.wrapper_function name end
completion_script()
click to toggle source
# File lib/bashly/concerns/completions.rb, line 39 def completion_script completion_generator.script end
Protected Instance Methods
completion_full_names()
click to toggle source
# File lib/bashly/concerns/completions.rb, line 49 def completion_full_names if parent_command glue = parent_command.global_flags? ? '*' : ' ' parent_command.completion_full_names.product(aliases).map { |a| a.join glue } else aliases end end
Private Instance Methods
completion_allowed_args()
click to toggle source
# File lib/bashly/concerns/completions.rb, line 68 def completion_allowed_args args.map(&:allowed).flatten end
completion_flag_names()
click to toggle source
# File lib/bashly/concerns/completions.rb, line 64 def completion_flag_names visible_flags.map(&:name) + visible_flags.map(&:short) end
completion_generator()
click to toggle source
# File lib/bashly/concerns/completions.rb, line 60 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 72 def completion_words(with_version: false) trivial_flags = %w[--help -h] trivial_flags += %w[--version -v] if with_version all = ( visible_command_aliases + trivial_flags + completion_flag_names + completion_allowed_args ) all += completions if completions all.compact.uniq.sort end