Sha256: 6c70744b815a7213ee98ae0219f5ce6c32710510c13d7334e543831f625d4934

Contents?: true

Size: 1.75 KB

Versions: 1

Compression:

Stored size: 1.75 KB

Contents

# FS (FileSystem)

Work with your filesystem!

## Problem

This Gem shouldn't reinvent the wheel or be a replacement.
But in Ruby working with the filesystem really hurts!

In your toolbox are at least `File`, `Dir`, `FileUtils`, `Find`, and maybe some more.
Good tools, but to complicated for most cases.
It's not about piping, or copying the shell as it is.
But think about a simple `ls` in the shell, than how you would do this in Ruby.
Got the idea?

## Solution

`FS` gathers the cluttered methods for working with files and dirs. Internally
using the good old standard library, but providing simple methods in a single place.

## Examples

    FS.changedir('~/Projects/fs')
    ==> "/Users/bjuenger/Projects/fs"
    FS.list('.')
    ==> [".git", ".gitignore", ".rvmrc", "fs.gemspec", "Gemfile", "Gemfile.lock", "lib", "Rakefile", "README.mdown", "spec"]
    FS.makedirs('tmp/demo')
    FS.touch('tmp/demo/newfile.txt')
    FS.list('tmp/demo')
    ==> ["newfile.txt"]
    FS.remove('tmp/demo/newfile.txt')
    FS.list('tmp/demo')
    ==> []

## Aliases

Although verbose method names are good, there are some aliases for unix shell
commands (unsorted).

- ls      => :list
- mkdir   => :makedir
- mkdir_p => :makedirs
- rmdir   => :removedir
- rm_r    => :removedirs
- cd      => :changedir
- pwd     => :currentdir
- mv      => :move
- cp      => :copy
- rm      => :remove
- cat     => :read
- ln      => :link
- dir?    => :directory?
- expand  => :expand_path
- []      => :join

## Todo

Here is my mind …

- maybe use underscores (remove_dir)
- remove! to force something
- maybe makedir! to mkdir -p
- maybe touch! to mkdir -p && touch
- use Find#find in FS#find ;)
- file type / ftype
- list_dirs
- list_files
- find_dirs
- find_files
- FS.link('a.txt' => 'b.txt') with a hash

Version data entries

1 entries across 1 versions & 1 rubygems

Version Path
fs-0.2.0 README.mdown