class Captify::Cli
Capture inputs from command line interface.
Public Class Methods
new(kernel=Kernel)
click to toggle source
# File lib/captify/cli.rb, line 9 def initialize(kernel=Kernel) @kernel = kernel end
Public Instance Methods
parse_argv(argv)
click to toggle source
# File lib/captify/cli.rb, line 13 def parse_argv(argv) options = {} argv = argv.clone parse_options! argv, options parse_target_dir! argv, options return options rescue AbortException => ex @kernel.abort "#{ex.message}" rescue ExitException => ex @kernel.puts "#{ex.message}" @kernel.exit end
Private Instance Methods
parse_options!(argv, options)
click to toggle source
# File lib/captify/cli.rb, line 41 def parse_options!(argv, options) opts = OptionParser.new do |opts| opts.banner = "Usage: captify [options] directory" opts.separator "" opts.separator "Options:" opts.on("-t", "--template TEMPLATE_NAME", "Specify the template to be used") do |template| options[:template_name] = template end opts.on_tail("-h", "--help", "Show this message") do raise ExitException, opts.help end end opts.parse! argv return opts.help rescue OptionParser::InvalidOption => ex raise AbortException, "#{ex.message}\n\n#{opts.help}" end
parse_target_dir!(argv, options)
click to toggle source
# File lib/captify/cli.rb, line 31 def parse_target_dir!(argv, options) if argv.empty? raise AbortException, "Please specify a target dir." elsif argv.length > 1 raise AbortException, "Too many target dirs; please specify only the dir to captify." end options[:target_dir] = argv.delete_at(0) end