An open API service indexing awesome lists of open source software.

https://github.com/sixarm/sixarm_ruby_pathname_dirnames

SixArm.com » Ruby » Pathname#dirnames method to iterate on parent directories
https://github.com/sixarm/sixarm_ruby_pathname_dirnames

dirname gem pathname ruby

Last synced: about 1 year ago
JSON representation

SixArm.com » Ruby » Pathname#dirnames method to iterate on parent directories

Awesome Lists containing this project

README

          

# SixArm.com → Ruby →
Pathname#dirnames method to iterate on parent directories

* Doc:
* Gem:
* Repo:

## Introduction

This gem has one method: Pathname#dirnames.

It will return an enumerable of pathnames created by calling #dirname repeatedly.

This can be useful for traversing directories upwards to parent, grandparent, etc.

Example:

p = Pathname.new('/foo/goo/hoo.txt')
p.dirnames
#=> ['/foo/goo', '/foo', '/']

For docs go to

Want to help? We're happy to get pull requests.

## Install

### Gem

To install this gem in your shell or terminal:

gem install sixarm_ruby_pathname_dirnames

### Gemfile

To add this gem to your Gemfile:

gem 'sixarm_ruby_pathname_dirnames'

### Require

To require the gem in your code:

require 'sixarm_ruby_pathname_dirnames'

## Example to find a file

To find the first occurance of a file named "my.txt" in a path or its parents:

basename = "my.txt"
p = Pathname.new('/foo/goo/hoo/*')
puts p.dirnames.find{|dirname| (dirname + basename).exist?}

Note that the "*" at the end of the pathname is to give dirname something to chop off; the "*" is being used as chaff, not as a file matcher nor string matches.