Sha256: de6a37b43b3fcca0948af04a817c5a3ce198c46a2d58f8ebbccb052be5310093
Contents?: true
Size: 1.42 KB
Versions: 6
Compression:
Stored size: 1.42 KB
Contents
class CodeStats class << self def know? extension extensions.include? extension end def parse text, extension language = extensions[extension] || raise("no language for :#{extension} extension!") language.new text end def analyze *args options = args.extract_options! paths = args paths.collect!{|path| Dir[path]}.flatten! puts <<-TEXT please wait, analyzing: #{paths.join("\n ")} TEXT projects = paths.collect do |path| project = Project.new path, options project.analyze! project end projects.sort{|a, b| b.characters_count <=> a.characters_count} end def analyze_and_report *args # parsing options options = args.extract_options! paths = args options.validate_options! *(FileSet::AVAILIABLE_OPTIONS + Project::AVAILIABLE_OPTIONS) project_options = options.select{|k, v| Project::AVAILIABLE_OPTIONS.include? k} lang_options = options.select{|k, v| FileSet::AVAILIABLE_OPTIONS.include? k} # analyzing & reporting projects = analyze *(paths << project_options) report = Report.new(*(projects << lang_options)).render report_file = "./projects_statistics.html".to_file report_file.write! report puts "done, statistics are in #{report_file}" Kernel.exec "open #{report_file}" end end end
Version data entries
6 entries across 6 versions & 3 rubygems