googl-api 0.2.0 → 0.2.1

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.
data/Gemfile CHANGED
@@ -1,7 +1,5 @@
1
1
  source "http://rubygems.org"
2
- # Add dependencies required to use your gem here.
3
- # Example:
4
- # gem "activesupport", ">= 2.3.5"
2
+ gem 'httparty'
5
3
 
6
4
  # Add dependencies to develop your gem here.
7
5
  # Include everything needed to run rake, tests, features, etc.
data/Gemfile.lock CHANGED
@@ -1,7 +1,10 @@
1
1
  GEM
2
2
  remote: http://rubygems.org/
3
3
  specs:
4
+ crack (0.1.8)
4
5
  git (1.2.5)
6
+ httparty (0.6.1)
7
+ crack (= 0.1.8)
5
8
  jeweler (1.5.2)
6
9
  bundler (~> 1.0.0)
7
10
  git (>= 1.2.5)
@@ -15,6 +18,7 @@ PLATFORMS
15
18
 
16
19
  DEPENDENCIES
17
20
  bundler (~> 1.0.0)
21
+ httparty
18
22
  jeweler (~> 1.5.2)
19
23
  rcov
20
24
  shoulda
data/VERSION CHANGED
@@ -1 +1 @@
1
- 0.2.0
1
+ 0.2.1
data/googl-api.gemspec CHANGED
@@ -5,7 +5,7 @@
5
5
 
6
6
  Gem::Specification.new do |s|
7
7
  s.name = %q{googl-api}
8
- s.version = "0.2.0"
8
+ s.version = "0.2.1"
9
9
 
10
10
  s.required_rubygems_version = Gem::Requirement.new(">= 0") if s.respond_to? :required_rubygems_version=
11
11
  s.authors = ["John Allen"]
@@ -47,12 +47,14 @@ Gem::Specification.new do |s|
47
47
  s.specification_version = 3
48
48
 
49
49
  if Gem::Version.new(Gem::VERSION) >= Gem::Version.new('1.2.0') then
50
+ s.add_runtime_dependency(%q<httparty>, [">= 0"])
50
51
  s.add_development_dependency(%q<shoulda>, [">= 0"])
51
52
  s.add_development_dependency(%q<bundler>, ["~> 1.0.0"])
52
53
  s.add_development_dependency(%q<jeweler>, ["~> 1.5.2"])
53
54
  s.add_development_dependency(%q<rcov>, [">= 0"])
54
55
  s.add_runtime_dependency(%q<httparty>, [">= 0.6.1"])
55
56
  else
57
+ s.add_dependency(%q<httparty>, [">= 0"])
56
58
  s.add_dependency(%q<shoulda>, [">= 0"])
57
59
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
58
60
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
@@ -60,6 +62,7 @@ Gem::Specification.new do |s|
60
62
  s.add_dependency(%q<httparty>, [">= 0.6.1"])
61
63
  end
62
64
  else
65
+ s.add_dependency(%q<httparty>, [">= 0"])
63
66
  s.add_dependency(%q<shoulda>, [">= 0"])
64
67
  s.add_dependency(%q<bundler>, ["~> 1.0.0"])
65
68
  s.add_dependency(%q<jeweler>, ["~> 1.5.2"])
@@ -19,18 +19,21 @@ module GooglApi
19
19
  end
20
20
 
21
21
  def shorten(url)
22
+ raise ArgumentError.new("A URL to shorten is required") if url.blank?
22
23
  load_respose(self.class.post('/url', :body => "{ \"longUrl\" => \"#{url}\" }"))
23
24
  # api key not working at this time
24
25
  # load_respose(self.class.post('/url', :query => @api_key, :body => "{ \"longUrl\" => \"#{url}\" }"))
25
26
  end
26
27
 
27
28
  def expand(url)
29
+ raise ArgumentError.new("A URL to expand is required") if url.blank?
28
30
  load_respose(self.class.get('/url', :query => { :shortUrl => url }))
