We love open-source at Artsy. We use a ton of it. We’ve also contributed back to numerous projects, including Grape, Analytical, Fog, Kaminari, Barista or TaxCloud. And we have built a few open-source projects from scratch since beginning of 2011.
A gem for swapping iOS simulator states. Saves all the documents, library and cache for the most recently user iOS app into the current folder with a named version. Commands are modelled after git.
A jQuery plugin for ‘locking’ short content in place as the user scrolls by longer content. For example, it will lock metadata and share buttons in place as the user scrolls by a long essay or series of images.
Mongoid extension that enables infinite scrolling with MongoDB.
Master the Heroku CLI from Ruby.
Create MongoDB command-lines from Mongoid configuration.
Beat Heroku’s 60s boot timeout with a proxy.
Heroku will report an application crashed and log an
R10 Boot Timeout error when a web process took longer than 60 seconds to bind to its assigned port. Setup a proxy that will start immediately, report an
up status to Heroku, and forward requests to your application that takes more than 60 seconds to boot.
This gem is a pure Ruby implementation of the HyperLogLog algorithm for estimating cardinalities of sets observed via a stream of events. A Redis instance is used for storing the counters.
A cartesian product implementation in Ruby that doesn’t materialize the product in memory.
A pure Ruby implementation of the SpaceSaver algorithm for estimating the top K elements in a data stream.
Spidey provides a bare-bones framework for crawling and scraping web sites. Its goal is to keep boilerplate scraping logic out of your code. The companion spidey-mongo gem adds MongoDB as a data store.
The rspec-rerun gem is a drop-in solution to retry (rerun) failed RSpec examples. It may be useful, for example, with finicky Capybara tests. The strategy to rerun failed specs is to output a file called
rspec.failures that contains a list of failed examples and to feed that file back to RSpec via
Defines a Resque plugin that allows you to automatically scale up the number of workers running on Heroku and then automatically scale them down once no work is left to do.
Garner is a practical Rack-based cache implementation for RESTful APIs with support for HTTP 304 Not Modified based on time and ETags, model and instance binding and hierarchical invalidation.
To “garner” means to gather data from various sources and to make it readily available in one place, kind-of like a cache!
Want to restart your Rack development with rackup whilst you work? Now you can!
Typical as_json definitions may involve lots of database point queries and method calls. When returning collections of objects, a single call may yield hundreds of database queries that can take seconds. This library mitigates the problem by implementing a module called CachedJson.
CachedJson enables returning multiple JSON formats from a single class and provides some rules for returning embedded or referenced data. It then uses a scheme where fragments of JSON are cached for a particular (class, id) pair containing only the data that doesn’t involve references/embedded documents. To get the full JSON for an instance, CachedJson will combine fragments of JSON from the instance with fragments representing the JSON for its references. In the best case, when all of these fragments are cached, this falls through to a few cache lookups followed by a couple Ruby hash merges to create the JSON.
Using Mongoid::CachedJson we were able to cut our JSON API average response time by about a factor of 10.
A Ruby full-text search implementation for the Mongoid ODM. MongoDB currently has no native full-text search capabilities, so this gem is a good fit for cases where you want something a little less than a full-blown indexing service like Solr. The mongoid_fulltext gem lets you do a fuzzy string search across relatively short strings, which makes it good for populating autocomplete boxes based on the display names of your Rails models but not appropriate for, say, indexing hundreds of thousands of HTML documents.
A jQuery plugin that given a
ul with images inside their
lis will do some things to line them up so that everything fits
inside their container nice and flush to the edges. It’s like google image search but also retaining the integrity of the
original images (no cropping or stretching/squishing).
API Sandbox is a jQuery plugin written in CoffeeScript that allows web apps to easily implement sandbox environments for an API explorer. The plugin includes two parts: apiSandbox, which aids in the creation of inline sandboxes for individual API paths, and APIExplorer, which is a full API explorer solution.
Easy maintenance of collections of processed data in MongoDB with the Mongoid ODM.
Short-circuit serialization of Mongoid model instances when a delayed job is called on them, or when they’re passed as arguments to delayed jobs.
A tool to deploy web applications to Heroku.
A library for generating a list of licensed software from Gemspec. The overwhelming majority of 3rd party licenses require the application that uses them to reproduce the license verbatim in an artifact that is installed with the application itself. Are you currently copying individual license.txt files “by hand” or are you including license text in your documentation with copy/paste? This project aims at improving this situation.
A jQuery plugin to listen for a user entering the konami code.
TinEye Pixmatch Ruby client library. PixMatch is a general image matching engine that allows you to perform large scale image comparisons for a variety of tasks. PixMatch is delivered as a hosted Web Services API. It runs over HTTP using a REST protocol and JSON formatted responses, wrapped by this library.