class Gurke::CLI
Public Instance Methods
call(options, files)
click to toggle source
# File lib/gurke/cli.rb, line 24 def call(options, files) if File.exist?(Gurke.root.join('gurke.rb')) require File.expand_path(Gurke.root.join('gurke.rb')) end if options[:require].any? options[:require].each do |r| Dir[r].each {|f| require File.expand_path(f) } end end files = expand_files files, options runner = if options[:drb_server] Runner::DRbServer elsif options[:drb] Runner::DRbClient else Runner::LocalRunner end.new(Gurke.config, options) Kernel.exit runner.run files end
parser()
click to toggle source
# File lib/gurke/cli.rb, line 58 def parser @parser ||= Optimist::Parser.new do opt :help, 'Print this help.' opt :version, 'Show program version information.' opt :backtrace, 'Show full error backtraces.' opt :formatter, 'Select a special formatter as reporter', \ default: 'default' opt :pattern, 'File pattern matching feature files to be run.', default: 'features/**/*.feature' opt :require, 'Files matching this pattern will be required after' \ 'loading environment but before running features.', default: ['features/steps/**/*.rb', 'features/support/steps/**/*.rb'], multi: true opt :tags, 'Only run features and scenarios matching given tag ' \ 'filtering expression. TODO: Description.', default: ['~wip'], multi: true opt :drb_server, 'Run gurke DRb server. (experimental)', short: :none opt :drb, 'Run features on already started DRb server. (experimental)', short: :none end end
print_help()
click to toggle source
# File lib/gurke/cli.rb, line 54 def print_help parser.educate($stdout) end
print_version()
click to toggle source
# File lib/gurke/cli.rb, line 48 def print_version $stdout.puts <<~VSTR gurke v#{Gurke::VERSION} VSTR end
run(argv)
click to toggle source
Run CLI
with given arguments.
@param argv [Array<String>] Tokenized argument list.
# File lib/gurke/cli.rb, line 12 def run(argv) call parser.parse(argv), argv rescue Optimist::VersionNeeded print_version && exit rescue Optimist::HelpNeeded print_help && exit rescue Optimist::CommandlineError => e warn "Error: #{e}" warn "Run with `-h' for more information on available arguments." exit 255 end
Private Instance Methods
expand_files(files, options)
click to toggle source
# File lib/gurke/cli.rb, line 84 def expand_files(files, options) files = Dir[options[:pattern].to_s] if files.empty? && options[:pattern] files.each_with_object([]) do |input, memo| if File.directory? input Dir[input + '/**/*'].each do |file_in_dir| if options[:pattern] && !File.fnmatch?(options[:pattern], file_in_dir) next end memo << File.expand_path(file_in_dir) end else memo << File.expand_path(input) end end end