Skip to content
Effortlessly print enumerables as CSV.
Ruby
Branch: master
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
lib
spec
.gitignore
.rspec
.travis.yml
CHANGELOG
Gemfile
LICENSE
README.md
csvp.gemspec

README.md

csvp

Build Status codecov

csvp helps you effortlessly print enumerables as CSV.

Inspired by awesome_print and useful for getting your data from Ruby console to Excel or Slack.

Give it an Enumerable of objects and they will be printed as CSV on best effort basis. It will even determine the header if possible. Within your enumerable, you can not only use standard Ruby objects like Array, Hash, Struct or OpenStruct but also ActiveRecord objects from Rails.

Installation

$ gem install csvp

Usage

First, require csvp in your program

> require 'csvp'

Then print an Array of Array-s

> csvp [['Alice', 'Bob'],['Chuck', 'Donald']]
Alice,Bob
Chuck,Donald

or an Array of Hash-es

> csvp [{'Alice': 1, 'Bob': 2}, {'Alice': 3, 'Bob': 4}]
Alice,Bob
1,2
3,4

or some ActiveRecord objects

> csvp User.all
email,name,age
alice@csvp.com,Alice,29
bob@csvp.com,Bob,43

Options

All of the options supported by Ruby CSV module can be used.

So you can choose the column separator

> csvp [['Alice', 'Bob'],['Chuck', 'Donald']], col_sep: "\t"
Alice	Bob
Chuck	Donald

or the quote character

> csvp [['Alice', 'Bob'],['Chuck', 'Donald']], quote_char: "\"", force_quotes: true
"Alice","Bob"
"Chuck","Donald"

Conveniently, the two options above are wrapped in their own method - tsvp and qcsvp respectively.

Other CSV goodies

  • q is a command line tool that allows direct execution of SQL-like queries on CSVs/TSVs

  • conformist allows to bend CSVs to your will with declarative schemas

You can’t perform that action at this time.