lib/undercover/options.rb in undercover-0.1.7 vs lib/undercover/options.rb in undercover-0.2.0
- old
+ new
@@ -15,11 +15,11 @@
OUTPUT_FORMATTERS = [
OUTPUT_STDOUT = :stdout, # outputs warnings to stdout with exit 1
# OUTPUT_CIRCLEMATOR = :circlemator # posts warnings as review comments
].freeze
- attr_accessor :lcov, :path, :git_dir, :compare
+ attr_accessor :lcov, :path, :git_dir, :compare, :syntax_version
def initialize
# TODO: use run modes
# TODO: use formatters
@run_mode = RUN_MODE_DIFF_STRICT
@@ -27,11 +27,11 @@
# set defaults
self.path = '.'
self.git_dir = '.git'
end
- # rubocop:disable Metrics/MethodLength
+ # rubocop:disable Metrics/MethodLength, Metrics/AbcSize
def parse(args)
OptionParser.new do |opts|
opts.banner = 'Usage: undercover [options]'
opts.on_tail('-h', '--help', 'Prints this help') do
@@ -46,19 +46,19 @@
lcov_path_option(opts)
project_path_option(opts)
git_dir_option(opts)
compare_option(opts)
+ ruby_syntax_option(opts)
# TODO: parse dem other options and assign to self
# --quiet (skip progress bar)
# --exit-status (do not print report, just exit)
- # --ruby-version (string, like '2.4.4', how to support in parser?)
end.parse(args)
guess_lcov_path unless lcov
self
end
- # rubocop:enable Metrics/MethodLength
+ # rubocop:enable Metrics/MethodLength, Metrics/AbcSize
private
def lcov_path_option(parser)
parser.on('-l', '--lcov path', 'LCOV report file path') do |path|
@@ -81,9 +81,17 @@
def compare_option(parser)
desc = 'Generate coverage warnings for all changes after `ref`'
parser.on('-c', '--compare ref', desc) do |ref|
self.compare = ref
+ end
+ end
+
+ def ruby_syntax_option(parser)
+ versions = Imagen::AVAILABLE_RUBY_VERSIONS.sort.join(', ')
+ desc = "Ruby syntax version, one of: #{versions}"
+ parser.on('-r', '--ruby-synax ver', desc) do |version|
+ self.syntax_version = version.strip
end
end
def guess_lcov_path
cwd = Pathname.new(File.expand_path(path))