Sha256: b8266f61adf8f953edbead4cdef742a47f71a20e2695f1834b1d70dfd8d545e1
Contents?: true
Size: 1.86 KB
Versions: 1
Compression:
Stored size: 1.86 KB
Contents
require 'thor' require 'snuffle' module Snuffle class CLI < Thor desc_text = "Formats are text (default, to STDOUT), html, and csv. " desc_text << "Example: snuffle check foo/ -f html" desc "check PATH_TO_FILE [-f FORMAT] [-t MAX_COMPLEXITY_ALLOWED]", desc_text method_option :format, :type => :string, :default => 'text', :aliases => "-f" def check(path="./") summaries = [] file_list(path).each do |path_to_file| summary = Snuffle::SourceFile.new(path_to_file: path_to_file).summary report(summary, summary.source) summaries << summary end create_html_index(summaries) puts results_files.join("\n") end default_task :check attr_accessor :last_file private def file_list(start_file) if File.directory?(start_file) return Dir.glob(File.join(start_file, "**", "*")).select{|n| n =~ /\.rb$/} else return [start_file] end end def report(summary, source) text_report(summary) cvs_report(summary) html_report(summary, source) end def create_html_index(summaries) return unless options['format'] == 'html' results_files << Snuffle::Formatters::HtmlIndex.new(summaries).export end def cvs_report(summary) return unless options['format'] == 'csv' return unless summary.cohorts.count > 0 results_files << Snuffle::Formatters::Csv.new(summary).export end def html_report(summary, source) return unless options['format'] == 'html' return unless summary.cohorts.count > 0 results_files << Snuffle::Formatters::Html.new(summary, source).export end def text_report(summary) return unless options['format'] == 'text' puts puts Snuffle::Formatters::Text.new(summary).export end def results_files @results_files ||= [] end end end
Version data entries
1 entries across 1 versions & 1 rubygems
Version | Path |
---|---|
snuffle-0.9.1 | lib/snuffle/cli.rb |