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

ruby进行文件行数计算

    博客分类:
  • RUBY
阅读更多

昨天软件工程课上蛮有收获,提到了Gantt图,项目时间管理等一些比较感兴趣的东西。其中项目复杂度最简单的方法可以通过项目中代码行数确定。逐用ruby 尝试下。

 

代码核心在于获取某文件行数 以及 某文件夹下所有文件的遍历,前者好像找不到什么好的API,我使用的是遍历的方法。后者有很多重方法,就用简单点的Find了,下次尝试用Tree的形式并生成xml

 

PS 本来想弄个后缀过滤,后来发现linux下许多文件都没有后缀的~~~不管了。

##
##  this is design for calculate the totals line of code in your project
##  version 1 @october 8th,2008 
##
 

module Enumerable
  # function to get total lines for file
  def total_lines
    lines = 0
    each_with_index {|content,lines|}
    return lines+1
  end
end


class CheckLines
  require 'find'


  @check_type = %w{txt rb erb yml html css xml}
  def initialize(directory)
    @total_lines = 0
    if  File.directory?(directory)
          @directory = directory 
          @contents = {}
          self.go
    else puts "#{directory} is not a directory! check it out!" and return
    end
  end
  
  def go
    if @directory
      Find.find @directory do |path|
        pathlite = path.gsub(@directory,'')
        if File.file? path
          File.open path do |f|
              tmp_line = f.total_lines  
             @contents.store(pathlite,tmp_line) 
             @total_lines += tmp_line
          end
        end
      end
      puts @total_lines
    end
  end
  
  def details
    @contents.each do |key,value|
      puts "#{key} file has lines of #{value}"
    end
  end
end

 写的时候出了个小问题,在class内定义了HASH @contents={} 然后在details里面调用时报错,提示NilClass,在 initialize里面重新定义一次才能通过,也就是说你写在class 和 function 外面的 东西它是不执行的?

下次改进:读取文件过滤,结果生成XML,然后通过Flex的图表画出来。

分享到:
评论

