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
- .config_from_home ⇒ Object
-
.selection_from_user(config, selection = '') ⇒ Object
rubocop:disable Metrics/MethodLength, Metrics/AbcSize.
Class Method Details
.config_from_home ⇒ Object
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.(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 |