迅速掌握Ruby文件行数计算技巧
创始人
2024-06-15 19:11:37
0

对于Ruby的理解,我们需要不断的从实际代码编写中去总结经验,提升我们对这项语言的理解程度。在这里我们就为大家介绍一种技巧,关于Ruby文件行数计算的相关技巧。#t#

 

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

 

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

Ruby文件行数计算代码示例:

  1. module Enumerable   
  2. # function to get total lines for file   
  3. def total_lines   
  4. lines = 0   
  5. each_with_index {|content,lines|}   
  6. return lines+1   
  7. end   
  8. end   
  9. class CheckLines   
  10. require 'find'   
  11. @check_type = %w{txt rb erb yml html css xml}   
  12. def initialize(directory)   
  13. @total_lines = 0   
  14. if File.directory?(directory)   
  15. @directorydirectory = directory   
  16. @contents = {}   
  17. self.go   
  18. else puts "#{directory} is not a directory! check it out!" and return   
  19. end   
  20. end   
  21. def go   
  22. if @directory   
  23. Find.find @directory do |path|   
  24. pathpathlite = path.gsub(@directory,'')   
  25. if File.file? path   
  26. File.open path do |f|   
  27. tmp_line = f.total_lines   
  28. @contents.store(pathlite,tmp_line)   
  29. @total_lines += tmp_line   
  30. end   
  31. end   
  32. end   
  33. puts @total_lines   
  34. end   
  35. end   
  36. def details   
  37. @contents.each do |key,value|   
  38. puts "#{key} file has lines of #{value}"   
  39. end   
  40. end   
  41. end  

以上就是Ruby文件行数计算的使用技巧介绍。希望对大家有所帮助。

相关内容

热门资讯

如何允许远程连接到MySQL数... [[277004]]【51CTO.com快译】默认情况下,MySQL服务器仅侦听来自localhos...
如何利用交换机和端口设置来管理... 在网络管理中,总是有些人让管理员头疼。下面我们就将介绍一下一个网管员利用交换机以及端口设置等来进行D...
施耐德电气数据中心整体解决方案... 近日,全球能效管理专家施耐德电气正式启动大型体验活动“能效中国行——2012卡车巡展”,作为该活动的...
20个非常棒的扁平设计免费资源 Apple设备的平面图标PSD免费平板UI 平板UI套件24平图标Freen平板UI套件PSD径向平...
德国电信门户网站可实时显示全球... 德国电信周三推出一个门户网站,直观地实时提供其安装在全球各地的传感器网络检测到的网络攻击状况。该网站...
为啥国人偏爱 Mybatis,... 关于 SQL 和 ORM 的争论,永远都不会终止,我也一直在思考这个问题。昨天又跟群里的小伙伴进行...
《非诚勿扰》红人闫凤娇被曝厕所... 【51CTO.com 综合消息360安全专家提醒说,“闫凤娇”、“非诚勿扰”已经被黑客盯上成为了“木...
2012年第四季度互联网状况报... [[71653]]  北京时间4月25日消息,据国外媒体报道,全球知名的云平台公司Akamai Te...