google_url_shortner 1.0.0 → 1.1.0

Sign up to get free protection for your applications and to get access to all the features.
data/.redcar/tags CHANGED
@@ -1 +1,25 @@
1
- 1294830035
1
+ 1295084597
2
+ Analytics /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb class Analytics
3
+ Client /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb class Client
4
+ Expander /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb class Expander
5
+ Google /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb module Google
6
+ Google /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb module Google
7
+ Google /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb module Google
8
+ Google /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb module Google
9
+ Request /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb class Request
10
+ Shortner /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb class Shortner
11
+ UrlShortner /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb module UrlShortner
12
+ UrlShortner /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb module UrlShortner
13
+ expand /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb def expand(url)
14
+ initialize /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb def initialize
15
+ initialize /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb def initialize( url="" )
16
+ initialize /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb def initialize( short_url="" )
17
+ initialize /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb def initialize(long_url)
18
+ long_url /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb attr_reader :long_url, :short_url
19
+ long_url /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb attr_accessor :short_url, :long_url
20
+ long_url /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb attr_accessor :short_url, :long_url
21
+ short_url /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb attr_reader :long_url, :short_url
22
+ short_url /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb attr_accessor :short_url, :long_url
23
+ short_url /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb attr_accessor :short_url, :long_url
24
+ shorten /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb def shorten(url)
25
+ visitors /home/hassane/ruby_apps/google_url_shortner/lib/google_url_shortner.rb attr_reader :visitors,
data/README.rdoc CHANGED
@@ -6,12 +6,43 @@ Client Ruby pour accèder à l'API Google URL Shortener.
6
6
 
7
7
  gem install google_url_shortner
8
8
 
9
+
10
+ = Nouveautés :
11
+
12
+ -- Google::UrlShortner::Analytics --
13
+ Cette classe nous donne un accès complet aux analytics de Url Shortner :
14
+
15
+ * visiteurs
16
+ * plateformes
17
+ * navigateurs
18
+ * pays
19
+
20
+ -- Google::UrlShortner::Client --
21
+ Shorten et Expand pour encoder et décoder une adress.
22
+
23
+ Exemple :
24
+
25
+ -- Google::UrlShortner::Client.shorten( long_url ) --
26
+
27
+ -- Google::UrlShortner::Client.expand( short_url) --
28
+
9
29
  == Utilisation
10
30
 
31
+
32
+ pre.
33
+
34
+ require "rubygems"
35
+
11
36
  require "google_url_shortner"
12
37
 
13
- client = Google::Shortner.new("http://www.google.com")
38
+ Création d'un client connecté à l'API Google Url Shorten
39
+
40
+ client = Google::UrlShortner::Client.new
41
+
42
+ # Shortening an url.
43
+
44
+ resp = client.shorten("http://www.gtug-dakar.org")
14
45
 
15
- puts client.short_url
46
+ #Getting analytics.
16
47
 
17
- ==
48
+ analytics = client.get_analytics_for(resp.short_url)
data/VERSION CHANGED
@@ -1 +1 @@
1
- 1.0.0
1
+ 1.1.0
@@ -1,7 +1,3 @@
1
- # Generated by jeweler
2
- # DO NOT EDIT THIS FILE DIRECTLY
3
- # Instead, edit Jeweler::Tasks in Rakefile, and run 'rake gemspec'
4
- # -*- encoding: utf-8 -*-
5
1
 
6
2
  Gem::Specification.new do |s|
7
3
  s.name = %q{google_url_shortner}
@@ -22,27 +18,14 @@ Gem::Specification.new do |s|
22
18
  "README.rdoc",
23
19
  "Rakefile",
24
20
  "VERSION",
