bitly 0.10.3 → 0.10.4

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.
@@ -1,3 +1,16 @@
1
+ === 0.10.4 / 2015-01-08
2
+
3
+ * 1 minor update
4
+
5
+ * You can now pass a state parameter to the OAuth authorize url.
6
+
7
+ === 0.10.3 / 2014-09-22
8
+
9
+ * 1 minor update
10
+
11
+ * Due to a tooling mishap, the previous gem version didn't update the OAuth2
12
+ gem versions. This has been updated now.
13
+
1
14
  === 0.10.2 / 2014-09-20
2
15
 
3
16
  * 1 minor update
data/Manifest CHANGED
@@ -3,6 +3,7 @@ History.txt
3
3
  Manifest
4
4
  README.md
5
5
  Rakefile
6
+ bitly.gemspec
6
7
  lib/bitly.rb
7
8
  lib/bitly/client.rb
8
9
  lib/bitly/config.rb
data/README.md CHANGED
@@ -12,7 +12,9 @@ Bitly recently released their version 3 API. From this 0.5.0 release, the gem wi
12
12
 
13
13
  To move to using the version 3 API, call:
14
14
 
15
- Bitly.use_api_version_3
15
+ ```ruby
16
+ Bitly.use_api_version_3
17
+ ```
16
18
 
