Heroku gem bash completion
Do you need bash completion for the heroku gem?
Here it is => http://github.com/rafmagana/heroku_bash_completion
Please read the README file for installation instructions and usage.
MUSh, a multi-service URL shortener in Ruby
I have to tell the truth, I'm really lazy, if there is a way to avoid to do something I will do so.
What about avoiding to open a browser or create a new tab and click a bookmark or type the address of a URL shortener service when I want to shorten a URL? If I have an opened terminal with IRb and Bash almost the whole day, why don't use it to shorten URLs?
Using the most pure principles of LDD (Laziness-Driven Development) I've created a gem called MUSh, a Multi-service URL Shortener, hence the name.
Yes, I know there are thousands of API wrappers in Ruby for bit.ly, etc. but most of them are fully-featured API wrappers and I didn't want all of those features, I just wanted to shorten URLs, that's it, well, I wanted command-line utilities as well, but I didn't find them in any existing gem.
I've been using MUSh for almost a month now, and it really helps me, that's why I decided to release it as a gem, if you want to install it just do it this way:
$ sudo gem install mush
It currently supports bit.ly, is.gd and u.nu services and it have one command-line utility per service:
$ isgd foo.raflabs.com $ unu foo.raflabs.com $ bitly -l your_login -k your_apikey -u foo.raflabs.com
Hum, the last command doesn't help that much. I know. MUSh currently doesn't support storing your credentials so I use an alias.
In your ~/.bash_profile or ~/.bashrc:
alias bitly='bitly -l your_login -k your_apikey'
after adding your alias issue the following command to refresh your terminal or close it an open another one:
$ source ~/.bash_profile (or whatever is your file called)
and now you'll be able to use the bitly command without specifying your credentials, even without specifying the -u option.
$ bitly foo.raflabs.com
If you're in a Mac and want to copy the shortened URL in one step, just use the pbcopy command:
$ bitly foo.raflabs.com | pbcopy
Then paste it with Cmd-V or with the pbpaste command.
MUSh was made in Ruby, so you can use it in your Ruby applications as well.
Bit.ly
bitly = Mush::Services::Bitly.new bitly.login = "your_login" bitly.apikey = "your_apikey" bitly.shorten "http://foo.raflabs.com" # => http://bit.ly/bJO5IH
Is.gd
isgd = Mush::Services::IsGd.new isgd.shorten "http://foo.raflabs.com" # => http://is.gd/eFZXc
u.nu
unu = Mush::Services::Unu.new unu.shorten "http://foo.raflabs.com" # => http://u.nu/3hsje
Besides, If you want to shorten a URL in your Ruby or Rails console in a fast way add the following to your ~/.irbrc:
require 'mush' def by(url) bitly = Mush::Services::Bitly.new bitly.login = "your_login" bitly.apikey = "your_apikey" bitly.shorten url end def is(url) Mush::Services::IsGd.new.shorten url end def un(url) Mush::Services::Unu.new.shorten url end
An use it like this
by "google.com" is "google.com" un "google.com"
It's a nice set of shortcuts, I'd say.
Again, if you're in a Mac and want to copy the shortened URL in one step, just use my pasteboaRb gem:
$ sudo gem install pasteboaRb
Basically, pasteboaRb adds to_pb and paste methods to the Object class.
is("foo.raflabs.com").to_pb # => http://is.gd/eFZXc
Then paste it in any Mac application with Cmd-V, in the Terminal with the pbpaste command or in a Ruby terminal with the paste method.
paste # => http://is.gd/eFZXc
Finally, why supporting 3 services? it depends on the size you want, If you want the shortest url and you don't care about statistics use u.nu, if you want to see statistics of your shorten URLs and you don't mind to have 1 or 2 extra characters use bit.ly or is.gd.
To see statistics just add a + or - sign to the URL.
http://bit.ly/bJO5IH+
http://is.gd/eFZXc-
Thanks for reading.