lib/coursemology/evaluator/cli.rb in coursemology-evaluator-0.1.1 vs lib/coursemology/evaluator/cli.rb in coursemology-evaluator-0.1.3

- old
+ new

@@ -1,52 +1,52 @@ -# frozen_string_literal: true -require 'optparse' - -class Coursemology::Evaluator::CLI - Options = Struct.new(:host, :api_token, :api_user_email, :one_shot) - - def self.start(argv) - new.start(argv) - end - - def start(argv) - run(argv) - end - - def run(argv) - options = optparse!(argv) - Coursemology::Evaluator::Client.initialize(options.host, options.api_user_email, - options.api_token) - Coursemology::Evaluator::Client.new(options.one_shot).run - end - - private - - # Parses the options specified on the command line. - # - # @param [Array<String>] argv The arguments specified on the command line. - # @return [Coursemology::Evaluator::CLI::Options] - def optparse!(argv) # rubocop:disable Metrics/MethodLength - options = Options.new - option_parser = OptionParser.new do |parser| - parser.banner = "Usage: #{parser.program_name} [options]" - parser.on('-hHOST', '--host=HOST', 'Coursemology host to connect to') do |host| - options.host = host - end - - parser.on('-tTOKEN', '--api-token=TOKEN') do |token| - options.api_token = token - end - - parser.on('-uUSER', '--api-user-email=USER') do |user| - options.api_user_email = user - end - - parser.on('-o', '--one-shot') do - options.one_shot = true - end - end - - option_parser.parse!(argv) - options - end -end +# frozen_string_literal: true +require 'optparse' + +class Coursemology::Evaluator::CLI + Options = Struct.new(:host, :api_token, :api_user_email, :one_shot) + + def self.start(argv) + new.start(argv) + end + + def start(argv) + run(argv) + end + + def run(argv) + options = optparse!(argv) + Coursemology::Evaluator::Client.initialize(options.host, options.api_user_email, + options.api_token) + Coursemology::Evaluator::Client.new(options.one_shot).run + end + + private + + # Parses the options specified on the command line. + # + # @param [Array<String>] argv The arguments specified on the command line. + # @return [Coursemology::Evaluator::CLI::Options] + def optparse!(argv) # rubocop:disable Metrics/MethodLength + options = Options.new + option_parser = OptionParser.new do |parser| + parser.banner = "Usage: #{parser.program_name} [options]" + parser.on('-hHOST', '--host=HOST', 'Coursemology host to connect to') do |host| + options.host = host + end + + parser.on('-tTOKEN', '--api-token=TOKEN') do |token| + options.api_token = token + end + + parser.on('-uUSER', '--api-user-email=USER') do |user| + options.api_user_email = user + end + + parser.on('-o', '--one-shot') do + options.one_shot = true + end + end + + option_parser.parse!(argv) + options + end +end