First class PDF support in Ruby.

I'm currently maintaining PDF::Writer along with Mike Milner. The library implements most of the PDF spec, and is incredibly useful. However, it's not very usable. It is slow, has API issues, and countless bugs. The current plan is to maintain the library making minor improvements when we can. A large time block would allow for something better: A fast, thin, pretty rewrite. This would go a long way to helping Ruby be a first choice for reporting software development.

The initial focus would be on the following things:

* basic geometry tools (box / line drawing)
* absolute text positioning
* automatic flow control for text
* control of page sizes, layouts, margins, etc.
* basic image embedding

The overarching goal of the project would be to produce something that is m17n friendly, fast, and close to the metal. This would not be a hybrid PDF generator / reporting system, it would be a low level PDF core library that'd be suitable for wrapping in higher level libraries, such as Ruport.

With the current level of funding at the time of writing (12 weeks), I believe I could accomplish at least the bulleted points above, and would continue to get 'as far as I could' into implementing the spec. Suggestions from the community for priorities after the above mentioned features are welcome.

Ruby 1.9 Field Medic.

Ruby 1.9 is out, but many libraries will not run on it without modification.

It'd be nice to take advantage of Ruby 1.9's speed and new features, and converting libraries is one way to help sweeten the deal for anyone thinking of trying out 1.9.

I think if I worked on this project, I'd work my way up Ruport's dependency chain checking for compatibility issues and patching back to maintainers as needed. Though this is slightly selfish, I think that Ruport's dependencies are used in a lot of other places too, when you factor in all our bells and whistles:

* ActiveRecord
* RubyDBI
* PDF::Writer
* transaction-simple
* color
* Scruffy
* Gruff
* rubyzip
* roo
* redcloth
* spec-unit
* Mocha
* RSpec

This list does not even include all the dependencies of our dependencies. The hope is that by getting Ruport running at 100% capability on Ruby 1.9, we'd not only be porting a large and useful software package to the new system, but also providing a large push towards compatibility for a number of other projects. With sufficient remaining time, I could continue working on compatibility for projects suggested by community members, or move on to do a bit of the documentation project.

Uncovering Hidden Gems

I could request suggestions for various useful but under-documented or less well known Ruby libraries, either third party or stdlib, and write a large series of tutorials and quick references. The idea here is that it would hopefully result in a large amount of documentation being written, which would spark contributions to these many 'hidden gems' in Ruby.

Right now, I love this idea, but I don't have a concrete idea of which libraries I'd focus on. Let's see if we can populate this list! Let me know your suggestions at:

I could probably produce 1-2 tutorial articles a week, and possibly even format these for printing at cost via Lulu, under a free documentation license, if things worked out.

Unless otherwise stated, the content of this page is licensed under Creative Commons Attribution-ShareAlike 3.0 License