googl 0.1.2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
data/Gemfile CHANGED
@@ -1,9 +1,11 @@
1
1
  source "http://rubygems.org"
2
2
 
3
+ gem "httparty", "0.6.1"
4
+
3
5
  group :development do
4
6
  gem "rspec", "~> 2.3.0"
5
7
  gem "bundler", "~> 1.0.0"
6
8
  gem "jeweler", "~> 1.5.2"
7
9
  gem "rcov", ">= 0"
8
- gem "fakeweb", "~> 1.3.0"
10
+ gem "webmock", "~> 1.6.2"
9
11
  end
@@ -1,9 +1,12 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ addressable (2.2.2)
5
+ crack (0.1.8)
4
6
  diff-lcs (1.1.2)
5
- fakeweb (1.3.0)
6
7
  git (1.2.5)
8
+ httparty (0.6.1)
9
+ crack (= 0.1.8)
7
10
  jeweler (1.5.2)
8
11
  bundler (~> 1.0.0)
9
12
  git (>= 1.2.5)
@@ -18,13 +21,17 @@ GEM
18
21
  rspec-expectations (2.3.0)
19
22
  diff-lcs (~> 1.1.2)
20
23
  rspec-mocks (2.3.0)
24
+ webmock (1.6.2)
25
+ addressable (>= 2.2.2)
26
+ crack (>= 0.1.7)
21
27
 
22
28
  PLATFORMS
23
29
  ruby
24
30
 
25
31
  DEPENDENCIES
26
32
  bundler (~> 1.0.0)
27
- fakeweb (~> 1.3.0)
33
+ httparty (= 0.6.1)
28
34
  jeweler (~> 1.5.2)
29
35
  rcov
30
36
  rspec (~> 2.3.0)
37
+ webmock (~> 1.6.2)
@@ -1,4 +1,4 @@
1
- Copyright 2010 Zigotto®. http://www.zigotto.com.br
1
+ Copyright 2011 Zigotto®. http://www.zigotto.com.br
2
2
 
3
3
  Permission is hereby granted, free of charge, to any person obtaining
