Module: Canals::Tools::Completion

Extended by:
Completion
Includes:
FileUtils
Included in:
Completion
Defined in:
lib/canals/tools/completion.rb

Instance Method Summary collapse

Instance Method Details

#cmp_fileObject



14
15
16
# File 'lib/canals/tools/completion.rb', line 14

def cmp_file
  File.expand_path('canals.sh', config_path)
end

#completion_installed?Boolean

Returns:

  • (Boolean)


38
39
40
41
42
43
# File 'lib/canals/tools/completion.rb', line 38

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_pathObject



10
11
12
# File 'lib/canals/tools/completion.rb', line 10

def config_path
  File.expand_path(".canals", ENV['HOME'])
end

#install_completionObject



18
19
20
21
22
23
24
25
# File 'lib/canals/tools/completion.rb', line 18

def install_completion
  update_completion
  source = "source " << cmp_file

  rcfile = File.expand_path('.bashrc', ENV['HOME'])
  return if File.read(rcfile).include? source
  File.open(rcfile, 'a') { |f| f.puts("", "# added by canals gem", "[ -f #{cmp_file} ] && #{source}") }
end

#update_completionObject



27
28
29
30
31
# File 'lib/canals/tools/completion.rb', line 27

def update_completion
  mkdir_p(config_path)
  cp(Assets['canals.sh'], cmp_file)
  update_config
end

#update_configObject



33
34
35
36
# File 'lib/canals/tools/completion.rb', line 33

def update_config
  Canals.config[:completion_version] = Canals::VERSION
  Canals.config.save!
end