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))