4
4
  a copy of this software and associated documentation files (the
@@ -14,6 +14,9 @@ Google URL Shortener API in Ruby
14
14
  url.long_url
15
15
  => "http://www.zigotto.com/"
16
16
 
17
+ url.qr_code
18
+ => "http://goo.gl/ump4S.qr"
19
+
17
20
  === Expand a short URL
18
21
 
19
22
  url = Googl.expand('http://goo.gl/ump4S')
@@ -21,10 +24,30 @@ Google URL Shortener API in Ruby
21
24
  url.long_url
22
25
  => "http://www.zigotto.com/"
23
26
 
27
+ == Authentication
28
+
29
+ The Google URL Shortener API supports the OAuth and ClientLogin mechanisms for authenticating.
30
+
31
+ For shorten requests, each short URL for an authenticated user is unique, and thus will gather unique click statistics. In addition, it shows up on the user's dashboard at http://goo.gl.
32
+
33
+ === ClientLogin
34
+
35
+ client = Googl.client('user@gmail.com', 'my_valid_password')
36
+
37
+ url = client.shorten('https://github.com/zigotto/googl')
38
+ url.short_url
39
+ => http://goo.gl/DWDfi
40
+
41
+ Go to http://goo.gl to see URL statistics.
42
+
43
+ === OAuth
44
+
45
+ TODO
46
+
24
47
  == Installation
25
48
 
26
49
  gem install googl
27
50
 
28
51
  == License
29
52
 
30
- MIT License. Copyright 2010 Zigotto®. http://www.zigotto.com.br
53
+ MIT License. Copyright 2011 Zigotto®. http://www.zigotto.com.br
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.1.2
1
+ 0.2.0
@@ -5,11 +5,11 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{googl}
8
- s.version = "0.1.2"
8
+ s.version = "0.2.0"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["Jesus Lopes"]
12
- s.date = %q{2011-01-11}
12
+ s.date = %q{2011-01-13}
13
13
  s.description = %q{Small library for Google URL Shortener API}
14
14
  s.email = %q{jlopes@zigotto.com.br}
15
15
  s.extra_rdoc_files = [
@@ -24,12 +24,18 @@ Gem::Specification.new do |s|
24
24
  "VERSION",
25
25
  "googl.gemspec",
26
26
  "lib/googl.rb",
27
+ "lib/googl/base.rb",
28
+ "lib/googl/client_login.rb",
27
29
  "lib/googl/expand.rb",
28
30
  "lib/googl/request.rb",
29
31
  "lib/googl/shorten.rb",
32
+ "spec/client_spec.rb",
30
33
  "spec/expand_spec.rb",
34
+ "spec/fixtures/client_login_invalid.json",
35
+ "spec/fixtures/client_login_valid.json",
31
36
  "spec/fixtures/expand.json",
32
37
  "spec/fixtures/shorten.json",
38
+ "spec/fixtures/shorten_authenticated.json",
33
39
  "spec/shorten_spec.rb",
34
40
  "spec/spec_helper.rb"
35
41
  ]
@@ -39,6 +45,7 @@ Gem::Specification.new do |s|
39
45
  s.rubygems_version = %q{1.4.2}
40
46
  s.summary = %q{Wrapper for Google URL Shortener API}
41
47
  s.test_files = [
48
+ "spec/client_spec.rb",
42
49
  "spec/expand_spec.rb",
43
50
  "spec/shorten_spec.rb",
44
51
  "spec/spec_helper.rb"
@@ -48,26 +55,29 @@ Gem::Specification.new do |s|
48
55
  s.specification_version = 3
49
56
 
50
57
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
58
+ s.add_runtime_dependency(%q<httparty>, ["= 0.6.1"])
51
59
  s.add_development_dependency(%q<rspec>, ["~> 2.3.0"])
52
60
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
53
61
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
54
62
  s.add_development_dependency(%q<rcov>, [">= 0"])
55
- s.add_development_dependency(%q<fakeweb>, ["~> 1.3.0"])
63
+ s.add_development_dependency(%q<webmock>, ["~> 1.6.2"])
56
64
  s.add_runtime_dependency(%q<httparty>, [">= 0.6.1"])
57
65
  else
66
+ s.add_dependency(%q<httparty>, ["= 0.6.1"])
58
67
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
59
68
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
60
69
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
61
70
  s.add_dependency(%q<rcov>, [">= 0"])
62
- s.add_dependency(%q<fakeweb>, ["~> 1.3.0"])
71
+ s.add_dependency(%q<webmock>, ["~> 1.6.2"])
63
72
  s.add_dependency(%q<httparty>, [">= 0.6.1"])
64
73
  end
65
74
  else
75
+ s.add_dependency(%q<httparty>, ["= 0.6.1"])
66
76
  s.add_dependency(%q<rspec>, ["~> 2.3.0"])
67
77
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
68
78
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
69
79
  s.add_dependency(%q<rcov>, [">= 0"])
70
- s.add_dependency(%q<fakeweb>, ["~> 1.3.0"])
80
+ s.add_dependency(%q<webmock>, ["~> 1.6.2"])
71
81
  s.add_dependency(%q<httparty>, [">= 0.6.1"])
72
82
  end
73
83
  end
@@ -1,9 +1,10 @@
1
- require 'rubygems'
2
1
  require 'httparty'
3
2
 
3
+ require 'googl/base'
4
4
  require 'googl/request'
5
5
  require 'googl/shorten'
6
6
  require 'googl/expand'
7
+ require 'googl/client_login'
7
8
 
8
9
  module Googl
9
10
 
@@ -15,4 +16,8 @@ module Googl
15
16
  Googl::Expand.new(url)
16
17
  end
17
18
 
19
+ def self.client(email, passwd)
20
+ Googl::ClientLogin.new(email, passwd)
21
+ end
22
+
18
23
  end
@@ -0,0 +1,13 @@
1
+ module Googl
2
+
3
+ class Base
4
+
5
+ private
6
+
7
+ def modify_headers(item)
8
+ Request.headers.merge!(item)
9
+ end
10
+
11
+ end
12
+
13
+ end
@@ -0,0 +1,29 @@
1
+ module Googl
2
+
3
+ class ClientLogin < Base
4
+
5
+ API_URL = "https://www.google.com/accounts/ClientLogin"
6
+
7
+ PARAMS = {'accountType' => 'HOSTED_OR_GOOGLE', 'service' => 'urlshortener', 'source' => 'gem-googl-ruby'}
8
+
9
+ attr_accessor :code
10
+
11
+ def initialize(email, passwd)
12
+ modify_headers('Content-Type' => 'application/x-www-form-urlencoded')
13
+ resp = Request.post(API_URL, :body => PARAMS.merge!('Email' => email, 'Passwd' => passwd))
14
+ @code = resp.code
15
+ if resp.code == 200
16
+ token = resp.split('=').last.gsub(/\n/, '')
17
+ modify_headers("Authorization" => "GoogleLogin auth=#{token}")
18
+ else
19
+ resp.response
20
+ end
21
+ end
22
+
23
+ def shorten(url)
24
+ Googl::Shorten.new(url)
25
+ end
26
+
27
+ end
28
+
29
+ end
@@ -2,12 +2,14 @@ module Googl
2
2
 
3
3
  class Expand
4
4
 
5
+ API_URL = "https://www.googleapis.com/urlshortener/v1/url?shortUrl="
6
+
5
7
  attr_accessor :long_url
6
8
 
7
9
  def initialize(short_url)
8
- resp = Request.get("/urlshortener/v1/url?shortUrl=#{short_url}")
10
+ resp = Request.get(API_URL + short_url)
9
11
  if resp.code == 200
10
- self.long_url = resp['longUrl']
12
+ @long_url = resp['longUrl']
11
13
  else
12
14
  resp.response
13
15
  end
@@ -1,6 +1,3 @@
1
1
  class Request
2
2
  include HTTParty
3
- base_uri 'https://www.googleapis.com'
4
- headers 'Content-Type' => 'application/json'
5
- headers "Content-length" => "0"
6
3
  end
@@ -1,20 +1,27 @@
1
1
  module Googl
2
2
 
3
- class Shorten
3
+ class Shorten < Base
4
+
5
+ API_URL = 'https://www.googleapis.com/urlshortener/v1/url'
4
6
 
5
7
  attr_accessor :short_url, :long_url
6
8
 
7
9
  def initialize(long_url)
10
+ modify_headers('Content-Type' => 'application/json')
8
11
  options = {"longUrl" => long_url}.inspect
9
- resp = Request.post('/urlshortener/v1/url', :body => options)
12
+ resp = Request.post(API_URL, :body => options)
10
13
  if resp.code == 200
11
- self.short_url = resp['id']
12
- self.long_url = resp['longUrl']
14
+ @short_url = resp['id']
15
+ @long_url = resp['longUrl']
13
16
  else
14
17
  resp.response
15
18
  end
16
19
  end
17
20
 
21
+ def qr_code
22
+ short_url + ".qr" if !short_url.blank?
23
+ end
24
+
18
25
  end
19
26
 
20
27
  end
@@ -0,0 +1,57 @@
1
+ require 'spec_helper'
2
+
3
+ describe Googl::ClientLogin do
4
+
5
+ before :each do
6
+ fake_urls
7
+ end
8
+
9
+ context "request a new client login" do
10
+
11
+ it { Googl.should respond_to(:client) }
12
+
13
+ context "when valid" do
14
+
15
+ subject { Googl.client('my_user@gmail.com', 'my_valid_password') }
16
+
17
+ describe "#code" do
18
+ it "should return 200" do
19
+ subject.code.should == 200
20
+ end
21
+ end
22
+
23
+ end
24
+
25
+ context "when invalid" do
26
+
27
+ subject { Googl.client('my_invalid_gmail', 'my_invalid_passwod') }
28
+
29
+ describe "#code" do
30
+ it "should return 403" do
31
+ subject.code.should == 403
32
+ end
33
+ end
34
+
35
+ end
36
+
37
+ end
38
+
39
+ context "request new shor url" do
40
+
41
+ before :each do
42
+ @client = Googl.client('my_user@gmail.com', 'my_valid_password')
43
+ end
44
+
45
+ it { @client.should respond_to(:shorten) }
46
+
47
+ subject { @client.shorten('http://www.zigotto.net') }
48
+
49
+ describe "#short_url" do
50
+ it "should return a short URL" do
51
+ subject.short_url.start_with?("http://goo.gl/").should be_true
52
+ end
53
+ end
54
+
55
+ end
56
+
57
+ end
@@ -0,0 +1,12 @@
1
+ HTTP/1.1 403 Forbidden
2
+ Content-Type: text/plain
3
+ Cache-control: no-cache, no-store
4
+ Pragma: no-cache
5
+ Expires: Mon, 01-Jan-1990 00:00:00 GMT
6
+ Date: Thu, 13 Jan 2011 12:59:18 GMT
7
+ X-Content-Type-Options: nosniff
8
+ X-XSS-Protection: 1; mode=block
9
+ Content-Length: 24
10
+ Server: GSE
11
+
12
+ Error=BadAuthentication
@@ -0,0 +1,14 @@
1
+ HTTP/1.1 200 OK
2
+ Content-Type: text/plain
3
+ Cache-control: no-cache, no-store
4
+ Pragma: no-cache
5
+ Expires: Mon, 01-Jan-1990 00:00:00 GMT
6
+ Date: Thu, 13 Jan 2011 11:47:47 GMT
7
+ X-Content-Type-Options: nosniff
8
+ X-XSS-Protection: 1; mode=block
9
+ Content-Length: 755
10
+ Server: GSE
11
+
12
+ SID=DQAAAKwAAABcU9-c9pgL8tAf6T6oEBT4wFgOskDQE7t_f_ehTKhrlKULwNhUXOlaZgeG8e8dZwfV6Odpzb15CzCSQ
13
+ LSID=DQAAAK4AAAC9oNnhvkDo8-jbQQbWzyvi_sAlt9ZkcmFoKsed7zfbmBs0rurcEL5vuN0DR_0s60v2j9kVf0_2yUVu
14
+ Auth=DQAAAK8AAAC9ahL-o7g
@@ -0,0 +1,18 @@
1
+ HTTP/1.1 200 OK
2
+ ETag: "EEZ1AD443JkEgW3KJFaymzTd26A/41aG_KwuemZSq8rrtXp-EsY0Iuk"
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: Thu, 13 Jan 2011 13:07:26 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/R3mYj",
17
+ "longUrl": "http://www.zigotto.net/"
18
+ }
@@ -24,6 +24,12 @@ describe Googl::Shorten do
24
24
  end
25
25
  end
26
26
 
27
+ describe "#qr_code" do
28
+ it "should return a url for generate a qr code" do
29
+ subject.qr_code.should == 'http://goo.gl/ump4S.qr'
30
+ end
31
+ end
32
+
27
33
  end
28
34
 
29
35
  end
@@ -1,27 +1,48 @@
1
- require "rubygems"
2
- require "rspec"
3
- require 'fakeweb'
4
-
5
1
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__)))
6
2
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
7
3
 
