Sha256: 4ba2eee4d8fa13ef1551f4d31f3b1932882168abbe864168b9835f756782f140

Contents?: true

Size: 1.47 KB

Versions: 1

Compression:

Stored size: 1.47 KB

Contents

require 'metric_fu'
require 'metric_fu/cli/parser'
# see https://github.com/grosser/pru/blob/master/bin/pru
module MetricFu
  module Cli
    class Helper
      def run(options={})
        @metric_fu = MetricFu::Run.new(options)
        @metric_fu.run
        complete
      end
      def version
        MetricFu::VERSION
      end
      def shutdown
        out "\nShuting down. Bye"
        exit(1)
      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.configuration.metrics.sort_by(&:to_s)
      end

      def process_options(argv=ARGV.dup)
        options = MetricFu::Cli::MicroOptParse::Parser.new do |p|
            p.banner = self.banner
            p.version = self.version
            p.option :run, "Run all metrics with defaults", :default => false
            metrics.each do |metric|
              p.option metric.to_sym, "Enables or disables #{metric.to_s.titleize}", :default => true #, :value_in_set => [true, false]
            end
            p.option :open, "Open report in browser", :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"
        exit(0)
      end
    end
  end
end

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
metric_fu-2.1.4.pre5 lib/metric_fu/cli/helper.rb