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

18810625123 · 2017年06月10日 · 最后由 nouse 回复于 2017年06月10日 · 2382 次阅读

介绍:

  • 这个 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 时会收到通知。觉得好用的朋友们别忘了分享给小伙伴们哦 😄

brothers 太不政治正确了

nouse 回复

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

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