bitly-oauth 0.1.0

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 (88) hide show
  1. data/History.txt +154 -0
  2. data/LICENSE +20 -0
  3. data/README.md +87 -0
  4. data/README.rdoc +35 -0
  5. data/Rakefile +42 -0
  6. data/VERSION +1 -0
  7. data/lib/bitly_oauth.rb +28 -0
  8. data/lib/bitly_oauth/access_token.rb +37 -0
  9. data/lib/bitly_oauth/client.rb +149 -0
  10. data/lib/bitly_oauth/country.rb +10 -0
  11. data/lib/bitly_oauth/day.rb +12 -0
  12. data/lib/bitly_oauth/error.rb +15 -0
  13. data/lib/bitly_oauth/lib/core_ext/hash.rb +27 -0
  14. data/lib/bitly_oauth/lib/core_ext/string.rb +5 -0
  15. data/lib/bitly_oauth/missing_url.rb +12 -0
  16. data/lib/bitly_oauth/realtime_link.rb +16 -0
  17. data/lib/bitly_oauth/referrer.rb +12 -0
  18. data/lib/bitly_oauth/referring_domain.rb +11 -0
  19. data/lib/bitly_oauth/response.rb +39 -0
  20. data/lib/bitly_oauth/url.rb +118 -0
  21. data/lib/bitly_oauth/user.rb +104 -0
  22. data/test/fixtures/9uX1TE.json +1 -0
  23. data/test/fixtures/9uX1TEclicks.json +1 -0
  24. data/test/fixtures/9uX1TEclicks2.json +1 -0
  25. data/test/fixtures/9uX1TEinfo.json +1 -0
  26. data/test/fixtures/9uX1TEinfo2.json +1 -0
  27. data/test/fixtures/auth_fail.json +1 -0
  28. data/test/fixtures/auth_success.json +1 -0
  29. data/test/fixtures/betaworks.json +1 -0
  30. data/test/fixtures/betaworks2.json +1 -0
  31. data/test/fixtures/betaworks_jmp.json +1 -0
  32. data/test/fixtures/betaworks_other_user.json +1 -0
  33. data/test/fixtures/bitly9uX1TE.json +1 -0
  34. data/test/fixtures/bitly_pro_domain.json +1 -0
  35. data/test/fixtures/clicks_by_day.json +1 -0
  36. data/test/fixtures/clicks_by_day1.json +1 -0
  37. data/test/fixtures/clicks_by_day2.json +1 -0
  38. data/test/fixtures/clicks_by_minute1_url.json +1 -0
  39. data/test/fixtures/clicks_by_minute2_url.json +1 -0
  40. data/test/fixtures/clicks_by_minute_hash.json +1 -0
  41. data/test/fixtures/clicks_by_minute_hashes.json +1 -0
  42. data/test/fixtures/country_hash.json +1 -0
  43. data/test/fixtures/country_hash2.json +1 -0
  44. data/test/fixtures/country_url.json +1 -0
  45. data/test/fixtures/failure.json +1 -0
  46. data/test/fixtures/invalid_bitly_pro_domain.json +1 -0
  47. data/test/fixtures/invalid_credentials.json +1 -0
  48. data/test/fixtures/invalid_domain.json +1 -0
  49. data/test/fixtures/invalid_user.json +1 -0
  50. data/test/fixtures/invalid_x_api_key.json +1 -0
  51. data/test/fixtures/lookup_multiple_url.json +1 -0
  52. data/test/fixtures/lookup_not_real_url.json +1 -0
  53. data/test/fixtures/lookup_single_url.json +1 -0
  54. data/test/fixtures/missing_hash.json +1 -0
  55. data/test/fixtures/multiple_info.json +1 -0
  56. data/test/fixtures/multiple_url_click.json +1 -0
  57. data/test/fixtures/multiple_urls.json +1 -0
  58. data/test/fixtures/not_bitly_pro_domain.json +1 -0
  59. data/test/fixtures/not_found_info.json +1 -0
  60. data/test/fixtures/referrer_hash.json +1 -0
  61. data/test/fixtures/referrer_hash2.json +1 -0
  62. data/test/fixtures/referrer_url.json +1 -0
  63. data/test/fixtures/success.json +1 -0
  64. data/test/fixtures/url_info.json +1 -0
  65. data/test/fixtures/user_clicks.json +32 -0
  66. data/test/fixtures/user_countries.json +60 -0
  67. data/test/fixtures/user_realtime_links.json +15 -0
  68. data/test/fixtures/user_referrers.json +1 -0
  69. data/test/fixtures/valid_user.json +1 -0
  70. data/test/integration/strategy/old_test_api_key.rb +20 -0
  71. data/test/integration/test_client.rb +709 -0
  72. data/test/integration/test_user.rb +97 -0
  73. data/test/test_helper.rb +54 -0
  74. data/test/unit/core_ext/test_hash.rb +69 -0
  75. data/test/unit/core_ext/test_string.rb +14 -0
  76. data/test/unit/test_bitly_oauth.rb +19 -0
  77. data/test/unit/test_client.rb +87 -0
  78. data/test/unit/test_country.rb +19 -0
  79. data/test/unit/test_day.rb +22 -0
  80. data/test/unit/test_error.rb +11 -0
  81. data/test/unit/test_missing.rb +34 -0
  82. data/test/unit/test_realtime_link.rb +30 -0
  83. data/test/unit/test_referrer.rb +19 -0
  84. data/test/unit/test_referring_domain.rb +21 -0
  85. data/test/unit/test_response.rb +86 -0
  86. data/test/unit/test_url.rb +156 -0
  87. data/test/unit/test_user.rb +17 -0
  88. metadata +215 -0
