sbeckeriv / ruby-formatter

A simple indent formatter for ruby
6 stars 2 forks source link

== Synopsis

Simple Ruby Formatter

Created by: Stephen Becker IV Contributions: Andrew Nutter-Upham Contact: sbeckeriv@gmail.com SVN: http://svn.stephenbeckeriv.com/code/ruby_formatter/

Its been done before RadRails did, http://web.archive.org/web/20071118151142/http://www.vim.org/tips/tip.php?tip_id=1368 that guy did it, but I did not look for a ruby formatter until I was done.

It is called simple formatting because it is. I have the concept of 3 differnt indent actions In, Out and Both. I have mixed the concept of indenting and outdenting. Out means you have added white space and in means you remove a layer of white space.

Basic logic Decrease current depth if ((the it is not a one line if unless statment (need to lookfor more oneline blocks) and it ends with end or if the } count is larger then {) or the first word is in the both list)

and depth is larger then zero

Increase current depth if It is not a one liner and (the word is in the out list or the word is in the both list or it looks like a start block) and temp_depth is nil (used for = comment blocks)

Sure there are some regx's and a crap load of gsubs, but it still simple. Its not like its a pychecker (http://www.metaslash.com/brochure/ipc10.html)

== Usage

ruby [options] filelist

options: -s # will change the indent to a space count of # per level by default we space with 1 tab per level -b # create a backup file

examples: ruby simple_formatter.rb -s 3 -b /moo/cluck/cow.rb runs with the indent of 3 spaces,creates a backup file, and formats moo/cluck/cow.rb

Tested with random files off of koders.com