Huge News!Announcing our $40M Series B led by Abstract Ventures.Learn More
Socket
Sign inDemoInstall
Socket

cumulus_csv

Package Overview
Dependencies
Maintainers
1
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

cumulus_csv

  • 0.1.0
  • Rubygems
  • Socket score

Version published
Maintainers
1
Created
Source

= cumulus_csv

CSV Files: I hate them, you probably do too, but sometimes you need to get data into your system and this is the only way it's happening.

If you're deploying a rails app in a cloud setup, you may have troubles if you're trying to store an uploaded file locally and process it later in a background thread (I know I have).

cumulus_csv is one way to solve that problem. You can save your file to your S3 account, and loop over the data inside it at your convenience later. So it doesn't matter where you're doing the processing, you just need to have the key you used to store the file, and you can process away.

THIS GEM IS DEPENDANT ON AWS::S3!

Since this gem uses AWS::S3, it should be no suprise that you'll need similar auth parameters:

manager = Cumulus::CSV::DataFileManager.new( :access_key_id => 'abc', :secret_access_key => '123' )

this manager has 2 main functions: storing your files as they're uploaded, and letting you iterate over them later when you need to.

To store your file on S3 when you upload it, you'd do something like this:

key = manager.store_uploaded_file!(params[:uploaded_file])

That will work for your standard multi part form. The key the file is stored under is returned, it's just the basename of the file. You can pass this key to a rake task or whatever you're using, and it will be made use of later when you want to process this file:

manager.each_row_of(key) do |row| #...some processing of this CSV row end

in that block, you can load each row into your database, or send an email based on each one, whatever it is you're trying to accomplish by having your app interact with this data file.

you can also now retrieve the whole file as a readable temporary file (if, for example, you were using an excel file instead which couldn't be processed by the CSV reader). To do this:

file = manager.fetch_file(key) data = file.read

for the time being this just streams the remote file to a temp file in place, which will naturally be removed by the next deployment of your app.

== 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 evizitei. See LICENSE for details.

FAQs

Package last updated on 28 Apr 2010

Did you know?

Socket

Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.

Install

Related posts

SocketSocket SOC 2 Logo

Product

  • Package Alerts
  • Integrations
  • Docs
  • Pricing
  • FAQ
  • Roadmap
  • Changelog

Packages

npm

Stay in touch

Get open source security insights delivered straight into your inbox.


  • Terms
  • Privacy
  • Security

Made with ⚡️ by Socket Inc