4
+ require "rubygems"
5
+ require "rspec"
6
+ require 'webmock/rspec'
8
7
  require 'googl'
9
8
 
10
9
  def load_fixture(name)
11
- File.join(File.expand_path(File.dirname(__FILE__)), '/fixtures', name)
10
+ File.new(File.join(File.expand_path(File.dirname(__FILE__)), '/fixtures', name))
12
11
  end
13
12
 
14
13
  def fake_urls
15
14
 
16
- FakeWeb.allow_net_connect = false
17
-
18
15
  # 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)
16
+ url_shorten = "https://www.googleapis.com/urlshortener/v1/url"
17
+ params = {"longUrl" => "http://www.zigotto.com"}.inspect
18
+ stub_request(:post, url_shorten).
19
+ with(:body => params,
20
+ :headers => {'Content-Type'=>'application/json'}).
21
+ to_return(load_fixture('shorten.json'))
22
22
 
23
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'))
24
+ url_expand = "https://www.googleapis.com/urlshortener/v1/url?shortUrl=http://goo.gl/7lob"
25
+ stub_request(:get, url_expand).to_return(load_fixture('expand.json'))
26
+
27
+ # Authentication
28
+ url_login = "https://www.google.com/accounts/ClientLogin"
29
+
30
+ # ClientLogin valid
31
+ params = "Passwd=my_valid_password&service=urlshortener&accountType=HOSTED_OR_GOOGLE&Email=my_user%40gmail.com&source=gem-googl-ruby"
32
+ stub_request(:post, url_login).
33
+ with(:body => params,
34
+ :headers => {'Content-Type'=>'application/x-www-form-urlencoded'}).
35
+ to_return(load_fixture('client_login_valid.json'))
36
+
37
+ # ClientLogin invalid
38
+ params = "Passwd=my_invalid_passwod&service=urlshortener&accountType=HOSTED_OR_GOOGLE&Email=my_invalid_gmail&source=gem-googl-ruby"
39
+ stub_request(:post, url_login).with(:body => params).to_return(load_fixture('client_login_invalid.json'))
40
+
41
+ # Shorten authenticated
42
+ params = {"longUrl" => "http://www.zigotto.net"}.inspect
43
+ stub_request(:post, url_shorten).
44
+ with(:body => params,
45
+ :headers => {'Authorization'=>'GoogleLogin auth=DQAAAK8AAAC9ahL-o7g', 'Content-Type'=>'application/json'}).
46
+ to_return(load_fixture('shorten_authenticated.json'))
26
47
 
