A simple bit.ly ruby client.

<img src=“https://travis-ci.org/dx7/ruby-bitly.svg?branch=master” alt=“Build Status” /> <img src=“https://codeclimate.com/github/dx7/ruby-bitly/badges/gpa.svg” />

Configuration

You need to load the gem:

require 'ruby-bitly'

Set global configuration:

Bitly.config do |c|
  c.login   = 'login-here'
  c.api_key = 'key-here'
  c.key     = 'key-here' # deprecated: use api_key instead
  c.use_ssl = false # read more below
  c.proxy   = 'http://localhost:8888' # read more below
end

Or set them individualy:

Bitly.login   = 'login-here'
Bitly.api_key = 'key-here'
Bitly.key     = 'key-here' # deprecated: use api_key instead
Bitly.use_ssl = false # read more below
Bitly.proxy   = 'http://localhost:8888' # read more below

Or set them on methods if you prefer (see it below).

Shorten

# old way
bitly = Bitly.shorten("https://dx7.github.io/")

# old way setting local configuration
bitly = Bitly.shorten("https://dx7.github.io/", "login-here", "key-here")

# new way
bitly = Bitly.shorten(long_url: "https://dx7.github.io/")

# new way setting local configuration
bitly = Bitly.shorten(long_url: "https://dx7.github.io/", login: "login-here", api_key: "key-here", domain: "my.do")

# result
bitly.url #=> "http://bit.ly/2dAjjfo"

y bitly
  :long_url: http://dx7.github.io/
  :url: http://bit.ly/2dAjjfo
  :hash: 2dAjjfo
  :global_hash: micSj7
  :new_hash: 0
  :hash_path: 2dAjjfo
  :status_code: 200
  :status_txt: OK

Expand

# old way
bitly = Bitly.expand("http://bit.ly/2dAjjfo")

# old way setting local configuration
bitly = Bitly.expand("http://bit.ly/2dAjjfo", "login-here", "key-here")

# new way
bitly = Bitly.expand(short_url: "http://bit.ly/2dAjjfo")

# new way setting local configuration
bitly = Bitly.expand(short_url: "http://bit.ly/2dAjjfo", login: "login-here", api_key: "key-here")

# result
y bitly
  :short_url: http://bit.ly/2dAjjfo
  :long_url: https://dx7.github.io/
  :user_hash: 2dAjjfo
  :global_hash: 2dAkyet
  :status_code: 200
  :status_txt: OK

Get Clicks

# old way
bitly = Bitly.get_clicks("http://bit.ly/2dAjjfo")

# old way setting local configuration
bitly = Bitly.get_clicks("http://bit.ly/2dAjjfo", "login-here", "key-here")

# new way
bitly = Bitly.get_clicks(short_url: "http://bit.ly/2dAjjfo")

# new way setting local configuration
bitly = Bitly.get_clicks(short_url: "http://bit.ly/2dAjjfo", login: "login-here", api_key: "key-here")

# result
y bitly
  :short_url: https://bit.ly/2dAjjfo
  :global_hash: 2dAkyet
  :user_clicks: 0
  :user_hash: 2dAjjfo
  :global_clicks: 0
  :status_code: 200
  :status_txt: OK

Proxy

All calls will use the proxy specified by environment variable "http_proxy" by default.

You can set the proxy directly if you prefer:

Bitly.proxy = 'http://localhost:8888'

SSL

All calls will use SSL by default. You can disable it:

Bitly.use_ssl = false

Command Line

Usage
  bitly [options] url

  For help: bitly -h

Basic examples:
  bitly -s http://dx7.github.io
  bitly -e http://bit.ly/2dAjjfo
  bitly --user-clicks http://bit.ly/2dAjjfo
  bitly --global-clicks http://bit.ly/2dAjjfo

Other examples:
  bitly -q -s http://dx7.github.io
  bitly --verbose -e http://bit.ly/2dAjjfo

Options
  -s, --shorten        Shorten a long url (default option)
  -e, --expand         Expand a short bitly url
  -u, --user-clicks    Show user clicks from the short bitly url
  -g, --global-clicks  Show global clicks from the short bitly url

  -l, --login LOGIN    Your bit.ly login
  -k, --key KEY        Your bit.ly API key

  -h, --help           Displays help message, then exit
  -v, --version        Display the version, then exit
  -q, --quiet          Output as little as possible, overrides verbose
  -V, --verbose        Verbose output

Authentication

bit.ly API requires authentication credentials.

You'll need a free bit.ly login and apiKey. Sign up here: http://bit.ly/a/sign_up
If you've already signed up, you can find your apiKey here: http://bit.ly/a/your_api_key

Using commmand line you can supply credentials as parameters. For example:
  bitly -l <login-here> -k <key-here> -s http://dx7.github.io

Or you can create the file ~/.bitly (YAML format) with that content:
  login: <login-here>
  key: <key-here>

Author

dx7 ~ dx7(a)protonmail.ch
Copyright (c) 2010 dx7. Licensed under the MIT License:
http://www.opensource.org/licenses/mit-license.php