goshortener 1.1 → 1.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (3) hide show
  1. data/README.rdoc +9 -3
  2. data/lib/goshortener.rb +12 -19
  3. metadata +19 -3
data/README.rdoc CHANGED
@@ -10,8 +10,14 @@ Uses Google URL shortener API service to shorten/expand given URLs.
10
10
  of if you are using bundler, add the following line to your Gemfile.
11
11
  gem "goshortener"
12
12
 
13
- === Initialize and shorten urls
13
+ === Initialize
14
+ go = GoShortener.new(YOUR_API_KEY)
15
+ or
14
16
  go = GoShortener.new
17
+
18
+ Using Google API keys will increase the usage quota.
19
+
20
+ === Shorten urls
15
21
  short_url = go.shorten "http://github.com/luckydev"
16
22
 
17
23
  === To expand short urls
@@ -20,8 +26,8 @@ of if you are using bundler, add the following line to your Gemfile.
20
26
  === Example usage in irb
21
27
  ruby-1.9.2-p136 :001 > require "goshortener"
22
28
  => true
23
- ruby-1.9.2-p136 :002 > go = GoShortener.new
24
- => #<GoShortener:0x93b35e0 @base_url="https://www.googleapis.com/urlshortener/v1/url">
29
+ ruby-1.9.2-p136 :002 > go = GoShortener.new("yourapikeyfromgoogle")
30
+ => #<GoShortener:0x93b35e0 @base_url="https://www.googleapis.com/urlshortener/v1/url", @api_key="yourapikeyfromgoogle">
25
31
  ruby-1.9.2-p136 :003 > go.shorten "http://github.com/luckydev"
26
32
  => "http://goo.gl/TCZHi"
27
33
  ruby-1.9.2-p136 :004 > go.lengthen "http://goo.gl/TCZHi"
data/lib/goshortener.rb CHANGED
@@ -1,5 +1,4 @@
1
1
  require "rubygems"
2
- require "bundler/setup"
3
2
 
4
3
  require "rest_client"
5
4
  require "json"
@@ -7,16 +6,24 @@ require "json"
7
6
 
8
7
  class GoShortener
9
8
 
10
- def initialize
9
+ #initialize with/without api key
10
+ def initialize(api_key="")
11
+ unless api_key == ""
12
+ @api_key = api_key
13
+ else
14
+ puts "[GoShortener] Use Google API key to increase your usage quota."
15
+ end
11
16
  @base_url = "https://www.googleapis.com/urlshortener/v1/url"
12
17
  end
13
18
 
19
+ #Given a long URL, Returns the true short url using http://goo.gl service
14
20
  def shorten(long_url)
15
21
  if long_url.is_a?(String)
16
22
  request_json = {'longUrl' => long_url}.to_json
23
+ request_url = @api_key ? (@base_url + "?key=#{@api_key}") : @base_url
17
24
 
18
25
  begin
19
- response = RestClient.post @base_url, request_json, :accept => :json, :content_type => :json
26
+ response = RestClient.post request_url, request_json, :accept => :json, :content_type => :json
20
27
  rescue
21
28
  raise "Please provide a valid url string"
22
29
  end
@@ -29,25 +36,11 @@ class GoShortener
29
36
  return short_url
30
37
  end
31
38
 
39
+ #Given a short URL, Returns the true long url using http://goo.gl service
32
40
  def lengthen(short_url)
33
- ##
34
- # Accepts a short url shortened by http://goo.gl and returns original
35
- # long url.
36
- #
37
- # Examples:
38
- # go = GoShortener.new
39
- #
40
- # go.lengthen("http://goo.gl/TCZHi") #=> "http://github.com/luckydev"
41
- #
42
- # go.lengthen("http://www.goo.gl/TCZHi") #=> Error
43
- # go.lengthen("goo.gl/TCZHi") #=> Error
44
- # go.lengthen("http://goo.gl/") #=> Error
45
- # go.lengthen("http://goo.gl/T") #=> Error
46
- # go.lengthen("http://bit.ly/TCZHi") #=> Error
47
- #
48
- ##
49
41
  if short_url.is_a?(String)
50
42
  request_params = {:shortUrl => short_url}
43
+ request_params.merge!(:key => @api_key) if @api_key
51
44
 
52
45
  begin
53
46
  response = RestClient.get @base_url, :params => request_params
metadata CHANGED
@@ -1,8 +1,12 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: goshortener
3
3
  version: !ruby/object:Gem::Version
4
+ hash: 11
4
5
  prerelease:
5
- version: "1.1"
6
+ segments:
7
+ - 1
8
+ - 2
9
+ version: "1.2"
6
10
  platform: ruby
7
11
  authors:
8
12
  - lakshmanan
@@ -10,7 +14,7 @@ autorequire:
10
14
  bindir: bin
11
15
  cert_chain: []
12
16
 
13
- date: 2011-02-06 00:00:00 +05:30
17
+ date: 2011-02-22 00:00:00 +05:30
14
18
  default_executable:
15
19
  dependencies:
16
20
  - !ruby/object:Gem::Dependency
@@ -21,6 +25,9 @@ dependencies:
21
25
  requirements:
22
26
  - - ">="
23
27
  - !ruby/object:Gem::Version
28
+ hash: 3
29
+ segments:
30
+ - 0
24
31
  version: "0"
25
32
  type: :runtime
26
33
  version_requirements: *id001
@@ -32,6 +39,9 @@ dependencies:
32
39
  requirements:
33
40
  - - ">="
34
41
  - !ruby/object:Gem::Version
42
+ hash: 3
43
+ segments:
44
+ - 0
35
45
  version: "0"
36
46
  type: :runtime
37
47
  version_requirements: *id002
@@ -61,17 +71,23 @@ required_ruby_version: !ruby/object:Gem::Requirement
61
71
  requirements:
62
72
  - - ">="
63
73
  - !ruby/object:Gem::Version
74
+ hash: 3
75
+ segments:
76
+ - 0
64
77
  version: "0"
65
78
  required_rubygems_version: !ruby/object:Gem::Requirement
66
79
  none: false
67
80
  requirements:
68
81
  - - ">="
69
82
  - !ruby/object:Gem::Version
83
+ hash: 3
84
+ segments:
85
+ - 0
70
86
  version: "0"
71
87
  requirements: []
72
88
 
73
89
  rubyforge_project:
74
- rubygems_version: 1.5.0
90
+ rubygems_version: 1.5.2
75
91
  signing_key:
76
92
  specification_version: 3
77
93
  summary: GoShortener uses Google URL shortener service to shorten/expand urls.