CORTO - your url shortner gem


  • Yet another url shortner?

corto is a ruby gem that shorten a URL for you and store the result in a SQLite3 database. Why the world needs another url shortener? Well, true to be told I don’t know the answer and I’m pretty sure this code is far away from being revolutionary. However… corto is funniest!

  • Usage

Using corto as standalone utility is straightforward. In case you want to shorten an url you just launch the program with the url as parameter. % bin/corto www.armoredcode.com % corto: www.armoredcode.com shrunk as ji5jnu Please note that you’ve to supply a valid URL, since internally it’s parsed and rejected anything but HTTP and HTTPS verbs. % bin/corto funnystatementhere % corto: it seems funnystatementhere is not a valid url to shrink If you want to deflate a shrunk url, you have just to specify the ‘-d’ flag this way. % bin/corto -d ji5jnu % corto: ji5jnu deflated is www.armoredcode.com

Super easy, isn’t it? Now, go ahead and shrink the web!

  • API

A simple corto shortening session start with class initialization, optionally telling which SQLite3 database to use and then mastering the parameter. require ‘corto’ … corto = Corto.new # we’re now saying the gem we want to use it’s internal database stored in db/corto.db s = corto.shrink(‘www.armoredcode.com’) # s now stores the shrinked url that is already added to database if not present. # If you’ll pass an invalid url to shrink(), nil will be returned instead Deflating a URL is super easy as well # The deflate process is quite straightforward as well d = corto.deflate(s) # d has now the deflated url or nil if that url was not found You can also count how many urls contained into db # If you want to know how many urls you have in your database, just call the count() method. puts ‘Hey, I have stored ’ + corto.count() + ‘ urls’ And finally you can purge your db # Tired of your database and time for a massive clean has come? Let’s purge the db. corto.purge # corto.count == 0 now

  • 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 © 2011 Paolo Perego. See LICENSE for details.