29
31
  # api key not working at this time
30
32
  # load_respose(self.class.get('/url', :query => @api_key.merge({ :shortUrl => url })))
31
33
  end
32
34
 
33
35
  def analytics(url, projection = "FULL")
36
+ raise ArgumentError.new("A URL to check analytics on is required") if url.blank?
34
37
  load_respose(self.class.get('/url', :query => { :shortUrl => url, :projection => projection }))
35
38
  # api key not working at this time
36
39
  # load_respose(self.class.get('/url', :query => @api_key.merge({ :shortUrl => url, :projection => projection })))
data/test/helper.rb CHANGED
@@ -11,8 +11,13 @@ require 'test/unit'
11
11
  require 'shoulda'
12
12
 
13
13
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
14
+ $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib', 'googl-api'))
14
15
  $LOAD_PATH.unshift(File.dirname(__FILE__))
15
- require 'googl'
16
+ require 'httparty'
17
+ require 'googl-api'
16
18
 
17
19
  class Test::Unit::TestCase
20
+ def api_key
21
+ 'test_key'
22
+ end
18
23
  end
data/test/test_googl.rb CHANGED
@@ -1,7 +1,83 @@
1
1
  require 'helper'
2
2
 
3
3
  class TestGoogl < Test::Unit::TestCase
4
- should "probably rename this file and start testing for real" do
5
- flunk "hey buddy, you should probably rename this file and start testing for real"
6
- end
4
+ context "googl-api module" do
5
+ should "create a new googl-api client" do
6
+ c = GooglApi.new(api_key)
7
+ assert_equal GooglApi::Client, c.class
8
+ end
9
+ end
10
+ context "using the googl-api client" do
11
+ setup do
12
+ @client = GooglApi.new(api_key)
13
+ end
14
+
15
+ context "shortening" do
16
+ context "a single link" do
17
+ setup do
18
+ @url = @client.shorten('http://ruby-lang.org/')
19
+ end
20
+ should "return a GooglApi::Response" do
21
+ assert_kind_of GooglApi::Response, @url
22
+ end
23
+ should "return a short goo.gl url" do
24
+ assert_equal "http://goo.gl/p2Jpa", @url.short_url
25
+ end
26
+ should "save the long url" do
27
+ assert_equal "http://ruby-lang.org/", @url.long_url
28
+ end
29
+ end
30
+ context "no links" do
31
+ should "raise an ArgumentError" do
32
+ assert_raise ArgumentError do
33
+ @client.shorten
34
+ end
35
+ end
36
+ end
37
+ end
38
+ context "expanding" do
39
+ context "a short bitly url" do
40
+ setup do
41
+ @url = @client.expand("http://goo.gl/p2Jpa")
42
+ end
43
+ should "return a GooglApi::Response" do
44
+ assert_kind_of GooglApi::Response, @url
45
+ end
46
+ should "return the expanded url" do
47
+ assert_equal "http://ruby-lang.org/", @url.long_url
48
+ end
49
+ should "save the bitly url" do
50
+ assert_equal "http://goo.gl/p2Jpa", @url.short_url
51
+ end
52
+ end
53
+ context "no links" do
54
+ should "raise an ArgumentError" do
55
+ assert_raise ArgumentError do
56
+ @client.shorten
57
+ end
58
+ end
59
+ end
60
+ end
61
+ context "to get analytics on" do
62
+ context "a single link" do
63
+ setup do
64
+ @url = @client.analytics("http://goo.gl/p2Jpa")
65
+ end
66
+ should "return a GooglApi::Response" do
67
+ assert_kind_of GooglApi::Response, @url
68
+ end
69
+ should "return a response object with analytics data" do
70
+ assert_not_nil @url.analytics
71
+ end
72
+ end
73
+ end
74
+ context "no links" do
75
+ should "raise an ArgumentError" do
76
+ assert_raise ArgumentError do
77
+ @client.shorten
78
+ end
79
+ end
80
+ end
81
+ end
82
+
7
83
  end
