Gem Dependencies

Note: These are specific comments regarding some of the gems we use. This is not an exhaustive listing. Some gems have dependencies which gem also installs.

actionmailer-2.2.2

Action Mailer allows you to send email from your application using a mailer model and views.

activerecord-2.2.2

Active Record objects don‘t specify their attributes directly, but rather infer them from the table definition with which they‘re linked. Adding, removing, and changing attributes and their type is done directly in the database. Any change is instantly reflected in the Active Record objects. The mapping that binds a given Active Record class to a certain database table will happen automatically in most common cases, but can be overwritten for the uncommon ones.

activeresource-2.2.2

ActiveResource::Base is the main class for mapping RESTful resources as models in a Rails application. For an outline of what Active Resource is capable of, see this README.

acts_as_ferret-0.4.3

We have eliminated the usage of "acts_as_ferret" from GiveALink. If you see an error relating to "ferret" or "acts_as_ferret", please remove the source of the error.

bj-1.0.1?

Bj is a simple background jobber used in many of our scripts. It queues jobs into a database table and then processes them one at a time. This means that the job list is persistent across server crashes, and also allows us to keep jobs running one at a time. Note that we also use BackgrounDRb for certain tasks.

capistrano-2.5.5

Capistrano is a tool for automating tasks on one or more remote servers. It executes commands in parallel on all targeted machines, and provides a mechanism for rolling back changes across multiple machines. It is ideal for anyone doing any kind of system administration. We use it to control the mongrel production servers.

fastthread-1.0.1

fastthread is a Ruby extension which re-implements the primitives in Ruby's thread.rb in C. It has been around since rails version 1.8.6.

fcgi-0.8.7

FastCGI is CGI with a few extensions to optimize speed. FastCGI is language independent, so we could use it with Rails. However, since we are using Apache - mod_proxy - Mongrel, this may not be so important now.

ferret

We have eliminated the usage of "acts_as_ferret" from GiveALink. If you see an error relating to "ferret" or "acts_as_ferret", please remove the source of the error.

hoe-1.9.0

Hoe is a simple rake/rubygems helper for project Rakefiles. It generates all the usual tasks for projects including rdoc generation, testing, packaging, and deployment. You will not typically need to concern yourself with it unless you write rails plugins and need hoe to deploy them.

hpricot-0.7

Hpricot is a very flexible HTML parser, based on Tanaka Akira’s HTree and John Resig’s jQuery, but with the scanner recoded in C. Because of its C foundation, hpricot is far faster than Ruby for parsing.

Mirrored

A gem that wraps the mirrored API from Del.icio.us, allowing us to easily accept a user's Del.icio.us bookmarks.

mongrel_cluster-1.1.5

Mongrel_cluster is a GemPlugin that wrappers the mongrel HTTP server and simplifies the deployment of webapps using a cluster of mongrel servers. Mongrel_cluster will conveniently configure and control several mongrel servers, or groups of mongrel servers, which are then load balanced using a reverse proxy solution. We use apache with mod_proxy on smithers as our production environment.

mysql-2.7

We use the mysql gem plugin to give us ActiveRecord access to our MySQL database. When you have a moment, read this excellent discussion of how to optimizde the use of ActiveRecord in Rails applications. Most Ruby programs tend to make large, unnecessary "blanket" queries - "SELECT *" when in fact more specific queries would be faster and more efficient. We have a separate area for MySQL documentation which remains under continual development. Optimizing MySQL performance is important to GiveALink's performance, both in MySQL itself and via intelligent use of ActiveRecord in Rails.

recaptcha-0.1.53

A "CAPTCHA" is a colorful image with distorted text. CAPTCHAs are used by many websites to prevent abuse from "bots," or automated programs usually written to generate spam. No computer program can read distorted text as well as humans can, so bots cannot navigate sites protected by CAPTCHAs. We use them all over GiveALink as a way to reduce spam. However, we use a particular kind of CAPTCHA: "Recaptcha". Recaptcha improves the process of digitizing books by sending words that cannot be read by computers to the Web in the form of CAPTCHAs for humans to decipher. This way, GiveALink leverages its user base to assist with another great web project.