25
- "googl.gemspec",
26
- "lib/google_url_shortner.rb",
27
- "lib/google/expander.rb",
28
- "lib/google/request.rb",
29
- "lib/google/shortner.rb",
30
- "spec/expand_spec.rb",
31
- "spec/fixtures/expand.json",
32
- "spec/fixtures/shorten.json",
33
- "spec/shorten_spec.rb",
34
- "spec/spec_helper.rb"
21
+ "google_url_shortner.gemspec",
22
+ "lib/google_url_shortner.rb"
35
23
  ]
36
24
  s.homepage = %q{http://github.com/hkairi/google_url_shortner}
37
25
  s.licenses = ["MIT"]
38
26
  s.require_paths = ["lib"]
39
27
  s.rubygems_version = %q{1.4.2}
40
- s.summary = %q{Client Ruby pour accèder à l'API Google URL Shortener.}
41
- s.test_files = [
42
- "spec/expand_spec.rb",
43
- "spec/shorten_spec.rb",
44
- "spec/spec_helper.rb"
45
- ]
28
+ s.summary = %q{Client Ruby pour accèder à l'API Google URL Shortener et aux Analytics.}
46
29
 
47
30
  if s.respond_to? :specification_version then
48
31
  s.specification_version = 3
@@ -1,18 +1,86 @@
1
- require 'rubygems'
2
- require 'httparty'
3
-
4
- require 'google/request'
5
- require 'google/shortner'
6
- require 'google/expander'
7
-
8
- module Google
9
-
10
- def self.shorten(url)
11
- Google::Shortner.new(url)
1
+ require "rubygems"
2
+ require "httparty"
3
+ # Google::UrlShortner::Analytics
4
+ module Google
5
+ module UrlShortner
6
+ class Analytics
7
+ attr_reader :visitors,
8
+ :browsers,
9
+ :countries,
10
+ :platforms,
11
+ :long_url
12
+
13
+ def initialize( url="" )
14
+ return {} if url == ""
15
+ resp ||= Request.get("/urlshortener/v1/url?shortUrl=#{url}&projection=FULL")
16
+ @analytics ||= resp['analytics']['allTime'] if resp
17
+
18
+ @long_url = url
19
+ @visitors = @analytics['shortUrlClicks'].to_i if @analytics
20
+ @browsers = @analytics['browsers'] if @analytics
21
+ @countries = @analytics['countries'] if @analytics
22
+ @platforms = @analytics['platforms'] if @analytics
23
+ [@long_url]
24
+ end
25
+ end
12
26
  end
13
-
14
- def self.expand(url)
15
- Google::Expander.new(url)
27
+ end
28
+ # Google::UrlShortner::Client
29
+ module Google
30
+ module UrlShortner
31
+ class Client
32
+ attr_reader :long_url, :short_url
33
+ #Création d'un nouveau client.
34
+ def initialize
35
+ @short_url = @long_url = nil
36
+ end
37
+ # Crée la short url d'un site donné.
38
+ def shorten(url)
39
+ Google::Shortner.new(url)
40
+ end
41
+ # Retrouve ou retourne l'url d'un site donné à partir du "short_url"
42
+ def expand(url)
43
+ Google::Expander.new(url)
44
+ end
45
+ end
46
+ end
47
+ end
48
+ # Google::UrlShortner::Expander
49
+ module Google
50
+ class Expander
51
+ attr_accessor :short_url, :long_url
52
+ def initialize( short_url="" )
53
+ return nil if !short_url.blank?
54
+ rep = Request.get("/urlshortener/v1/url?shortUrl=#{short_url}")
55
+ if rep.code == 200
56
+ self.long_url = rep['longUrl']
57
+ self.short_url = short_url
58
+ else
59
+ rep.response
60
+ end
61
+ end
16
62
  end
17
-
18
63
  end
64
+ # Google::UrlShortner::Shortner
65
+ module Google
66
+ class Shortner
67
+ attr_accessor :short_url, :long_url
68
+ def initialize(long_url)
69
+ options = {"longUrl" => long_url}.inspect
70
+ resp = Request.post('/urlshortener/v1/url', :body => options)
71
+ if resp.code == 200
72
+ self.short_url = resp['id']
73
+ self.long_url = resp['longUrl']
74
+ else
75
+ resp.response
76
+ end
77
+ end
78
+ end
79
+ end
80
+ # Google::UrlShortner::Resquest
81
+ class Request
82
+ include HTTParty
83
+ base_uri 'https://www.googleapis.com'
84
+ headers 'Content-Type' => 'application/json'
85
+ headers "Content-length" => "0"
86
+ end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: google_url_shortner
3
3
  version: !ruby/object:Gem::Version
4
- hash: 23
4
+ hash: 19
5
5
  prerelease:
6
6
  segments:
7
7
  - 1
8
+ - 1
8
9
  - 0
9
- - 0
10
- version: 1.0.0
10
+ version: 1.1.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Hassane Moustapha
@@ -15,7 +15,7 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-12 00:00:00 +00:00
18
+ date: 2011-01-15 00:00:00 +00:00
19
19
  default_executable:
20
20
  dependencies:
21
21
  - !ruby/object:Gem::Dependency
@@ -129,15 +129,7 @@ files:
129
129
  - Rakefile
130
130
  - VERSION
131
131
  - google_url_shortner.gemspec
132
- - lib/google/expander.rb
133
- - lib/google/request.rb
134
- - lib/google/shortner.rb
135
132
  - lib/google_url_shortner.rb
136
- - spec/expand_spec.rb
137
- - spec/fixtures/expand.json
138
- - spec/fixtures/shorten.json
139
- - spec/shorten_spec.rb
140
- - spec/spec_helper.rb
141
133
  has_rdoc: true
142
134
  homepage: http://github.com/hkairi/google_url_shortner
143
135
  licenses:
@@ -172,7 +164,5 @@ rubygems_version: 1.4.1
172
164
  signing_key:
173
165
  specification_version: 3
174
166
  summary: "Client Ruby pour acc\xC3\xA8der \xC3\xA0 l'API Google URL Shortener."
175
- test_files:
176
- - spec/expand_spec.rb
177
- - spec/shorten_spec.rb
178
- - spec/spec_helper.rb
167
+ test_files: []
168
+
@@ -1,18 +0,0 @@
1
- module Google
2
-
3
- class Expander
4
-
5
- attr_accessor :long_url
6
-
7
- def initialize(short_url)
8
- rep = Request.get("/urlshortener/v1/url?shortUrl=#{short_url}")
9
- if rep.code == 200
10
- self.long_url = rep['longUrl']
11
- else
12
- rep.response
13
- end
14
- end
15
-
16
- end
17
-
18
- end
@@ -1,6 +0,0 @@
1
- class Request
2
- include HTTParty
3
- base_uri 'https://www.googleapis.com'
4
- headers 'Content-Type' => 'application/json'
5
- headers "Content-length" => "0"
6
- end
@@ -1,20 +0,0 @@
1
- module Google
2
-
3
- class Shortner
4
-
5
- attr_accessor :short_url, :long_url
6
-
7
- def initialize(long_url)
8
- options = {"longUrl" => long_url}.inspect
9
- resp = Request.post('/urlshortener/v1/url', :body => options)
10
- if resp.code == 200
11
- self.short_url = resp['id']
12
- self.long_url = resp['longUrl']
13
- else
14
- resp.response
15
- end
16
- end
17
-
18
- end
19
-
20
- end
data/spec/expand_spec.rb DELETED
@@ -1,24 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Googl::Expand do
4
-
5
- before :each do
6
- fake_urls
7
- end
8
-
9
- context "when expand any goo.gl short URL" do
10
-
11
- it { Googl.should respond_to(:expand) }
12
-
13
- subject { Googl.expand('http://goo.gl/7lob') }
14
-
15
- describe "#long_url" do
16
- it "should return a long url" do
17
- subject.long_url.should == 'http://jlopes.zigotto.com.br/'
18
- end
19
- end
20
-
21
- end
22
-
23
-
24
- end
@@ -1,18 +0,0 @@
1
- HTTP/1.1 200 OK
2
- ETag: "EEZ1AD443JkEgW3KJFaymzTd26A/wKW1RiLjLbyUh3AbmrhLHKj0R24"
3
- Expires: Tue, 11 Jan 2011 21:49:04 GMT
4
- Date: Tue, 11 Jan 2011 21:44:04 GMT
5
- Cache-Control: public, max-age=300, must-revalidate, no-transform
6
- Content-Type: application/json; charset=UTF-8
7
- X-Content-Type-Options: nosniff
8
- X-Frame-Options: SAMEORIGIN
9
- X-XSS-Protection: 1; mode=block
10
- Server: GSE
11
- Transfer-Encoding: chunked
12
-
13
- {
14
- "kind": "urlshortener#url",
15
- "id": "http://goo.gl/7lob",
16
- "longUrl": "http://jlopes.zigotto.com.br/",
17
- "status": "OK"
18
- }
@@ -1,18 +0,0 @@
1
- HTTP/1.1 200 OK
2
- ETag: "EEZ1AD443JkEgW3KJFaymzTd26A/1axClUUG_6eCdLbWHvqnOKYu85E"
3
- Cache-Control: no-cache, no-store, max-age=0, must-revalidate
4
- Pragma: no-cache
5
- Expires: Fri, 01 Jan 1990 00:00:00 GMT
6
- Date: Tue, 11 Jan 2011 21:26:33 GMT
7
- Content-Type: application/json; charset=UTF-8
8
- X-Content-Type-Options: nosniff
9
- X-Frame-Options: SAMEORIGIN
10
- X-XSS-Protection: 1; mode=block
11
- Server: GSE
12
- Transfer-Encoding: chunked
13
-
14
- {
15
- "kind": "urlshortener#url",
16
- "id": "http://goo.gl/ump4S",
17
- "longUrl": "http://www.zigotto.com/"
18
- }
data/spec/shorten_spec.rb DELETED
@@ -1,29 +0,0 @@
1
- require 'spec_helper'
2
-
3
- describe Googl::Shorten do
4
-
5
- before :each do
6
- fake_urls
7
- end
8
-
9
- context "when request new short url" do
10
-
11
- it { Googl.should respond_to(:shorten) }
12
-
13
- subject { Googl.shorten('http://www.zigotto.com') }
14
-
15
- describe "#short_url" do
16
- it "should return a short URL" do
17
- subject.short_url.should == 'http://goo.gl/ump4S'
18
- end
19
- end
20
-
21
- describe "#long_url" do
22
- it "should return a long url" do
23
- subject.long_url.should == 'http://www.zigotto.com/'
24
- end
25
- end
26
-
27
- end
28
-
29
- end
data/spec/spec_helper.rb DELETED
@@ -1,27 +0,0 @@
1
- require "rubygems"
2
- require "rspec"
3
- require 'fakeweb'
4
-
5
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__)))
6
- $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
-
8
- require 'googl'
9
-
10
- def load_fixture(name)
11
- File.join(File.expand_path(File.dirname(__FILE__)), '/fixtures', name)
12
- end
13
-
14
- def fake_urls
15
-
16
- FakeWeb.allow_net_connect = false
17
-
18
- # Shorten
19
- url = "https://www.googleapis.com/urlshortener/v1/url"
20
- options = {"longUrl" => "http://www.zigotto.com"}.inspect
21
- FakeWeb.register_uri(:post, url, :response => load_fixture('shorten.json'), :body => options)
22
-
23
- # Expand
24
- url = "https://www.googleapis.com/urlshortener/v1/url?shortUrl=http://goo.gl/7lob"
25
- FakeWeb.register_uri(:get, url, :response => load_fixture('expand.json'))
26
-
27
- end