27
48
  end
metadata CHANGED
@@ -1,13 +1,13 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: googl
3
3
  version: !ruby/object:Gem::Version
4
- hash: 31
4
+ hash: 23
5
5
  prerelease:
6
6
  segments:
7
7
  - 0
8
- - 1
9
8
  - 2
10
- version: 0.1.2
9
+ - 0
10
+ version: 0.2.0
11
11
  platform: ruby
12
12
  authors:
13
13
  - Jesus Lopes
@@ -15,14 +15,30 @@ autorequire:
15
15
  bindir: bin
16
16
  cert_chain: []
17
17
 
18
- date: 2011-01-11 00:00:00 -02:00
18
+ date: 2011-01-13 00:00:00 -02:00
19
19
  default_executable:
20
20
  dependencies:
21
+ - !ruby/object:Gem::Dependency
22
+ prerelease: false
23
+ name: httparty
24
+ type: :runtime
25
+ version_requirements: &id001 !ruby/object:Gem::Requirement
26
+ none: false
27
+ requirements:
28
+ - - "="
29
+ - !ruby/object:Gem::Version
30
+ hash: 5
31
+ segments:
32
+ - 0
33
+ - 6
34
+ - 1
35
+ version: 0.6.1
36
+ requirement: *id001
21
37
  - !ruby/object:Gem::Dependency
