Skip to content

syntruth/Associo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Associo

This is a fork and rework of John Nunemaker's original Joint plugin for MongoMapper. To quote his original README:

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 Associo

  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.

Setting GridFS Chunk Size

You can set the chunkSize value of the GridFS file by passing in the option to the attachment call. This size is in bytes, and will default to the MongoDB default of 255k.

class Foo
  include MongoMapper::Document
  plugin Associo
  
  attachment :file, chunk_size: 2097152
end

TODO

  • Rework the tests so that they pass again.
  • Rubocop/clean up the code.
  • Maybe refactor a few things to make understanding the plugin just a bit easier. (Not that it's hard. :D)

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 (c) 2010 John Nunemaker. See LICENSE for details.
Copyright (c) 2016 Randy Carnahan. See LICENSE for details.

About

A Fork of the MongoMapper Joint plugin.

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages