对于Ruby的理解,我们需要不断的从实际代码编写中去总结经验,提升我们对这项语言的理解程度。在这里我们就为大家介绍一种技巧,关于Ruby文件行数计算的相关技巧。#t#
代码核心在于获取某文件行数 以及 某文件夹下所有文件的遍历,前者好像找不到什么好的API,我使用的是遍历的方法。后者有很多重方法,就用简单点的Find了,下次尝试用Tree的形式并生成xml
PS 本来想弄个后缀过滤,后来发现linux下许多文件都没有后缀的~~~不管了。
Ruby文件行数计算代码示例:
- 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)
- @directorydirectory = 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|
- pathpathlite = 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
以上就是Ruby文件行数计算的使用技巧介绍。希望对大家有所帮助。