lib/coursemology/evaluator/cli.rb in coursemology-evaluator-0.1.6 vs lib/coursemology/evaluator/cli.rb in coursemology-evaluator-0.1.7
- old
+ new
@@ -1,74 +1,74 @@
-# frozen_string_literal: true
-require 'optparse'
-
-class Coursemology::Evaluator::CLI
- Options = Struct.new(:host, :api_token, :api_user_email,
- :one_shot, :poll_interval, :image_lifetime)
-
- def self.start(argv)
- new.start(argv)
- end
-
- def start(argv)
- run(argv)
- end
-
- def run(argv)
- options = optparse!(argv)
- Coursemology::Evaluator.config.poll_interval =
- ::ISO8601::Duration.new("PT#{options.poll_interval}".upcase).to_seconds
-
- # Must include the time designator T if hours/minutes/seconds are required.
- Coursemology::Evaluator.config.image_lifetime =
- ::ISO8601::Duration.new("P#{options.image_lifetime}".upcase).to_seconds
-
- 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
-
- # default options for optional parameters
- options.poll_interval = '10S'
- options.image_lifetime = '1D'
- options.one_shot = false
-
- 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('-iINTERVAL', '--interval=INTERVAL') do |interval|
- options.poll_interval = interval
- end
-
- parser.on('-lLIFETIME', '--lifetime=LIFETIME') do |lifetime|
- options.image_lifetime = lifetime
- 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, :poll_interval, :image_lifetime)
+
+ def self.start(argv)
+ new.start(argv)
+ end
+
+ def start(argv)
+ run(argv)
+ end
+
+ def run(argv)
+ options = optparse!(argv)
+ Coursemology::Evaluator.config.poll_interval =
+ ::ISO8601::Duration.new("PT#{options.poll_interval}".upcase).to_seconds
+
+ # Must include the time designator T if hours/minutes/seconds are required.
+ Coursemology::Evaluator.config.image_lifetime =
+ ::ISO8601::Duration.new("P#{options.image_lifetime}".upcase).to_seconds
+
+ 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
+
+ # default options for optional parameters
+ options.poll_interval = '10S'
+ options.image_lifetime = '1D'
+ options.one_shot = false
+
+ 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('-iINTERVAL', '--interval=INTERVAL') do |interval|
+ options.poll_interval = interval
+ end
+
+ parser.on('-lLIFETIME', '--lifetime=LIFETIME') do |lifetime|
+ options.image_lifetime = lifetime
+ end
+
+ parser.on('-o', '--one-shot') do
+ options.one_shot = true
+ end
+ end
+
+ option_parser.parse!(argv)
+ options
+ end
+end