# FasterCSV 1.0.0 -- The "Sorry it's late, Ara" release!

**URL:** <https://www.ruby-forum.com/t/fastercsv-1-0-0-the-sorry-its-late-ara-release/74974>\
**Category:** Ruby\
**Created:** [November 7, 2006, 11:04am UTC](https://www.ruby-forum.com/t/fastercsv-1-0-0-the-sorry-its-late-ara-release/74974 "2006-11-07T11:04:36Z")\
**Posts on this page:** 3\
**Page:** 1

<div class="post-metadata">

**Author:** ![bbazzarrakk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/47e85d/32.png) [@bbazzarrakk](https://www.ruby-forum.com/u/bbazzarrakk)\
**Post date:** [November 7, 2006, 11:04am UTC](https://www.ruby-forum.com/t/fastercsv-1-0-0-the-sorry-its-late-ara-release/74974/1 "2006-11-07T11:04:36Z")

</div>

# FasterCSV 1.0.0 Released

Ara strikes again, adding his second awesome enhancement to  
FasterCSV. Here’s some example code showing off FasterCSV::Table:

#!/usr/local/bin/ruby -w

# csv\_table.rb

# 

# Created by James Edward G. II on 2006-11-04.

# Copyright 2006 Gray Productions. All rights reserved.

# 

# Feature implementation and example code by Ara.T.Howard.

require “faster\_csv”

table = FCSV.parse(DATA, :headers =\> true, :header\_converters  
=\> :symbol)

# row access

table[0].class # =\> FasterCSV::Row  
table[0].fields # =\> [“zaphod”, “beeblebrox”, “42”]

# column access

table[:first\_name] # =\> [“zaphod”, “ara”]

# cell access

table[1][0] # =\> “ara”  
table[1][:first\_name] # =\> “ara”  
table[:first\_name][1] # =\> “ara”

# manipulation

table \<\< %w[james gray 30]  
table[-1].fields # =\> [“james”, “gray”, “30”]

table[:type] = “name”  
table[:type] # =\> [“name”, “name”, “name”]

table[:ssn] = %w[123-456-7890 098-765-4321]  
table[:ssn] # =\> [“123-456-7890”, “098-765-4321”, nil]

# iteration

table.each do |row|

# …

end

table.by\_col!  
table.each do |col\_name, col\_values|

# …

end

# output

puts table

# \>\> first\_name,last\_name,age,type,ssn

# \>\> zaphod,beeblebrox,42,name,123-456-7890

# \>\> ara,howard,34,name,098-765-4321

# \>\> james,gray,30,name,

**END**  
first\_name,last\_name,age  
zaphod,beeblebrox,42  
ara,howard,34

Thank you Ara!

## What is FasterCSV?

(from the README)

FasterCSV is intended as a replacement to Ruby’s standard CSV library.  
It was designed to address concerns users of that library had and it has  
three primary goals:

1. Be significantly faster than CSV while remaining a pure Ruby  
library.
2. Use a smaller and easier to maintain code base. (FasterCSV is  
larger now,  
but considerably richer in features. The parsing core remains  
quite small.)
3. Improve on the CSV interface.

## What’s New?

(highlights from the CHANGELOG)

- The slurping methods now return the new FasterCSV::Table objects.
- Fixed parser so multibyte :col\_sep works now.
- Fixed FasterCSV.rewind() to reset the FasterCSV.lineno() counter.
- Fixed FasterCSV.rewind() to reset the header processing.
- Enhanced FasterCSV::Row.fields() to support Ranges, even for headers.
- Added a few examples for usage.

## Migrating from CSV to FasterCSV?

The README includes a section on the differences and you can read that  
here:

[http://fastercsv.rubyforge.org/](http://fastercsv.rubyforge.org/)

You call also see general usage in the documentation of the interface,  
right here:

[http://fastercsv.rubyforge.org/classes/FasterCSV.html](http://fastercsv.rubyforge.org/classes/FasterCSV.html)

For quick and dirty switching, try:

begin  
require “faster\_csv”  
FasterCSV.build\_csv\_interface  
rescue LoadError  
require “csv”  
end

# … use CSV here …

If FasterCSV isn’t meeting your needs, I want to here about it:

removed\_email\_address@domain.invalid

## Where can I learn more?

FasterCSV is hosted on RubyForge.

Project page: [http://rubyforge.org/projects/fastercsv/](http://rubyforge.org/projects/fastercsv/)  
Documentation: [http://fastercsv.rubyforge.org/](http://fastercsv.rubyforge.org/)  
Downloads: [http://rubyforge.org/frs/?group\_id=1102](http://rubyforge.org/frs/?group_id=1102)

## How do I get FasterCSV?

FasterCSV is a gem, so as long as you have RubyGems installed it’s as  
simple as:

$ sudo gem install fastercsv

If you need to install RubyGems, you can download it from:

[http://rubyforge.org/frs/?group\_id=126&release\_id=5803](http://rubyforge.org/frs/?group_id=126&release_id=5803)

FasterCSV can also be installed manually. Just download the latest  
release and follow the instructions in INSTALL:

[http://rubyforge.org/frs/?group\_id=1102&release\_id=7740](http://rubyforge.org/frs/?group_id=1102&release_id=7740)

James Edward G. II

---

<div class="post-metadata">

**Author:** ![bbazzarrakk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/47e85d/32.png) [@bbazzarrakk](https://www.ruby-forum.com/u/bbazzarrakk)\
**Post date:** [November 7, 2006, 11:07am UTC](https://www.ruby-forum.com/t/fastercsv-1-0-0-the-sorry-its-late-ara-release/74974/2 "2006-11-07T11:07:31Z")

</div>

On Mon, 6 Nov 2006, James Edward G. II wrote:

> # FasterCSV 1.0.0 Released
> 
> Ara strikes again, adding his second awesome enhancement to FasterCSV.  
> Here’s some example code showing off FasterCSV::Table:

rock on james! thanks for letting this into the wild.

kind regards.

-a

---

<div class="post-metadata">

**Author:** ![bbazzarrakk](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/b/47e85d/32.png) [@bbazzarrakk](https://www.ruby-forum.com/u/bbazzarrakk)\
**Post date:** [November 8, 2006, 3:33am UTC](https://www.ruby-forum.com/t/fastercsv-1-0-0-the-sorry-its-late-ara-release/74974/3 "2006-11-08T03:33:22Z")

</div>

On 11/5/06, James Edward G. II [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) wrote:

> # FasterCSV 1.0.0 Released
> 
> Ara strikes again, adding his second awesome enhancement to  
> FasterCSV. Here’s some example code showing off FasterCSV::Table:

Congrats on a 1.0 release James! Great work. And Ara, your additions  
rock.
