Class: GoogleShortLinks::Client
- Inherits:
-
Object
- Object
- GoogleShortLinks::Client
- Includes:
- HTTParty
- Defined in:
- lib/google_short_links/client.rb
Overview
Client for Google Short Links.
Examples
client = GoogleShortLinks::Client.new :server => 'short.example.com', :secret => 'abcdef1234567890', :email => '[email protected]'
link = client.get_or_create_hash 'http://example.com/parent/child/long_document_name.html', :is_public => true
link # => {"status"=>"ok", "url"=>"http://example.com/parent/child/long_document_name.html", "estimated_api_calls_remaining"=>98, "shortcut"=>"abc12", "usage_count"=>0, "owner"=>"[email protected]", "is_public"=>true, "is_hash"=>true}
Instance Attribute Summary collapse
-
#email ⇒ Object
The email for the account under which the links will be created.
-
#secret ⇒ Object
Your HMAC-SHA1 secret.
-
#server ⇒ Object
The domain name where Google Short Links is hosted.
Instance Method Summary collapse
-
#get_details(shortcut, params = {}) ⇒ Object
Gets details about a link from its shortcut.
-
#get_details_url(shortcut, params = {}) ⇒ Object
Creates a URL that is used to get details about a link from its shortcut.
-
#get_or_create_hash(url, params = {}) ⇒ Object
Shortens a URL.
-
#get_or_create_hash_url(url, params = {}) ⇒ Object
Creates a URL that is used to create a hash.
-
#get_or_create_shortlink(url, shortcut, params = {}) ⇒ Object
Creates a shortlink with a customized shortcut.
-
#get_or_create_shortlink_url(url, shortcut, params = {}) ⇒ Object
Creates a URL that is used to create a shortlink with a customized shortcut.
-
#initialize(options = {}) ⇒ Client
constructor
Initializes a new Client.
Constructor Details
#initialize(options = {}) ⇒ Client
Initializes a new Client.
Parameters
options
-
Optional Hash containing configuration values.
Options
- :server
-
The domain name where Google Short Links is hosted.
- :secret
-
Your HMAC-SHA1 secret.
-
The email for the account under which the links will be created.
44 45 46 47 48 |
# File 'lib/google_short_links/client.rb', line 44 def initialize ={} self.server = [:server] self.secret = [:secret] self.email = [:email] end |
Instance Attribute Details
#email ⇒ Object
The email for the account under which the links will be created.
26 27 28 |
# File 'lib/google_short_links/client.rb', line 26 def email @email end |
#secret ⇒ Object
Your HMAC-SHA1 secret.
23 24 25 |
# File 'lib/google_short_links/client.rb', line 23 def secret @secret end |
#server ⇒ Object
The domain name where Google Short Links is hosted.
20 21 22 |
# File 'lib/google_short_links/client.rb', line 20 def server @server end |
Instance Method Details
#get_details(shortcut, params = {}) ⇒ Object
Gets details about a link from its shortcut.
Parameters
shortcut
-
Required String containing the URL to be shortened.
params
-
Optional Hash that will add or override GET parameters in the URL.
Examples
link = client.get_details 'example'
link # => {"status"=>"ok", "url"=>"http://example.com/parent/child/long_document_name.html", "estimated_api_calls_remaining"=>100, "shortcut"=>"example", "usage_count"=>0, "owner"=>"[email protected]", "is_public"=>true, "is_hash"=>false}
170 171 172 |
# File 'lib/google_short_links/client.rb', line 170 def get_details shortcut, params={} self.class.get(get_details_url(shortcut, params)).parsed_response end |
#get_details_url(shortcut, params = {}) ⇒ Object
Creates a URL that is used to get details about a link from its shortcut.
Parameters
shortcut
-
Required String containing the URL to be shortened.
params
-
Optional Hash that will add or override GET parameters in the URL.
Examples
link_url = client.get_details_url 'example'
link_url # => "http://short.example.com/js/get_details?oauth_signature_method=HMAC-SHA1&shortcut=example×tamp=1321663629.0&user=ben%40example.com&oauth_signature=p8XqzF0lITupKN3Ta0qu2E8hqBI%3D"
110 111 112 113 114 115 116 |
# File 'lib/google_short_links/client.rb', line 110 def get_details_url shortcut, params={} request_path = request_path(:get_details) query = params_to_query(base_params.merge(:shortcut => shortcut).merge(params)) digest_url(request_path, query) end |
#get_or_create_hash(url, params = {}) ⇒ Object
Shortens a URL.
Parameters
url
-
Required String containing the URL to be shortened.
params
-
Optional Hash that will add or override GET parameters in the URL.
Parameters
- :is_public
-
Boolean for whether or not the short link can be accessed without logging in to Google Apps.
Examples
link = client.get_or_create_hash 'http://example.com/parent/child/long_document_name.html', :is_public => true
link # => {"status"=>"ok", "url"=>"http://example.com/parent/child/long_document_name.html", "estimated_api_calls_remaining"=>98, "shortcut"=>"abc12", "usage_count"=>0, "owner"=>"[email protected]", "is_public"=>true, "is_hash"=>true}
134 135 136 |
# File 'lib/google_short_links/client.rb', line 134 def get_or_create_hash url, params={} self.class.get(get_or_create_hash_url(url, params)).parsed_response end |
#get_or_create_hash_url(url, params = {}) ⇒ Object
Creates a URL that is used to create a hash.
Parameters
url
-
Required String containing the URL to be shortened.
params
-
Optional Hash that will add or override GET parameters in the URL.
Parameters
- :is_public
-
Boolean for whether or not the short link can be accessed without logging in to Google Apps.
Examples
link_url = client.get_or_create_hash_url 'http://example.com/parent/child/long_document_name.html', :is_public => true
link_url # => "http://short.example.com/js/get_or_create_hash?is_public=true&oauth_signature_method=HMAC-SHA1×tamp=1321663459.0&url=http%3A%2F%2Fexample.com%2Fparent%2Fchild%2Flong_document_name.html&user=ben%40example.com&oauth_signature=JElQ0Oq59q%2BOsinYuMzGX%2F8Tn2U%3D"
66 67 68 69 70 71 72 |
# File 'lib/google_short_links/client.rb', line 66 def get_or_create_hash_url url, params={} request_path = request_path(:get_or_create_hash) query = params_to_query(base_params.merge(:url => url).merge(params)) digest_url(request_path, query) end |
#get_or_create_shortlink(url, shortcut, params = {}) ⇒ Object
Creates a shortlink with a customized shortcut.
Parameters
url
-
Required String containing the URL to be shortened.
shortcut
-
Required String containing the custom shortcut.
params
-
Optional Hash that will add or override GET parameters in the URL.
Parameters
- :is_public
-
Boolean for whether or not the short link can be accessed without logging in to Google Apps.
Examples
link = client.get_or_create_shortlink 'http://example.com/parent/child/long_document_name.html', 'example', :is_public => true
link # => {"status"=>"ok", "url"=>"http://example.com/parent/child/long_document_name.html", "estimated_api_calls_remaining"=>99, "shortcut"=>"example", "usage_count"=>0, "owner"=>"[email protected]", "is_public"=>true, "is_hash"=>false}
155 156 157 |
# File 'lib/google_short_links/client.rb', line 155 def get_or_create_shortlink url, shortcut, params={} self.class.get(get_or_create_shortlink_url(url, shortcut, params)).parsed_response end |
#get_or_create_shortlink_url(url, shortcut, params = {}) ⇒ Object
Creates a URL that is used to create a shortlink with a customized shortcut.
Parameters
url
-
Required String containing the URL to be shortened.
shortcut
-
Required String containing the custom shortcut.
params
-
Optional Hash that will add or override GET parameters in the URL.
Parameters
- :is_public
-
Boolean for whether or not the short link can be accessed without logging in to Google Apps.
Examples
link_url = client.get_or_create_shortlink_url 'http://example.com/parent/child/long_document_name.html', 'example', :is_public => true
link_url # => "http://short.example.com/js/get_or_create_shortlink?is_public=true&oauth_signature_method=HMAC-SHA1&shortcut=example×tamp=1321663613.0&url=http%3A%2F%2Fexample.com%2Fparent%2Fchild%2Flong_document_name.html&user=ben%40example.com&oauth_signature=FsOEjCDw3qpz%2B59Pdi4d1Qvv0Os%3D"
91 92 93 94 95 96 97 |
# File 'lib/google_short_links/client.rb', line 91 def get_or_create_shortlink_url url, shortcut, params={} request_path = request_path(:get_or_create_shortlink) query = params_to_query(base_params.merge(:url => url, :shortcut => shortcut).merge(params)) digest_url(request_path, query) end |