class Balboa::CLI::Parser
Public Class Methods
new(argv)
click to toggle source
# File lib/balboa/cli/parser.rb, line 13 def initialize(argv) @config = {} @argv = argv @parser = OptionParser.new end
parse(*args)
click to toggle source
# File lib/balboa/cli/parser.rb, line 9 def self.parse(*args) new(*args).parse end
Public Instance Methods
parse()
click to toggle source
# File lib/balboa/cli/parser.rb, line 19 def parse configure_parser @parser.parse!(@argv) @config end
Private Instance Methods
configure_parser()
click to toggle source
# File lib/balboa/cli/parser.rb, line 27 def configure_parser program_name = @parser.program_name @parser.banner = <<-EOF.gsub(/^[ ]+/, '') \nUsage: #{program_name} [commands] [options]" Commands: #{program_name} last #{program_name} punch -p '123456' -s '12/06/1992,13/06/1992,14/06/1992' #{program_name} reset EOF set_options set_utilities end
parse_dates(dates)
click to toggle source
# File lib/balboa/cli/parser.rb, line 90 def parse_dates(dates) @config.merge!('skips' => dates.map { |date| Date.parse(date) }) end
set_attributes()
click to toggle source
:reek: TooManyStatements
# File lib/balboa/cli/parser.rb, line 68 def set_attributes @parser.on('-e', '--email \'EMAIL\'') do |email| @config['email'] = email end @parser.on('-p', '--password \'PASSWORD\'') do |password| @config['password'] = password end @parser.on('-w', '--project \'PROJECT\'') do |project| @config['project'] = project end end
set_balboa_picture()
click to toggle source
rubocop:disable Metrics/MethodLength
# File lib/balboa/cli/parser.rb, line 109 def set_balboa_picture @parser.separator("\n" + [ '░░░░░░▄▄███████████████▄▄░░░░', '░░░▄██████████████████████▄░░', '░░█████████▀███████▀████████░', '░█████████▀▀█▀█░░▀██▄██▄████░', '░░████████▄▄█░▀▀▄▄█░░▀░████░░', '░░███████▀░░░▄▄▄▄░░░▄▄▄███░░░', '░▀███████░░▄▀▀██▀░░█▄░▄▀███░░', '░░██████▀░░█░██▀▀░░████░██░░░', '░████████░░░░▀▀░░░░▀▄░▀▀█░░░░', '░█▀██████░░░░░░░░░░░░█░░█░░░░', '░▀▄████▄▀░░░░░░░░░░░▀▀░░░█░░░', '░▄██████▀▄░░░░░░░░░▄▄▄░░░█░░░', '░███████░█░░░░░░░░██▄▄█░░░█░░', '░░██████░░█░░░░░░░░░░░░░░░█░░', '░▀▄█████░░░▀▄░░░░░░░░░░░░▄▀░░', '░░░░███▀░░░░░▀▀▀█▄▄▄░░░░█▀░░░', '░░░░▄▀░░░░░░░░░▀▄░░░██▀▀▀░░░░', '░░▄▀░░░░░░░░░░░░░░▀░░▀▀▀▀▀▄░░', '▄▀░░░░░░░░░░░░░░░░░░░░░░▄░█▀▄' ].join("\n")) end
set_custom_defaults()
click to toggle source
# File lib/balboa/cli/parser.rb, line 58 def set_custom_defaults message = 'Read configuration options from FILE' @parser.on('-c', '--config \'FILE\'', message) do |file| @config.merge!(YAML.load_file(file)) @config['skip_defaults'] = true end end
set_help_option()
click to toggle source
# File lib/balboa/cli/parser.rb, line 94 def set_help_option @parser.on('-h', '--help', 'Show this message') do $stdout.puts @parser exit end end
set_options()
click to toggle source
# File lib/balboa/cli/parser.rb, line 44 def set_options @parser.separator "\nOptions:" set_attributes set_skipped_dates set_custom_defaults end
set_skipped_dates()
click to toggle source
# File lib/balboa/cli/parser.rb, line 82 def set_skipped_dates message = 'Skip input dates' @parser.on('-s', '--skip \'DATES\'', message, Array) do |dates| parse_dates(dates) end end
set_utilities()
click to toggle source
# File lib/balboa/cli/parser.rb, line 51 def set_utilities @parser.separator "\nUtilities:" set_help_option set_version_option set_balboa_picture end
set_version_option()
click to toggle source
# File lib/balboa/cli/parser.rb, line 101 def set_version_option @parser.on('-v', '--version', 'Show version') do $stdout.puts "#{@parser.program_name} #{Balboa::VERSION}\n" exit end end