@@ -0,0 +1,19 @@
1
+ require 'test_helper'
2
+
3
+ class TestReferrer < Test::Unit::TestCase
4
+ context "a referrer" do
5
+ setup do
6
+ @referrer = BitlyOAuth::Referrer.new
7
+ end
8
+
9
+ [:clicks, :referrer, :referrer_app, :url].each do |method|
10
+ should "respond to #{method}" do
11
+ assert_respond_to @referrer, method
12
+ end
13
+ should "set #{method} when initializing" do
14
+ referrer = BitlyOAuth::Referrer.new(method.to_s => 'test')
15
+ assert_equal 'test', referrer.send(method)
16
+ end
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,21 @@
1
+ require 'test_helper'
2
+
3
+ class TestReferringDomain < Test::Unit::TestCase
4
+ context "a referring domain" do
5
+ setup do
6
+ @referring_domain = BitlyOAuth::ReferringDomain.new
7
+ end
8
+
9
+ [:clicks, :domain].each do |method|
10
+ should "respond to #{method}" do
11
+ assert_respond_to @referring_domain, method
12
+ end
13
+
14
+ should "set #{method} when initializing" do
15
+ referrer = BitlyOAuth::ReferringDomain.new(method.to_s => 'test')
16
+ assert_equal 'test', referrer.send(method)
17
+ end
18
+ end
19
+ end
20
+ end
21
+
@@ -0,0 +1,86 @@
1
+ require 'test_helper'
2
+
3
+ class TestResponse < Test::Unit::TestCase
4
+ context "with a unsupported response" do
5
+ should "raise an error" do
6
+ assert_raises RuntimeError, "Unsupported Response type: Object" do
7
+ BitlyOAuth::Response.new(Object.new).success?
8
+ end
9
+ end
10
+ end
11
+ context "with an oauth response" do
12
+ setup do
13
+ OAuth2::Response.stubs(:=== => true)
14
+ end
15
+ should "return true" do
16
+ response = BitlyOAuth::Response.new(stub('oauth', :parsed => {'status_code' => 200}))
17
+ assert_equal true, response.success?
18
+ end
19
+ should "return false" do
20
+ response = BitlyOAuth::Response.new(stub('oauth', :parsed => {'status_code' => 'not 200'}))
21
+ assert_equal false, response.success?
22
+ end
23
+ should "return the status code" do
24
+ response = BitlyOAuth::Response.new(stub('oauth', :parsed => {'status_code' => 'some status code'}))
25
+ assert_equal 'some status code', response.status,
26
+ end
27
+ should "return the response body" do
28
+ response = BitlyOAuth::Response.new(stub('oauth', :parsed => { 'data' => {} } ))
29
+ assert_equal Hash.new, response.body
30
+ end
31
+ should "return the response body" do
32
+ response = BitlyOAuth::Response.new(stub('oauth', :parsed => {'data' => nil}))
33
+ assert_equal nil, response.body
34
+ end
35
+ should "return the status text reason" do
36
+ response = BitlyOAuth::Response.new(stub('oauth', :parsed => {'status_txt' => "OK"}))
37
+ assert_equal "OK", response.reason
38
+ end
39
+ should "return the status text reason" do
40
+ response = BitlyOAuth::Response.new(stub('oauth', :parsed => {'status_txt' => "RATE_LIMIT_EXCEEDED"}))
41
+ assert_equal "Rate Limit Exceeded", response.reason
42
+ end
43
+ should "return the status text reason" do
44
+ response = BitlyOAuth::Response.new(stub('oauth', :parsed => {'status_txt' => "INVALID_ANYTHING"}))
45
+ assert_equal "Invalid Anything", response.reason
46
+ end
47
+ end
48
+
49
+ context "with a HTTParty response" do
50
+ setup do
51
+ HTTParty::Response.stubs(:=== => true)
52
+ end
53
+ should "return true" do
54
+ response = BitlyOAuth::Response.new(stub(:parsed_response => { 'status_code' => 200 } ))
55
+ assert_equal true, response.success?
56
+ end
57
+ should "return false" do
58
+ response = BitlyOAuth::Response.new(stub(:parsed_response => { 'status_code' => 'not 200' }))
59
+ assert_equal false, response.success?
60
+ end
61
+ should "return the status code" do
62
+ response = BitlyOAuth::Response.new(stub(:parsed_response => { 'status_code' => 'some status code' }))
63
+ assert_equal 'some status code', response.status,
64
+ end
65
+ should "return the response body" do
66
+ response = BitlyOAuth::Response.new(stub(:parsed_response => { 'data' => {} } ))
67
+ assert_equal Hash.new, response.body
68
+ end
69
+ should "return the response body" do
70
+ response = BitlyOAuth::Response.new(stub(:parsed_response => { 'data' => nil }))
71
+ assert_equal nil, response.body
72
+ end
73
+ should "return the status text reason" do
74
+ response = BitlyOAuth::Response.new(stub(:parsed_response => { 'status_txt' => "OK" }))
75
+ assert_equal "OK", response.reason
76
+ end
77
+ should "return the status text reason" do
78
+ response = BitlyOAuth::Response.new(stub(:parsed_response => { 'status_txt' => "RATE_LIMIT_EXCEEDED" }))
79
+ assert_equal "Rate Limit Exceeded", response.reason
80
+ end
81
+ should "return the status text reason" do
82
+ response = BitlyOAuth::Response.new(stub(:parsed_response => { 'status_txt' => "INVALID_ANYTHING" }))
83
+ assert_equal "Invalid Anything", response.reason
84
+ end
85
+ end
86
+ end
@@ -0,0 +1,156 @@
1
+ require 'test_helper'
2
+
3
+ class TestUrl < Test::Unit::TestCase
4
+ context "with a client" do
5
+ setup do
6
+ @client = BitlyOAuth.new('client_id', 'client_secret')
7
+ @client.set_access_token_from_token('token')
8
+ end
9
+ context "and a url" do
10
+ setup do
11
+ @url = BitlyOAuth::Url.new(@client)
12
+ end
13
+ [:short_url,
14
+ :long_url,
15
+ :user_hash,
16
+ :global_hash,
17
+ :user_clicks,
18
+ :global_clicks,
19
+ :new_hash?,
20
+ :title,
21
+ :created_by,
22
+ :referrers,
23
+ :countries,
24
+ :clicks_by_minute,
25
+ :clicks_by_day].each do |method|
26
+ should "respond to #{method}" do
27
+ assert_respond_to @url, method
28
+ end
29
+ end
30
+ end
31
+
32
+ context "and an expanded url" do
33
+ context "getting click data" do
34
+ setup do
35
+ stub_get("https://api-ssl.bit.ly/v3/clicks?access_token=token&hash=9uX1TE", ['9uX1TEclicks.json', '9uX1TEclicks2.json'])
36
+ @url = BitlyOAuth::Url.new(@client, 'hash' => '9uX1TE')
37
+ end
38
+ should "get clicks when global clicks is called" do
39
+ assert_equal 81, @url.global_clicks
40
+ end
41
+ should "get clicks when user clicks is called" do
42
+ assert_equal 0, @url.user_clicks
43
+ end
44
+ should "get global clicks the first time and only update when forced" do
45
+ assert_equal 81, @url.global_clicks
46
+ assert_equal 81, @url.global_clicks
47
+ assert_equal 82, @url.global_clicks(:force => true)
48
+ end
49
+ should "get user clicks the first time and only update when forced" do
50
+ assert_equal 0, @url.user_clicks
51
+ assert_equal 0, @url.user_clicks
52
+ assert_equal 1, @url.user_clicks(:force => true)
53
+ end
54
+ end
55
+ context "getting info" do
56
+ setup do
57
+ stub_get("https://api-ssl.bit.ly/v3/info?hash=9uX1TE&access_token=token", ['9uX1TEinfo.json', '9uX1TEinfo2.json'])
58
+ @url = BitlyOAuth::Url.new(@client, 'hash' => '9uX1TE')
59
+ end
60
+ should "get info when title is called" do
61
+ assert_equal "A title", @url.title
62
+ end
63
+ should "get info when created_by is called" do
64
+ assert_equal 'philnash', @url.created_by
65
+ end
66
+ should "get title the first time and only update when forced" do
67
+ assert_equal "A title", @url.title
68
+ assert_equal "A title", @url.title
69
+ assert_equal "A New Title", @url.title(:force => true)
70
+ end
71
+ should "get the creator the first time and only update when forced" do
72
+ assert_equal 'philnash', @url.created_by
73
+ assert_equal 'philnash', @url.created_by
74
+ # updating just to prove it works, creator is unlikely to change
75
+ assert_equal 'philnash2', @url.created_by(:force => true)
76
+ end
77
+ context "steps to prevent an infinite loop" do
78
+ should "doesn't get info if the title is an empty string" do
79
+ @url = BitlyOAuth::Url.new(@client, 'hash' => '9uX1TE', 'title' => '')
80
+ assert_equal "", @url.title
81
+ end
82
+ should "doesn't get info if the title is explicitly set to nil" do
83
+ @url = BitlyOAuth::Url.new(@client, 'hash' => '9uX1TE', 'title' => nil)
84
+ assert_equal "", @url.title
85
+ end
86
+ end
87
+ end
88
+ context "getting referrers" do
89
+ setup do
90
+ stub_get("https://api-ssl.bit.ly/v3/referrers?access_token=token&hash=djZ9g4", ['referrer_hash.json', 'referrer_hash2.json'])
91
+ @url = BitlyOAuth::Url.new(@client, 'hash' => 'djZ9g4')
92
+ end
93
+ should 'get referrers when called' do
94
+ assert_instance_of Array, @url.referrers
95
+ assert_instance_of BitlyOAuth::Referrer, @url.referrers.first
96
+ assert_equal 'direct', @url.referrers.first.referrer
97
+ assert_equal 62, @url.referrers.first.clicks
98
+ end
99
+ should 'force update when told to' do
100
+ assert_equal 62, @url.referrers.first.clicks
101
+ assert_equal 62, @url.referrers.first.clicks
102
+ assert_equal 63, @url.referrers(:force => true).first.clicks
103
+ end
104
+ end
105
+ context "getting countries" do
106
+ setup do
107
+ stub_get("https://api-ssl.bit.ly/v3/countries?hash=djZ9g4&access_token=token", ['country_hash.json', 'country_hash2.json'])
108
+ @url = BitlyOAuth::Url.new(@client, 'hash' => 'djZ9g4')
109
+ end
110
+ should 'get countries when called' do
111
+ assert_instance_of Array, @url.countries
112
+ assert_instance_of BitlyOAuth::Country, @url.countries.first
113
+ assert_equal 'US', @url.countries.first.country
114
+ assert_equal 58, @url.countries.first.clicks
115
+ end
116
+ should 'force update when told to' do
117
+ assert_equal 58, @url.countries.first.clicks
118
+ assert_equal 58, @url.countries.first.clicks
119
+ assert_equal 59, @url.countries(:force => true).first.clicks
120
+ end
121
+ end
122
+ context "getting clicks by minute" do
123
+ setup do
124
+ @short_url = "http://j.mp/9DguyN"
125
+ stub_get("https://api-ssl.bit.ly/v3/clicks_by_minute?shortUrl=#{CGI.escape(@short_url)}&access_token=token", ['clicks_by_minute1_url.json', 'clicks_by_minute2_url.json'])
126
+ @url = BitlyOAuth::Url.new(@client, 'short_url' => @short_url)
127
+ end
128
+ should 'get clicks_by_minute when called' do
129
+ assert_instance_of Array, @url.clicks_by_minute
130
+ assert_equal 0, @url.clicks_by_minute[0]
131
+ end
132
+ should 'force update when told to' do
133
+ assert_equal 0, @url.clicks_by_minute[2]
134
+ assert_equal 0, @url.clicks_by_minute[2]
135
+ assert_equal 1, @url.clicks_by_minute(:force => true)[2]
136
+ end
137
+ end
138
+ context "getting clicks by day" do
139
+ setup do
140
+ @hash = "9DguyN"
141
+ stub_get("https://api-ssl.bit.ly/v3/clicks_by_day?hash=#{@hash}&access_token=token", ['clicks_by_day1.json', 'clicks_by_day2.json'])
142
+ @url = BitlyOAuth::Url.new(@client, 'hash' => @hash)
143
+ end
144
+ should 'get clicks_by_day when called' do
145
+ assert_instance_of Array, @url.clicks_by_day
146
+ assert_instance_of BitlyOAuth::Day, @url.clicks_by_day[0]
147
+ end
148
+ should 'force update when told to' do
149
+ assert_equal 1, @url.clicks_by_day[0].clicks
150
+ assert_equal 1, @url.clicks_by_day[0].clicks
151
+ assert_equal 2, @url.clicks_by_day(:force => true)[0].clicks
152
+ end
153
+ end
154
+ end
155
+ end
156
+ end
@@ -0,0 +1,17 @@
1
+ require 'test_helper'
2
+
3
+ class TestUser < Test::Unit::TestCase
4
+ context "with an access_token" do
5
+ setup do
6
+ client = BitlyOAuth::Client.new('client_id', 'client_secret')
7
+ access_token = client.get_access_token_from_token('token')
8
+ @user = BitlyOAuth::User.new(access_token)
9
+ end
10
+
11
+ context 'the user' do
12
+ should 'get a client' do
13
+ assert_kind_of BitlyOAuth::Client, @user.client
14
+ end
15
+ end
16
+ end
17
+ end
metadata ADDED
@@ -0,0 +1,215 @@
1
+ --- !ruby/object:Gem::Specification
2
+ name: bitly-oauth
3
+ version: !ruby/object:Gem::Version
4
+ version: 0.1.0
5
+ prerelease:
6
+ platform: ruby
7
+ authors:
8
+ - jonstorer
9
+ autorequire:
10
+ bindir: bin
11
+ cert_chain: []
12
+ date: 2012-01-21 00:00:00.000000000Z
13
+ dependencies:
14
+ - !ruby/object:Gem::Dependency
15
+ name: httparty
16
+ requirement: &70324210549840 !ruby/object:Gem::Requirement
17
+ none: false
18
+ requirements:
19
+ - - ! '>='
20
+ - !ruby/object:Gem::Version
21
+ version: 0.7.6
22
+ type: :runtime
23
+ prerelease: false
24
+ version_requirements: *70324210549840
25
+ - !ruby/object:Gem::Dependency
26
+ name: oauth2
27
+ requirement: &70324210549300 !ruby/object:Gem::Requirement
28
+ none: false
29
+ requirements:
30
+ - - ! '>='
31
+ - !ruby/object:Gem::Version
32
+ version: 0.1.1
33
+ type: :runtime
34
+ prerelease: false
35
+ version_requirements: *70324210549300
36
+ - !ruby/object:Gem::Dependency
37
+ name: shoulda
38
+ requirement: &70324210548740 !ruby/object:Gem::Requirement
39
+ none: false
40
+ requirements:
41
+ - - ! '>='
42
+ - !ruby/object:Gem::Version
43
+ version: '0'
44
+ type: :development
45
+ prerelease: false
46
+ version_requirements: *70324210548740
47
+ - !ruby/object:Gem::Dependency
48
+ name: jeweler
49
+ requirement: &70324210548180 !ruby/object:Gem::Requirement
50
+ none: false
51
+ requirements:
52
+ - - ! '>='
53
+ - !ruby/object:Gem::Version
54
+ version: 1.4.0
55
+ type: :development
56
+ prerelease: false
57
+ version_requirements: *70324210548180
58
+ - !ruby/object:Gem::Dependency
59
+ name: rcov
60
+ requirement: &70324210547460 !ruby/object:Gem::Requirement
61
+ none: false
62
+ requirements:
63
+ - - ! '>='
64
+ - !ruby/object:Gem::Version
65
+ version: '0'
66
+ type: :development
67
+ prerelease: false
68
+ version_requirements: *70324210547460
69
+ - !ruby/object:Gem::Dependency
70
+ name: mocha
71
+ requirement: &70324210545740 !ruby/object:Gem::Requirement
72
+ none: false
73
+ requirements:
74
+ - - ! '>='
75
+ - !ruby/object:Gem::Version
76
+ version: 0.10.0
77
+ type: :development
78
+ prerelease: false
79
+ version_requirements: *70324210545740
80
+ - !ruby/object:Gem::Dependency
81
+ name: fakeweb
82
+ requirement: &70324210545260 !ruby/object:Gem::Requirement
83
+ none: false
84
+ requirements:
85
+ - - ! '>='
86
+ - !ruby/object:Gem::Version
87
+ version: 1.2.8
88
+ type: :development
89
+ prerelease: false
90
+ version_requirements: *70324210545260
91
+ description: ! 'A ruby wrapper for version 3 of the bit.ly API
92
+
93
+ Supports OAuth authentication
94
+
95
+ '
96
+ email: jonathon.scott.storer@gmail.com
97
+ executables: []
98
+ extensions: []
99
+ extra_rdoc_files:
100
+ - LICENSE
101
+ - README.md
102
+ - README.rdoc
103
+ files:
104
+ - History.txt
105
+ - LICENSE
106
+ - README.md
107
+ - README.rdoc
108
+ - Rakefile
109
+ - VERSION
110
+ - lib/bitly_oauth.rb
111
+ - lib/bitly_oauth/access_token.rb
112
+ - lib/bitly_oauth/client.rb
113
+ - lib/bitly_oauth/country.rb
114
+ - lib/bitly_oauth/day.rb
115
+ - lib/bitly_oauth/error.rb
116
+ - lib/bitly_oauth/lib/core_ext/hash.rb
117
+ - lib/bitly_oauth/lib/core_ext/string.rb
118
+ - lib/bitly_oauth/missing_url.rb
119
+ - lib/bitly_oauth/realtime_link.rb
120
+ - lib/bitly_oauth/referrer.rb
121
+ - lib/bitly_oauth/referring_domain.rb
122
+ - lib/bitly_oauth/response.rb
123
+ - lib/bitly_oauth/url.rb
124
+ - lib/bitly_oauth/user.rb
125
+ - test/fixtures/9uX1TE.json
126
+ - test/fixtures/9uX1TEclicks.json
127
+ - test/fixtures/9uX1TEclicks2.json
128
+ - test/fixtures/9uX1TEinfo.json
129
+ - test/fixtures/9uX1TEinfo2.json
130
+ - test/fixtures/auth_fail.json
131
+ - test/fixtures/auth_success.json
132
+ - test/fixtures/betaworks.json
133
+ - test/fixtures/betaworks2.json
134
+ - test/fixtures/betaworks_jmp.json
135
+ - test/fixtures/betaworks_other_user.json
136
+ - test/fixtures/bitly9uX1TE.json
137
+ - test/fixtures/bitly_pro_domain.json
138
+ - test/fixtures/clicks_by_day.json
139
+ - test/fixtures/clicks_by_day1.json
140
+ - test/fixtures/clicks_by_day2.json
141
+ - test/fixtures/clicks_by_minute1_url.json
142
+ - test/fixtures/clicks_by_minute2_url.json
143
+ - test/fixtures/clicks_by_minute_hash.json
144
+ - test/fixtures/clicks_by_minute_hashes.json
145
+ - test/fixtures/country_hash.json
146
+ - test/fixtures/country_hash2.json
147
+ - test/fixtures/country_url.json
148
+ - test/fixtures/failure.json
149
+ - test/fixtures/invalid_bitly_pro_domain.json
150
+ - test/fixtures/invalid_credentials.json
151
+ - test/fixtures/invalid_domain.json
152
+ - test/fixtures/invalid_user.json
153
+ - test/fixtures/invalid_x_api_key.json
154
+ - test/fixtures/lookup_multiple_url.json
155
+ - test/fixtures/lookup_not_real_url.json
156
+ - test/fixtures/lookup_single_url.json
157
+ - test/fixtures/missing_hash.json
158
+ - test/fixtures/multiple_info.json
159
+ - test/fixtures/multiple_url_click.json
160
+ - test/fixtures/multiple_urls.json
161
+ - test/fixtures/not_bitly_pro_domain.json
162
+ - test/fixtures/not_found_info.json
163
+ - test/fixtures/referrer_hash.json
164
+ - test/fixtures/referrer_hash2.json
165
+ - test/fixtures/referrer_url.json
166
+ - test/fixtures/success.json
167
+ - test/fixtures/url_info.json
168
+ - test/fixtures/user_clicks.json
169
+ - test/fixtures/user_countries.json
170
+ - test/fixtures/user_realtime_links.json
171
+ - test/fixtures/user_referrers.json
172
+ - test/fixtures/valid_user.json
173
+ - test/integration/strategy/old_test_api_key.rb
174
+ - test/integration/test_client.rb
175
+ - test/integration/test_user.rb
176
+ - test/test_helper.rb
177
+ - test/unit/core_ext/test_hash.rb
178
+ - test/unit/core_ext/test_string.rb
179
+ - test/unit/test_bitly_oauth.rb
180
+ - test/unit/test_client.rb
181
+ - test/unit/test_country.rb
182
+ - test/unit/test_day.rb
183
+ - test/unit/test_error.rb
184
+ - test/unit/test_missing.rb
185
+ - test/unit/test_realtime_link.rb
186
+ - test/unit/test_referrer.rb
187
+ - test/unit/test_referring_domain.rb
188
+ - test/unit/test_response.rb
189
+ - test/unit/test_url.rb
190
+ - test/unit/test_user.rb
191
+ homepage: http://github.com/jonstorer/bitly-oauth
192
+ licenses: []
193
+ post_install_message:
194
+ rdoc_options: []
195
+ require_paths:
196
+ - lib
197
+ required_ruby_version: !ruby/object:Gem::Requirement
198
+ none: false
199
+ requirements:
200
+ - - ! '>='
201
+ - !ruby/object:Gem::Version
202
+ version: '0'
203
+ required_rubygems_version: !ruby/object:Gem::Requirement
204
+ none: false
205
+ requirements:
206
+ - - ! '>='
207
+ - !ruby/object:Gem::Version
208
+ version: '0'
209
+ requirements: []
210
+ rubyforge_project:
211
+ rubygems_version: 1.8.10
212
+ signing_key:
213
+ specification_version: 3
214
+ summary: A ruby wrapper for the bit.ly API
215
+ test_files: []