lib/gurke/cli.rb in gurke-2.1.0 vs lib/gurke/cli.rb in gurke-2.2.1
- old
+ new
@@ -26,12 +26,11 @@
options[:require].each do |r|
Dir[r].each{|f| require File.expand_path(f) }
end if options[:require].any?
- files = Dir[options[:pattern].to_s] if files.empty? && options[:pattern]
- files.map!{|f| File.expand_path(f) }
+ files = expand_files files, options
runner = if options[:drb_server]
Runner::DRbServer
elsif options[:drb]
Runner::DRbClient
@@ -56,10 +55,12 @@
def parser
@parser ||= Trollop::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',
@@ -69,9 +70,25 @@
'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
+
+ private
+ def expand_files(files, options)
+ files = Dir[options[:pattern].to_s] if files.empty? && options[:pattern]
+ files.inject([]) do |memo, input|
+ if File.directory? input
+ Dir[input + '/**/*'].each do |file_in_dir|
+ next if options[:pattern] && !File.fnmatch?(options[:pattern], file_in_dir)
+ memo << File.expand_path(file_in_dir)
+ end
+ else
+ memo << File.expand_path(input)
+ end
+ memo
end
end
end
end