`
jsntghf
  • 浏览: 2550719 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

代码行数统计

阅读更多

一、rake stats

 

运行rake stats,这将会得到类似以下的输出:

 

+----------------------+-------+-------+---------+---------+-----+-------+
| Name                 | Lines |   LOC | Classes | Methods | M/C | LOC/M |
+----------------------+-------+-------+---------+---------+-----+-------+
| Controllers          |    81 |    55 |       3 |      11 |   3 |     3 |
| Helpers              |    19 |    18 |       0 |       1 |   0 |    16 |
| Models               |    17 |    12 |       2 |       0 |   0 |     0 |
| Libraries            |     0 |     0 |       0 |       0 |   0 |     0 |
| Integration tests    |     0 |     0 |       0 |       0 |   0 |     0 |
| Functional tests     |    85 |    72 |       3 |       7 |   2 |     8 |
| Unit tests           |   168 |   144 |       2 |      18 |   9 |     6 |
+----------------------+-------+-------+---------+---------+-----+-------+
| Total                |   370 |   301 |      10 |      37 |   3 |     6 |
+----------------------+-------+-------+---------+---------+-----+-------+
  Code LOC: 85     Test LOC: 216     Code to Test Ratio: 1:2.5

 

二、rake lines

 

到项目路径下执行rake lines即可。

 

task :lines => :environment do
  CheckLines.new(Rails.root.to_s + "/app/controllers")
end

module Enumerable
  def total_lines
    lines = 0
    each_with_index {|_, lines|}
    return lines + 1
  end
end

class CheckLines
  require 'find'

  CheckType = %w{txt rb rhtml erb yml html css xml js}.freeze

  def initialize(directory)
    @total_lines = 0
    if File.directory?(directory)
      @directory = directory
      @contents = {}
      @content_type = {}
      CheckType.each {|ext| @content_type[ext.to_sym] = 0}
      self.go
    else
      puts "#{directory} is not a directory!" and return
    end
  end

  def go
    if @directory
      Find.find @directory do |path|
        pathlite = path.gsub(@directory, '')
        if File.file?(path) && is_check_file(path)
          File.open path do |f|
            tmp_line = f.total_lines
            @contents.store(pathlite, tmp_line)
            @content_type[(path.sub(/.*\./, '').to_sym)] += tmp_line
            @total_lines += tmp_line
          end
        end
      end
      puts "Total Code Lines:#{@total_lines}"
      puts "Total Files #{@contents.keys.size}"
      @content_type.each_pair {|key,value| puts "#{key} : #{value}"}
      details
    end
  end

  def is_check_file file_name
    CheckType.any? do |ext|
      !file_name.scan(/\.#{ext}$/).empty?
    end
  end

  def details
    @contents.each do |key,value|
      puts "#{key} file has lines of #{value}"
    end
  end
end

 

输出如下:

 

Total Code Lines:81
Total Files 3
rb : 81
/application.rb file has lines of 14
/entry_comments_controller.rb file has lines of 26
/entries_controller.rb file has lines of 41

 

 

分享到:
评论

相关推荐

    代码行数统计工具

    代码行数统计工具是软件开发过程中非常实用的一种辅助工具,主要用于量化分析项目的代码规模,它可以帮助开发者、项目经理以及质量保证人员了解项目的复杂性、维护成本和进度管理。本篇文章将详细探讨代码行数统计...

    代码行数统计工具,绿色软件,无需安装

    代码行数统计工具是一款便捷的绿色软件,无需安装过程,用户只需将其解压缩后即可直接运行,大大简化了使用步骤。这种类型的工具在IT行业中扮演着重要的角色,尤其是在软件开发和项目管理中,因为代码行数是衡量软件...

    linecount3.6.3代码行数统计工具

    《LineCount3.6.3:代码行数统计利器》 在软件开发过程中,了解代码行数是一项重要的任务,它可以帮助我们评估项目的规模,预估开发时间,以及合理分配资源。LineCount3.6.3就是这样一款专为程序员设计的代码行数...

    代码行数统计小工具 代码行数统计小工具

    代码行数统计小工具代码行数统计小工具代码行数统计小工具代码行数统计小工具代码行数统计小工具代码行数统计小工具代码行数统计小工具代码行数统计小工具代码行数统计小工具代码行数统计小工具代码行数统计小工具...

    .net 代码行数统计工具

    这时,".NET代码行数统计工具"就显得尤为重要。这类工具能够帮助开发者快速准确地获取代码库中的源代码行数,包括空行、注释行以及实际可执行代码行。 首先,我们要理解代码行数统计的意义。虽然代码行数并不能直接...

    eclipse代码行数统计插件

    "eclipse代码行数统计插件"就是这样一个工具,它能够帮助开发者快速地统计出项目中的代码行数,包括注释和空行。 在Eclipse中,安装和使用代码行数统计插件非常简单。首先,用户需要打开"Windows"菜单,然后选择...

    c#源代码行数统计工具

    "C#源代码行数统计工具"就是专为此目的设计的实用程序,它能够帮助开发者快速准确地计算出C#项目的源代码总量。这种工具在项目管理、代码审计、性能评估等方面都有重要作用,因为它可以提供对代码库大小和复杂性的一...

    代码行数统计linecount

    "代码行数统计linecount"是一个工具或方法,旨在帮助开发者和项目管理者了解代码库的大小。下面将详细讨论代码行数统计的相关知识点。 1. **代码行数的意义**: - **项目规模**:通过计算代码行数,可以大致估算一...

    C#有效代码行数统计

    本篇文章将深入探讨C#代码行数统计的概念、方法以及其在实际开发中的应用。 首先,我们需要明确“有效代码行”的定义。在C#中,有效代码行通常指的是能够执行特定任务的语句或表达式,不包括空行、注释行和预处理器...

    代码行数统计工具linecount3.6.3.zip

    《代码行数统计工具LineCount 3.6.3详解》 在软件开发过程中,代码行数(LOC,Lines of Code)是衡量项目规模、工作量以及开发进度的一个常见指标。LineCount 3.6.3就是这样一款专为程序员设计的代码行数统计工具,...

    VBCodeLines 代码行数统计工具

    - **代码行数统计**:VBCodeLines能够精确计算VB6项目中各个模块、类、过程的代码行数,包括空行、注释行和实际代码行。 - **分类统计**:它区分了不同类型的代码行,如常量定义、变量声明、函数、过程等,帮助...

    [代码行数统计工具]SourceCounter

    【代码行数统计工具】SourceCounter 是一个专用于统计源代码行数的实用工具,它在软件开发过程中扮演着重要角色。源代码行数(SLOC,Source Lines of Code)是衡量软件规模的一种常见方法,虽然它并不能完全反映代码...

    asp代码行数统计器

    "asp代码行数统计器"是一个工具,专门用来计算ASP源代码文件中的代码行数,这对于代码维护、性能分析以及项目管理都有一定的帮助。 代码行数统计是软件工程中一个常见的指标,虽然它并不能完全反映代码的质量和复杂...

Global site tag (gtag.js) - Google Analytics