metadata CHANGED
@@ -5,8 +5,8 @@ version: !ruby/object:Gem::Version
5
5
  segments:
6
6
  - 0
7
7
  - 2
8
- - 0
9
- version: 0.2.0
8
+ - 1
9
+ version: 0.2.1
10
10
  platform: ruby
11
11
  authors:
12
12
  - John Allen
@@ -18,7 +18,7 @@ date: 2011-01-11 00:00:00 -05:00
18
18
  default_executable:
19
19
  dependencies:
20
20
  - !ruby/object:Gem::Dependency
21
- name: shoulda
21
+ name: httparty
22
22
  requirement: &id001 !ruby/object:Gem::Requirement
23
23
  none: false
24
24
  requirements:
@@ -27,12 +27,25 @@ dependencies:
27
27
  segments:
28
28
  - 0
29
29
  version: "0"
30
- type: :development
30
+ type: :runtime
31
31
  prerelease: false
32
32
  version_requirements: *id001
33
33
  - !ruby/object:Gem::Dependency
34
- name: bundler
34
+ name: shoulda
35
35
  requirement: &id002 !ruby/object:Gem::Requirement
36
+ none: false
37
+ requirements:
38
+ - - ">="
39
+ - !ruby/object:Gem::Version
40
+ segments:
41
+ - 0
42
+ version: "0"
43
+ type: :development
44
+ prerelease: false
45
+ version_requirements: *id002
46
+ - !ruby/object:Gem::Dependency
47
+ name: bundler
48
+ requirement: &id003 !ruby/object:Gem::Requirement
36
49
  none: false
37
50
  requirements:
38
51
  - - ~>
@@ -44,10 +57,10 @@ dependencies:
44
57
  version: 1.0.0
45
58
  type: :development
46
59
  prerelease: false
47
- version_requirements: *id002
60
+ version_requirements: *id003
48
61
  - !ruby/object:Gem::Dependency
49
62
  name: jeweler
50
- requirement: &id003 !ruby/object:Gem::Requirement
63
+ requirement: &id004 !ruby/object:Gem::Requirement
51
64
  none: false
52
65
  requirements:
53
66
  - - ~>
@@ -59,10 +72,10 @@ dependencies:
59
72
  version: 1.5.2
60
73
  type: :development
61
74
  prerelease: false
62
- version_requirements: *id003
75
+ version_requirements: *id004
63
76
  - !ruby/object:Gem::Dependency
64
77
  name: rcov
65
- requirement: &id004 !ruby/object:Gem::Requirement
78
+ requirement: &id005 !ruby/object:Gem::Requirement
66
79
  none: false
67
80
  requirements:
68
81
  - - ">="
@@ -72,10 +85,10 @@ dependencies:
72
85
  version: "0"
73
86
  type: :development
74
87
  prerelease: false
75
- version_requirements: *id004
88
+ version_requirements: *id005
76
89
  - !ruby/object:Gem::Dependency
77
90
  name: httparty
78
- requirement: &id005 !ruby/object:Gem::Requirement
91
+ requirement: &id006 !ruby/object:Gem::Requirement
79
92
  none: false
80
93
  requirements:
81
94
  - - ">="
@@ -87,7 +100,7 @@ dependencies:
87
100
  version: 0.6.1
88
101
  type: :runtime
89
102
  prerelease: false
90
- version_requirements: *id005
103
+ version_requirements: *id006
91
104
  description: A very simple ruby wrapper for the goo.gl URL Shortening service
92
105
  email: john@threedogconsulting.com
93
106
  executables: []
@@ -126,7 +139,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
126
139
  requirements:
127
140
  - - ">="
128
141
  - !ruby/object:Gem::Version
129
- hash: -1516370935058131756
142
+ hash: -930700543394285233
130
143
  segments:
131
144
  - 0
132
145
  version: "0"