public
Description: Rails plugin: implements Google's Content Delivery Network for all javascript libraries currently supported by their library API.
Homepage: http://rpheath.com/posts/375-google-ajax-libraries-api
Clone URL: git://github.com/rpheath/google_ajax_libraries_api.git
rpheath (author)
Thu Sep 24 06:58:20 -0700 2009
commit  a86690782aeba80ef294322e167bf8a28fcb5aa8
tree    57b623ecad1f4efe7f055a86fc39f735c413ea86
parent  6617fb594acc0bff63d07720bee3e6316bc9abe9
name age message
file MIT-LICENSE Thu Jun 26 10:57:59 -0700 2008 initial commit [rpheath]
file README.textile Fri Feb 20 08:28:46 -0800 2009 added option to load locally (useful for develo... [rpheath]
file Rakefile Thu Jun 26 10:57:59 -0700 2008 initial commit [rpheath]
file init.rb Thu Jun 26 10:57:59 -0700 2008 initial commit [rpheath]
directory lib/ Thu Sep 24 06:58:20 -0700 2009 updated library versions [rpheath]
directory spec/ Thu Sep 24 06:58:20 -0700 2009 updated library versions [rpheath]
file uninstall.rb Thu Jun 26 10:57:59 -0700 2008 initial commit [rpheath]
README.textile

Google Ajax Libraries API (for Rails)

The AJAX Libraries API is a content distribution network and loading architecture for the most popular open source JavaScript libraries. (See http://code.google.com/apis/ajaxlibs/ for more details)

This is nothing more than a Rails plugin that provides a convenient interface for these libraries.

Usage

There are a couple of ways to get access to your library of choice. At this point, there are five supported libraries: jquery, prototype, scriptaculous, mootools, and dojo. This plugin supports them all. To include a library, you can use the convenience helpers in the head of your layout:


<%= google_mootools -%>
<%= google_jquery :version => '1.2.3' -%>
<%= google_prototype :uncompressed => true -%>
<%= google_dojo :version => '1.1.1', :uncompressed => true -%>

You get the idea. By default, the version will be the highest version supported. For instance, jQuery has two supported versions right now: 1.2.3 and 1.2.6. If you want to use 1.2.6, just use <%= google_jquery -%>.

If you need/want to load a few libraries at once, use the google_javascripts() helper, like so:


<%= google_javascripts :prototype, :scriptaculous, :jquery -%>
<%= google_javascripts :prototype, :scriptaculous, :jquery, :uncompressed => true -%>

Pretty straight-forward. I should note, though, if you’re specifying a few libraries at once, the :version option becomes irrelevant, as I’d have no clue which library you were specifying a version for. And if you pass the :uncompressed option, it will apply to all libraries that support an uncompressed version.

I’m sure the code could be improved upon, as I wrote this farely quickly because I started using it in a few of my projects. Feel free to suggest changes and/or “fork and improve”.

Got Internet?

In the rare event that your internet connection has gone missing (it happens, believe it or not), you can specify to load the file from your local javascripts folder by passing the :local option.

<%= google_jquery :local => true %>

This would just look for ‘jquery.js’ in your public/javascripts folder. In the event that you don’t have a local copy, well, I guess you won’t be doing any javascript :-)

Keeping up-to-date

Google is usually on top of things. I’m sure they’ll be supporting more and more libraries as they come out (or become more popular). Fortunately, it’s easy to add a new library to this plugin. Just modify the code located in lib/google_ajax_libraries_api/constants.rb, mimicking the existing library format. (Note: adding a new library in constants.rb will dynamically create a google_newlib helper, so there’s nothing else that needs to be done!)

License

Copyright © 2008 Ryan Heath, released under the MIT license