相关推荐

    计算代码行数(普通的不包含lua)

    以下是一些常见编程语言的代码行数计算方法: 1. **Python**:Python的代码行数可以通过内置的`__len__()`方法或者使用第三方库如`cloc`或`sloccount`来计算,这些工具可以区分空行、注释和实际代码。 2. **Java**...

    python代码行数统计.zip

    - **使用内置函数**:Python标准库中没有直接统计代码行数的函数,但可以通过读取文件并计算换行符数量来近似统计。 - **使用第三方库**:例如`cloc`库可以计数空行、注释行和实际代码行,提供更准确的统计结果。 ...

    ruby_loc_counter:计算一个或多个 Ruby 文件中的总行数和 LOC 的简单脚本

    主脚本位于bin/ruby_loc_counter并接受一个参数,它可能是以下任何一个: 单个文件名目录名表示 Glob 的字符串在每种情况下,脚本都会找到所有匹配的 Ruby 文件并计算总行数和非注释、非空白行数。 这些结果将作为...

    测代码行数工具.zip

    "测代码行数工具.zip" 提供了一个工具,能够帮助我们快速统计指定文件夹中各种源码文件的代码行数,支持多种编程语言。这个工具对于开发者、项目经理以及代码审计人员来说非常实用。 这个压缩包中包含的主要功能...

    josephine:计算项目目录中代码行数的 Ruby gem

    Ruby gem,可计算文件数、代码总行数、注释、行间距和每个文件扩展名的平均 LOC。 它还排除了名称中带有“vendor”的目录中的文件。 安装 将此行添加到您的应用程序的 Gemfile gem 'josephine' 然后执行$ bundle ...

    代码行数统计

    通常,用户只需要指定包含源代码的目录,工具就会自动扫描并计算出各文件的代码行数。结果可能会包括空行、注释行和实际可执行代码行的统计,这为代码质量和性能评估提供了数据支持。 总的来说,“代码行数统计”...

    Ruby-MetricFu一个完整的代码度量

    Ruby-MetricFu是一个强大的...你可以通过克隆或下载解压后,在项目中设置配置文件,然后运行MetricFu来分析你的Ruby代码。记得阅读文档以了解如何定制报告和处理分析结果,以便更有效地利用这个工具提升你的代码质量。

    Ruby-Cane代码质量阈值检查可作为构建的一部分

    Cane-master文件可能包含Cane项目的源代码,包括配置文件、示例用法、测试用例等。通过查看和学习这些内容,开发者可以更深入地了解Cane的工作机制,自定义规则以适应特定项目的需求,或者为Cane贡献新的检查模块。 ...

    支持所有文件,界面化代码行统计器

    用户下载并解压后,可以直接运行这个文件启动统计器,按照向导式的步骤进行操作,实现对代码行数的快速统计。可能包含的特性有批量处理、自定义过滤规则(比如排除特定类型的注释或者空行)、导出报告等功能,以满足...

    linecount代码统计工具

    Linecount的工作原理是通过解析源代码文件的格式和结构,计算出注释、空行以及实际代码行的数量。这对于评估代码的可读性、比较不同版本的代码差异,或者在项目中实施代码规范都有极大的帮助。例如,如果发现某个...

    codelines:计算一个或多个存储库中包含的代码行数

    计算一个或多个存储库中包含的代码行数。 当前仅存在对GitHub的支持,但是可以随时为您想要的任何托管网站制作新的适配器。 安装 $ gem install codelines 例子 您可以使用运行内置可执行文件的代码行,也可以在...

    linecount3.6.3.rar

    "LineCount 3.6.3"是一款专用于统计源代码文件行数的实用工具,它可以帮助程序员和软件开发团队高效地追踪项目进度,评估代码复杂性,以及进行代码审计。这款工具支持多种源文件格式,确保了在处理不同编程语言的...

    iOS开发之统计Xcode工程的代码行数

    一旦你定位到工程目录,你可以使用以下命令来统计Objective-C(`.m`)、Objective-C++(`.mm`)、C++(`.cpp`)、头文件(`.h`)以及Ruby Script(`.rss`)的代码行数: ```bash find . "(" -name "*.m" -or -name ...

    代码统计工具cloc,windows单文件版

    CLOC的主要功能在于计算代码库的规模,通过统计文件数量、空白行、注释行和实际代码行,为软件开发提供了一种量化评估的方法。这对于项目管理和代码质量控制具有重要意义。以下是对CLOC关键知识点的详细解释: 1. *...

    各种编程语言的代码计算器

    这种工具的功能强大,不仅可以计算纯代码的数量,还能分析项目中的注释数量,以及总的代码行数,这对于理解和评估项目的规模、复杂度以及维护性具有重要意义。 在软件开发过程中,代码统计是不可或缺的一环。通过...

    Introduction to Groovy

    下面是一个简单的脚本示例,该脚本用于计算文本文件中的行数: ```groovy count = 0 file = new File(args[0]).eachLine { count++ } println "line count for ${args[0]} is ${count}" ``` 在这个例子中,`each...

    源代码 计数器 使用于任何一种语言

    计数器不仅统计行数,还能计算字符数或字节数,这对于了解代码库的大小和可能的性能影响非常有价值。 在项目管理中,源代码计数器可以帮助估算项目的进度和工作量。开发团队可以通过比较不同时间点的统计结果来追踪...

    CLOC(Count Lines of Code)-1.64

    CLOC(Count Lines of Code)是一个强大的开源工具,用于统计源代码中的代码行数、空行和注释行。这个工具在软件开发领域非常有用,因为它可以帮助开发者和项目管理者了解代码库的规模,评估项目的复杂性,以及跟踪...

    Go-fzf-一个Go编写的命令行模糊查询器

    - **自定义配置**:可以通过环境变量或配置文件调整搜索行为,如排序方式、最大显示行数等。 ## 5. 扩展与集成 Go-fzf不仅可以单独使用,还可以与其他命令行工具集成,例如与`vim`、`tmux`、`zsh`等进行深度集成,...

    macos测试

    在进行测试时,`grep`命令用于在文件中搜索特定模式,`find`帮助在文件系统中查找文件,而`wc`则用于计算文件的行数、单词数和字符数。`sed`和`awk`是两个强大的文本处理工具,可以进行数据提取、转换和过滤。 对于...

Global site tag (gtag.js) - Google Analytics