Sha256: fc55198051745e51710cc0a64cd6a9a4ca3b0431ac0f4986bfb8bc6e03eb499c

Contents?: true

Size: 1.67 KB

Versions: 9

Compression:

Stored size: 1.67 KB

Contents

require "metric_fu"
require "metric_fu/cli/parser"
MetricFu.lib_require { "run" }
# see https://github.com/grosser/pru/blob/master/bin/pru
module MetricFu
  module Cli
    def self.immediate_shutdown!
      exit(1)
    end
    def self.complete!
      exit(0)
    end
    class Helper
      def initialize
        @metric_fu = MetricFu::Run.new
      end

      def run(options = {})
        @metric_fu.run(options)
        complete
      end

      def version
        MetricFu::VERSION
      end

      def shutdown
        out "\nShutting down. Bye"
        MetricFu::Cli.immediate_shutdown!
      end

      def banner
        "MetricFu: A Fistful of code metrics"
      end

      def usage
        <<-EOS
        #{banner}
        Use --help for help
        EOS
      end

      def executable_name
        "metric_fu"
      end

      def metrics
        MetricFu::Metric.metrics.map(&:name).sort_by(&:to_s)
      end

      def process_options(argv = [])
        options = MetricFu::Cli::MicroOptParse::Parser.new do |p|
          p.banner = banner
          p.version = version
          p.option :run, "Run all metrics with defaults", default: true
          metrics.each do |metric|
            p.option metric.to_sym, "Enables or disables #{metric}", default: true # , :value_in_set => [true, false]
          end
          p.option :open, "Open report in browser (if supported by formatter)", default: true
        end.process!(argv)
        options
      end

      private

      def out(text)
        STDOUT.puts text
      end

      def error(text)
        STDERR.puts text
      end

      def complete
        out "all done"
        MetricFu::Cli.complete!
      end
    end
  end
end

Version data entries

9 entries across 9 versions & 3 rubygems

Version Path
metric_fu-4.13.0 lib/metric_fu/cli/helper.rb
fastruby-metric_fu-5.0.0 lib/metric_fu/cli/helper.rb
code_metric_fu-4.14.4 lib/metric_fu/cli/helper.rb
code_metric_fu-4.14.3 lib/metric_fu/cli/helper.rb
code_metric_fu-4.14.2 lib/metric_fu/cli/helper.rb
code_metric_fu-4.14.1 lib/metric_fu/cli/helper.rb
code_metric_fu-4.14.0 lib/metric_fu/cli/helper.rb
metric_fu-4.12.0 lib/metric_fu/cli/helper.rb
metric_fu-4.11.4 lib/metric_fu/cli/helper.rb