17
19
  Then, when you call ``Bitly.new(username, api_key)`` you will get a ``Bitly::V3::Client`` instead, which provides the version 3 api calls (``shorten``, ``expand``, ``clicks``, ``validate`` and ``bitly_pro_domain``). See [http://dev.bitly.com](http://dev.bitly.com) for details.
18
20
 
@@ -30,50 +32,63 @@ Eventually, this will become the default version used and finally, the V3 module
30
32
 
31
33
  Create a Bitly client using your username and api key as follows:
32
34
 
33
- bitly = Bitly.new(username, api_key)
35
+ ```ruby
36
+ bitly = Bitly.new(username, api_key)
37
+ ```
34
38
 
35
39
  You can then use that client to shorten or expand urls or return more information or statistics as so:
36
40
 
37
- bitly.shorten('http://www.google.com')
38
- bitly.shorten('http://www.google.com', :history => 1) # adds the url to the api user's history
39
- bitly.expand('wQaT')
40
- bitly.info('http://bit.ly/wQaT')
41
- bitly.stats('http://bit.ly/wQaT')
41
+ ```ruby
42
+ bitly.shorten('http://www.google.com')
43
+ bitly.shorten('http://www.google.com', :history => 1) # adds the url to the api user's history
44
+ bitly.expand('wQaT')
45
+ bitly.info('http://bit.ly/wQaT')
46
+ bitly.stats('http://bit.ly/wQaT')
47
+ ```
42
48
 
43
49
  Each can be used in all the methods described in the API docs, the shorten function, for example, takes a url or an array of urls.
44
50
 
45
51
  All four functions return a ``Bitly::Url`` object (or an array of ``Bitly::Url`` objects if you supplied an array as the input). You can then get all the information required from that object.
46
52
 
47
- u = bitly.shorten('http://www.google.com') #=> Bitly::Url
53
+ ```ruby
54
+ u = bitly.shorten('http://www.google.com') #=> Bitly::Url
48
55
 
49
- u.long_url #=> "http://www.google.com"
50
- u.short_url #=> "http://bit.ly/Ywd1"
51
- u.bitly_url #=> "http://bit.ly/Ywd1"
52
- u.jmp_url #=> "http://j.mp/Ywd1"
53
- u.user_hash #=> "Ywd1"
54
- u.hash #=> "2V6CFi"
55
- u.info #=> a ruby hash of the JSON returned from the API
56
- u.stats #=> a ruby hash of the JSON returned from the API
56
+ u.long_url #=> "http://www.google.com"
57
+ u.short_url #=> "http://bit.ly/Ywd1"
58
+ u.bitly_url #=> "http://bit.ly/Ywd1"
59
+ u.jmp_url #=> "http://j.mp/Ywd1"
60
+ u.user_hash #=> "Ywd1"
61
+ u.hash #=> "2V6CFi"
62
+ u.info #=> a ruby hash of the JSON returned from the API
63
+ u.stats #=> a ruby hash of the JSON returned from the API
57
64
 
58
- bitly.shorten('http://www.google.com', 'keyword')
65
+ bitly.shorten('http://www.google.com', 'keyword')
66
+ ```
59
67
 
60
68
  ### Version 3 API
61
69
 
62
70
  Please see the Bit.ly API documentation [http://api.bit.ly](http://api.bit.ly) for details on the V3 API.
63
71
 
72
+ Get your access token here: [https://bitly.com/a/oauth_apps](https://bitly.com/a/oauth_apps).
73
+
64
74
  ### Configure bitly through initializer
65
75
 
66
76
  If you want to configure bitly through an initializer (e.g. `config/initializers/bitly.rb`), do the following:
67
77
 
68
- Bitly.configure do |config|
69
- config.api_version = 3
70
- config.login = "Bitly_Username"
71
- config.api_key = "API_KEY"
72
- end
78
+ ```ruby
79
+ Bitly.use_api_version_3
80
+
81
+ Bitly.configure do |config|
82
+ config.api_version = 3
83
+ config.access_token = "API_KEY"
84
+ end
85
+ ```
73
86
 
74
87
  Instead of using `Bitly.new(username, api_key)` to get the client, use `Bitly.client`:
75
88
 
76
- client = Bitly.client
89
+ ```ruby
90
+ Bitly.client.shorten('http://www.google.com')
91
+ ```
77
92
 
78
93
  ## LICENSE:
79
94
 
data/Rakefile CHANGED
@@ -18,6 +18,7 @@ Echoe.new('bitly', Bitly::VERSION) do |p|
18
18
  ['rake'],
19
19
  ['shoulda'],
20
20
  ['flexmock'],
21
- ['fakeweb']
21
+ ['fakeweb'],
22
+ ['activesupport', '~> 3.2']
22
23
  ]
23
24
  end
@@ -2,15 +2,15 @@
2
2
 
3
3
  Gem::Specification.new do |s|
4
4
  s.name = "bitly"
5
- s.version = "0.10.3"
5
+ s.version = "0.10.4"
6
6
 
7
7
  s.required_rubygems_version = Gem::Requirement.new(">= 1.2") if s.respond_to? :required_rubygems_version=
8
8
  s.authors = ["Phil Nash"]
9
- s.date = "2014-09-22"
9
+ s.date = "2015-01-09"
10
10
  s.description = "Use the bit.ly API to shorten or expand URLs"
11
11
  s.email = "philnash@gmail.com"
12
12
  s.extra_rdoc_files = ["README.md", "lib/bitly.rb", "lib/bitly/client.rb", "lib/bitly/config.rb", "lib/bitly/url.rb", "lib/bitly/utils.rb", "lib/bitly/v3.rb", "lib/bitly/v3/bitly.rb", "lib/bitly/v3/client.rb", "lib/bitly/v3/country.rb", "lib/bitly/v3/day.rb", "lib/bitly/v3/missing_url.rb", "lib/bitly/v3/oauth.rb", "lib/bitly/v3/realtime_link.rb", "lib/bitly/v3/referrer.rb", "lib/bitly/v3/url.rb", "lib/bitly/v3/user.rb", "lib/bitly/version.rb"]
13
- s.files = ["Gemfile", "History.txt", "Manifest", "README.md", "Rakefile", "lib/bitly.rb", "lib/bitly/client.rb", "lib/bitly/config.rb", "lib/bitly/url.rb", "lib/bitly/utils.rb", "lib/bitly/v3.rb", "lib/bitly/v3/bitly.rb", "lib/bitly/v3/client.rb", "lib/bitly/v3/country.rb", "lib/bitly/v3/day.rb", "lib/bitly/v3/missing_url.rb", "lib/bitly/v3/oauth.rb", "lib/bitly/v3/realtime_link.rb", "lib/bitly/v3/referrer.rb", "lib/bitly/v3/url.rb", "lib/bitly/v3/user.rb", "lib/bitly/version.rb", "test/bitly/test_client.rb", "test/bitly/test_config.rb", "test/bitly/test_url.rb", "test/bitly/test_utils.rb", "test/fixtures/cnn.json", "test/fixtures/cnn_and_google.json", "test/fixtures/expand_cnn.json", "test/fixtures/expand_cnn_and_google.json", "test/fixtures/google_and_cnn_info.json", "test/fixtures/google_info.json", "test/fixtures/google_stats.json", "test/fixtures/shorten_error.json", "test/test_helper.rb", "bitly.gemspec"]
13
+ s.files = ["Gemfile", "History.txt", "Manifest", "README.md", "Rakefile", "bitly.gemspec", "lib/bitly.rb", "lib/bitly/client.rb", "lib/bitly/config.rb", "lib/bitly/url.rb", "lib/bitly/utils.rb", "lib/bitly/v3.rb", "lib/bitly/v3/bitly.rb", "lib/bitly/v3/client.rb", "lib/bitly/v3/country.rb", "lib/bitly/v3/day.rb", "lib/bitly/v3/missing_url.rb", "lib/bitly/v3/oauth.rb", "lib/bitly/v3/realtime_link.rb", "lib/bitly/v3/referrer.rb", "lib/bitly/v3/url.rb", "lib/bitly/v3/user.rb", "lib/bitly/version.rb", "test/bitly/test_client.rb", "test/bitly/test_config.rb", "test/bitly/test_url.rb", "test/bitly/test_utils.rb", "test/fixtures/cnn.json", "test/fixtures/cnn_and_google.json", "test/fixtures/expand_cnn.json", "test/fixtures/expand_cnn_and_google.json", "test/fixtures/google_and_cnn_info.json", "test/fixtures/google_info.json", "test/fixtures/google_stats.json", "test/fixtures/shorten_error.json", "test/test_helper.rb"]
14
14
  s.homepage = "http://github.com/philnash/bitly"
15
15
  s.rdoc_options = ["--line-numbers", "--title", "Bitly", "--main", "README.md"]
16
16
  s.require_paths = ["lib"]
@@ -31,6 +31,7 @@ Gem::Specification.new do |s|
31
31
  s.add_development_dependency(%q<shoulda>, [">= 0"])
32
32
  s.add_development_dependency(%q<flexmock>, [">= 0"])
33
33
  s.add_development_dependency(%q<fakeweb>, [">= 0"])
34
+ s.add_development_dependency(%q<activesupport>, ["~> 3.2"])
34
35
  else
35
36
  s.add_dependency(%q<multi_json>, ["~> 1.3"])
36
37
  s.add_dependency(%q<httparty>, [">= 0.7.6"])
@@ -40,6 +41,7 @@ Gem::Specification.new do |s|
40
41
  s.add_dependency(%q<shoulda>, [">= 0"])
41
42
  s.add_dependency(%q<flexmock>, [">= 0"])
42
43
  s.add_dependency(%q<fakeweb>, [">= 0"])
44
+ s.add_dependency(%q<activesupport>, ["~> 3.2"])
43
45
  end
44
46
  else
45
47
  s.add_dependency(%q<multi_json>, ["~> 1.3"])
@@ -50,5 +52,6 @@ Gem::Specification.new do |s|
50
52
  s.add_dependency(%q<shoulda>, [">= 0"])
51
53
  s.add_dependency(%q<flexmock>, [">= 0"])
52
54
  s.add_dependency(%q<fakeweb>, [">= 0"])
55
+ s.add_dependency(%q<activesupport>, ["~> 3.2"])
53
56
  end
54
57
  end
@@ -19,8 +19,10 @@ module Bitly
19
19
 
20
20
  # Get the url to redirect a user to, pass the url you want the user
21
21
  # to be redirected back to.
22
- def authorize_url(redirect_url)
23
- client.auth_code.authorize_url(:redirect_uri => redirect_url).gsub(/api-ssl\./,'')
22
+ def authorize_url(redirect_url, state=nil)
23
+ params = {:redirect_uri => redirect_url}
24
+ params[:state] = state if state
25
+ client.auth_code.authorize_url(params).gsub(/api-ssl\./,'')
24
26
  end
25
27
 
26
28
  # Get the access token. You must pass the exact same redirect_url passed
@@ -1,3 +1,3 @@
1
1
  module Bitly
2
- VERSION = '0.10.3'
2
+ VERSION = '0.10.4'
3
3
  end
@@ -22,6 +22,18 @@ class TestClient < Test::Unit::TestCase
22
22
  assert_equal api_key, b.api_key
23
23
  assert_equal login, b.login
24
24
  end
25
+
26
+ should "create a proper OAuth2 authorization url" do
27
+ client = Bitly::V3::OAuth.new('CLIENT_ID', 'CLIENT_SECRET')
28
+ url = client.authorize_url('http://www.example.com/oauth_callback')
29
+ assert_equal "https://bitly.com/oauth/authorize?client_id=CLIENT_ID&redirect_uri=http%3A%2F%2Fwww.example.com%2Foauth_callback&response_type=code", url
30
+ end
31
+
32
+ should "create a proper OAuth2 authorization url with a state parameter" do
33
+ client = Bitly::V3::OAuth.new('CLIENT_ID', 'CLIENT_SECRET')
34
+ url = client.authorize_url('http://www.example.com/oauth_callback', 'some_state')
35
+ assert_equal "https://bitly.com/oauth/authorize?client_id=CLIENT_ID&redirect_uri=http%3A%2F%2Fwww.example.com%2Foauth_callback&response_type=code&state=some_state", url
36
+ end
25
37
  end
26
38
  context "using the bitly client" do
27
39
  setup do
metadata CHANGED
@@ -1,7 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: bitly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.10.3
4
+ version: 0.10.4
5
5
  prerelease:
6
6
  platform: ruby
7
7
  authors:
@@ -9,7 +9,7 @@ authors:
9
9
  autorequire:
10
10
  bindir: bin
11
11
  cert_chain: []
12
- date: 2014-09-22 00:00:00.000000000 Z
12
+ date: 2015-01-09 00:00:00.000000000 Z
13
13
  dependencies:
14
14
  - !ruby/object:Gem::Dependency
15
15
  name: multi_json
@@ -145,6 +145,22 @@ dependencies:
145
145
  - - ! '>='
146
146
  - !ruby/object:Gem::Version
147
147
  version: '0'
148
+ - !ruby/object:Gem::Dependency
149
+ name: activesupport
150
+ requirement: !ruby/object:Gem::Requirement
151
+ none: false
152
+ requirements:
153
+ - - ~>
154
+ - !ruby/object:Gem::Version
155
+ version: '3.2'
156
+ type: :development
157
+ prerelease: false
158
+ version_requirements: !ruby/object:Gem::Requirement
159
+ none: false
160
+ requirements:
161
+ - - ~>
162
+ - !ruby/object:Gem::Version
163
+ version: '3.2'
148
164
  description: Use the bit.ly API to shorten or expand URLs
149
165
  email: philnash@gmail.com
150
166
  executables: []
@@ -174,6 +190,7 @@ files:
174
190
  - Manifest
175
191
  - README.md
176
192
  - Rakefile
193
+ - bitly.gemspec
177
194
  - lib/bitly.rb
178
195
  - lib/bitly/client.rb
179
196
  - lib/bitly/config.rb
@@ -204,7 +221,6 @@ files:
204
221
  - test/fixtures/google_stats.json
205
222
  - test/fixtures/shorten_error.json
206
223
  - test/test_helper.rb
207
- - bitly.gemspec
208
224
  homepage: http://github.com/philnash/bitly
209
225
  licenses: []
210
226
  post_install_message: