Gem 推荐一个好用的 文件与目录 读写 gem

18810625123 · 发布于 2017年06月10日 · 最后由 nouse 回复于 2017年06月10日 · 512 次阅读
30315

介绍:

  • 这个gem对ruby的 File和Dir类进行了封装,可以更方便的读取文件与目录与搜索文件
  • 我做这个主要是懒得去记ruby原生的文件与目录操作api,我把这些常用的功能都封装成更实用好记的方法在这个Ld::File类里了。这样以后需要操作文件和目录时,我可以更加快速与方便的编写代码完成功能。
  • 功能最好的地方,我觉得是搜索,这个搜索不是只搜索目录下一级中的东西,而是搜索目录下所有的(也就是如果目录下还有目录,目录下又有目录,无论目录有多深都会被搜索出来)。另外我没有去区分目录与文件,统统都用Ld::File这个类,这样操作更加方便,实例中有一个type字段来区分这是文件还是目录。

安装:

1、添加Gemfile

gem 'ld'

2、运行bundle install

bundle install

用法

  • 读文件与读文件夹都用Ld::File类,使用open打开一个路径,这个路径可以是绝对路径或相对路径。type字段,0为目录,1为文件。
file = Ld::File.open 'config/application.rb'
file.name # =>application.rb
file.path # => /.../rails_root/config/application.rb
file.type # => 1
  • 目录操作,比如用相对路径,打开这个Rails项目的app目录,children返回所有的子目录以及文件,father返回父目录(即这个Rails项目的根目录),brothers 返回app所有兄弟(同级的所有目录与文件的数组)。
dir =  Ld::File.open 'app'
dir.children #=> 返回app目录下的所有文件夹与文件的数组
dir.father #=>  返回app的上级父目录(即Rails项目根目录)
dir.brothers #=> 返回app所有兄弟(同级的所有目录与文件的数组)
  • 直接调用下级目录的同名方法返回下级目录。比如app目录下的models目录,可以Ld::File.open('app').models这样返回models这个目录
dir =  Ld::File.open 'app'
dir.models #=> 返回models目录
dir.views #=> 返回views目录
  • 搜索文件方法search_files(),参数是正则表达式。返回这个目录以及所有子目录下所有匹配正则表达式的文件
dir = Ld::File.open 'app'
dir.search_files(/.rb$/) #=>
  • 搜索目录方法search_dirs(),和搜索文件一样,会返回目录下及所有子目录下所有匹正则表达式的目录
    • 123 ruby dir = Ld::File.open 'app/views' dir.search_dirs(//) #=>

rubygems.org链接

https://rubygems.org/gems/ld

github项目源码 与文档

https://github.com/18810625123/ld

联系方式,技术支持

  • QQ 370182106
  • 微信 18810625123
  • star我的github项目可在更新gem时会收到通知。觉得好用的朋友们别忘了分享给小伙伴们哦 😄
共收到 3 条回复
775

brothers太不政治正确了

30315
775nouse 回复

你是说名称不太正确么, 我看jquery里也有相同的用法,选择器选择兄弟节点

需要 登录 后方可回复, 如果你还没有账号请点击这里 注册