Sha256: 412e629cabdc439ae85d4c4fe7b7ad848faf75da43be8a8de0cb313af7cad365

Contents?: true

Size: 1.57 KB

Versions: 2

Compression:

Stored size: 1.57 KB

Contents

#!/usr/bin/env ruby

require 'mixlib/cli'
require_relative '../lib/sandi_meter/file_scanner'
require_relative '../lib/sandi_meter/formatter'
require_relative '../lib/sandi_meter/logger'
require_relative '../lib/sandi_meter/html_generator'

class MyCLI
  include Mixlib::CLI

  option :path,
    short: "-p PATH",
    long: "--path PATH",
    description: "Path to folder or file to analyze",
    default: "."

  option :log,
    short: "-l",
    long: "--log",
    description: "Show syntax error and indentation log output",
    boolean: true

  option :graph,
    short: "-g",
    long: "--graph",
    description: "Create folder and log data to graph",
    boolean: true

  option :help,
    short: "-h",
    long: "--help",
    description: "Help",
    on: :tail,
    boolean: true,
    show_options: true,
    exit: 0

  option :rules,
    short: "-r",
    long: "--rules",
    description: "Show rules",
    boolean: 0
end

cli = MyCLI.new
cli.parse_options

if cli.config[:rules]
  puts %(
    1. 100 lines per class
    2. 5 lines per method
    3. 4 params per method call (and don't even try cheating with hash params)
    4. 1 instance variables per controller' action
  )
  exit 0
end

scanner = SandiMeter::FileScanner.new(cli.config[:log])
data = scanner.scan(cli.config[:path])
formatter = SandiMeter::Formatter.new

formatter.print_data(data)

if cli.config[:graph]
  logger = SandiMeter::Logger.new
  logger.log!(cli.config[:path], data)

  html_generator = SandiMeter::HtmlGenerator.new
  html_generator.copy_assets!(cli.config[:path])
  html_generator.generate_data!(cli.config[:path])
end

Version data entries

2 entries across 2 versions & 1 rubygems

Version Path
sandi_meter-0.0.5 bin/sandi_meter
sandi_meter-0.0.4 bin/sandi_meter