Module: Algoheader::Helpers

Defined in:
lib/algoheader/helpers.rb

Overview

Helpers

Author

Dick Davis

Copyright

Copyright 2021 Dick Davis

License

GNU Public License 3

Module that provides helper methods.

Class Method Summary collapse

Class Method Details

.config_from_homeObject



29
30
31
32
33
34
35
36
37
38
39
40
# File 'lib/algoheader/helpers.rb', line 29

def self.config_from_home
  config_dir = "#{ENV['XDG_CONFIG_HOME'] || "#{Dir.home}/.config"}/algoheader"
  FileUtils.mkdir_p(config_dir)

  config_filename = "#{config_dir}/config.yml"
  unless File.exist?(config_filename)
    config_asset = File.expand_path(File.join(File.dirname(__FILE__), '..', 'assets', 'config.yml'))
    FileUtils.cp(config_asset, config_filename)
  end

  config_filename
end

.selection_from_user(config, selection = '') ⇒ Object

rubocop:disable Metrics/MethodLength, Metrics/AbcSize



43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
# File 'lib/algoheader/helpers.rb', line 43

def self.selection_from_user(config, selection = '')
  while selection.empty?
    puts 'Choose a color scheme from the list below:'

    schemes = config['color_schemes'].collect { |scheme| scheme['name'] }
    schemes.each.with_index do |scheme, index|
      puts "#{index}: #{scheme}"
    end

    puts 'Selection => '
    user_input = gets.chomp.to_i
    next unless (0..schemes.length - 1).include?(user_input)

    selection = config['color_schemes'].select { |scheme| scheme['name'] == schemes[user_input] }
                                       .first
                                       .transform_keys(&:to_sym)
  end

  selection
end