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

Version Path
code_stats2-0.1.4 lib/code_stats/code_stats.rb
code_stats2-0.1.3 lib/code_stats/code_stats.rb
code_stats2-0.1.2 lib/code_stats/code_stats.rb
code_stats2-0.1.1 lib/code_stats/code_stats.rb
code-statistics-0.1.1 lib/code_stats/code_stats.rb
code-stats-0.1.1 lib/code_stats/code_stats.rb