22
38
  prerelease: false
23
39
  name: rspec
24
40
  type: :development
25
- version_requirements: &id001 !ruby/object:Gem::Requirement
41
+ version_requirements: &id002 !ruby/object:Gem::Requirement
26
42
  none: false
27
43
  requirements:
28
44
  - - ~>
@@ -33,12 +49,12 @@ dependencies:
33
49
  - 3
34
50
  - 0
35
51
  version: 2.3.0
36
- requirement: *id001
52
+ requirement: *id002
37
53
  - !ruby/object:Gem::Dependency
38
54
  prerelease: false
39
55
  name: bundler
40
56
  type: :development
41
- version_requirements: &id002 !ruby/object:Gem::Requirement
57
+ version_requirements: &id003 !ruby/object:Gem::Requirement
42
58
  none: false
43
59
  requirements:
44
60
  - - ~>
@@ -49,12 +65,12 @@ dependencies:
49
65
  - 0
50
66
  - 0
51
67
  version: 1.0.0
52
- requirement: *id002
68
+ requirement: *id003
53
69
  - !ruby/object:Gem::Dependency
54
70
  prerelease: false
55
71
  name: jeweler
56
72
  type: :development
57
- version_requirements: &id003 !ruby/object:Gem::Requirement
73
+ version_requirements: &id004 !ruby/object:Gem::Requirement
58
74
  none: false
