module Canals::Tools::Completion

Public Instance Methods

cmp_file() click to toggle source
# File lib/canals/tools/completion.rb, line 15
def cmp_file
  File.expand_path('canals.sh', config_path)
end
completion_installed?() click to toggle source
# File lib/canals/tools/completion.rb, line 40
def completion_installed?
  source = "source " << cmp_file
  rcfile = File.expand_path('.bashrc', ENV['HOME'])
  return false unless File.read(rcfile).include? source
  true
end
config_path() click to toggle source
# File lib/canals/tools/completion.rb, line 11
def config_path
  File.expand_path(".canals", ENV['HOME'])
end
install_completion() click to toggle source
# File lib/canals/tools/completion.rb, line 19
def install_completion
  update_completion
  source = "source " << cmp_file

  rcfile = File.expand_path('.bashrc', ENV['HOME'])
  return false if File.read(rcfile).include? source
  File.open(rcfile, 'a') { |f| f.puts("", "# added by canals gem", "[ -f #{cmp_file} ] && #{source}") }
  true
end
update_completion() click to toggle source
# File lib/canals/tools/completion.rb, line 29
def update_completion
  mkdir_p(config_path)
  cp(Assets['canals.sh'], cmp_file)
  update_config
end
update_config() click to toggle source
# File lib/canals/tools/completion.rb, line 35
def update_config
  Canals.config[:completion_version] = Canals::VERSION
  Canals.config.save!
end