Joint

MongoMapper and GridFS joined in file upload love.

Usage

Declare the plugin and use the attachment method to make attachments.

class Foo
  include MongoMapper::Document
  plugin Joint

  attachment :image
  attachment :pdf
end

This gives you #image, #image=, #pdf, and #pdf=. The = methods take any IO that responds to read (File, Tempfile, etc). The image and pdf methods return a GridIO instance (can be found in the ruby driver).

Also, #image and #pdf are proxies so you can do stuff like:

doc.image.id, doc.image.size, doc.image.type, doc.image.name

If you call a method other than those in the proxy it calls it on the GridIO instance so you can still get at all the GridIO instance methods.

Note on Patches/Pull Requests

  • Fork the project.

  • Make your feature addition or bug fix.

  • Add tests for it. This is important so I don't break it in a future version unintentionally.

  • Commit, do not mess with rakefile, version, or history. (if you want to have your own version, that is fine but bump version in a commit by itself I can ignore when I pull)

  • Send me a pull request. Bonus points for topic branches.

Copyright

Copyright © 2010 John Nunemaker. See LICENSE for details.