59
75
  requirements:
60
76
  - - ~>
@@ -65,12 +81,12 @@ dependencies:
65
81
  - 5
66
82
  - 2
67
83
  version: 1.5.2
68
- requirement: *id003
84
+ requirement: *id004
69
85
  - !ruby/object:Gem::Dependency
70
86
  prerelease: false
71
87
  name: rcov
72
88
  type: :development
73
- version_requirements: &id004 !ruby/object:Gem::Requirement
89
+ version_requirements: &id005 !ruby/object:Gem::Requirement
74
90
  none: false
75
91
  requirements:
76
92
  - - ">="
@@ -79,28 +95,28 @@ dependencies:
79
95
  segments:
80
96
  - 0
81
97
  version: "0"
82
- requirement: *id004
98
+ requirement: *id005
83
99
  - !ruby/object:Gem::Dependency
84
100
  prerelease: false
85
- name: fakeweb
101
+ name: webmock
86
102
  type: :development
87
- version_requirements: &id005 !ruby/object:Gem::Requirement
103
+ version_requirements: &id006 !ruby/object:Gem::Requirement
88
104
  none: false
89
105
  requirements:
90
106
  - - ~>
91
107
  - !ruby/object:Gem::Version
92
- hash: 27
108
+ hash: 11
93
109
  segments:
94
110
  - 1
95
- - 3
96
- - 0
97
- version: 1.3.0
98
- requirement: *id005
111
+ - 6
112
+ - 2
113
+ version: 1.6.2
114
+ requirement: *id006
99
115
  - !ruby/object:Gem::Dependency
100
116
  prerelease: false
101
117
  name: httparty
102
118
  type: :runtime
103
- version_requirements: &id006 !ruby/object:Gem::Requirement
119
+ version_requirements: &id007 !ruby/object:Gem::Requirement
104
120
  none: false
105
121
  requirements:
106
122
  - - ">="
@@ -111,7 +127,7 @@ dependencies:
111
127
  - 6
112
128
  - 1
113
129
  version: 0.6.1
114
- requirement: *id006
130
+ requirement: *id007
115
131
  description: Small library for Google URL Shortener API
116
132
  email: jlopes@zigotto.com.br
117
133
  executables: []
@@ -129,12 +145,18 @@ files:
129
145
  - VERSION
130
146
  - googl.gemspec
131
147
  - lib/googl.rb
148
+ - lib/googl/base.rb
149
+ - lib/googl/client_login.rb
132
150
  - lib/googl/expand.rb
133
151
  - lib/googl/request.rb
134
152
  - lib/googl/shorten.rb
153
+ - spec/client_spec.rb
135
154
  - spec/expand_spec.rb
155
+ - spec/fixtures/client_login_invalid.json
156
+ - spec/fixtures/client_login_valid.json
136
157
  - spec/fixtures/expand.json
137
158
  - spec/fixtures/shorten.json
159
+ - spec/fixtures/shorten_authenticated.json
138
160
  - spec/shorten_spec.rb
139
161
  - spec/spec_helper.rb
140
162
  has_rdoc: true
@@ -172,6 +194,7 @@ signing_key:
172
194
  specification_version: 3
173
195
  summary: Wrapper for Google URL Shortener API
174
196
  test_files:
197
+ - spec/client_spec.rb
175
198
  - spec/expand_spec.rb
176
199
  - spec/shorten_spec.rb
177
200
  - spec/spec_helper.rb