ruby-bitly 0.1.6 → 0.1.7

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.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: c173fdedc9e8eb666ec603ae9f8d3cee19e3b070
4
- data.tar.gz: 7bf398863c2f068f3d52ca8f5d15347ae885101f
3
+ metadata.gz: ff50be2b324d891776449f31237b35f8d95aa265
4
+ data.tar.gz: c99ae534047471483cc3585e2d7dc35d6b5793d5
5
5
  SHA512:
6
- metadata.gz: 7afbb33e8e8524bcd6c7259b5e831cfe51ece8292dd0d0486067d6bcd00299035d4a406a01ecf106fb8c1041c9682023253bbf485528ce87332c7f5c0aec07f0
7
- data.tar.gz: f8369b7e41778a32a12ff74dc8222392982dd3142d41c4e3048abd5784427ff3b1419cc70e376bc3b4552ff6592f7a15d4fbb9118407526683b35e3048b574e6
6
+ metadata.gz: 3f6f11d961827a80b1d76f32e8432d7b2aa773e9db87ea6cb8a64ba691ea7c768ec3f9b107150d53d148c551f16773e13ff4f6b788b864a42b032a7944f809ac
7
+ data.tar.gz: c2e528bc64410d3611886f326475c3c5b99bffc124343d90fbece352e5acf76af3a89160ed35440827e8e359dc318b23fc81a95c2cf55a017fa57e4138c0c259
data/.gitignore CHANGED
@@ -13,6 +13,9 @@ tmtags
13
13
  ## VIM
14
14
  *.swp
15
15
 
16
+ ## BUNDLER
17
+ .bundle
18
+
16
19
  ## PROJECT::GENERAL
17
20
  coverage
18
21
  rdoc
data/CHANGELOG CHANGED
@@ -1,4 +1,13 @@
1
- # 0.1.4
1
+ # 0.1.7
2
+
3
+ - Add new possibility to use named parameters
4
+ - Add support for custom domains
5
+
6
+ # 0.1.6
7
+
8
+ - Code improvements
9
+
10
+ # 0.1.5
2
11
 
3
12
  - Code improvements
4
13
 
data/Gemfile CHANGED
@@ -1,4 +1,4 @@
1
- source "http://rubygems.org"
1
+ source "https://rubygems.org"
2
2
 
3
3
  # Specify your gem's dependencies in ruby-bitly.gemspec
4
4
  gemspec
@@ -10,7 +10,7 @@ group :development, :test do
10
10
  end
11
11
 
12
12
  platforms :ruby_19, :ruby_20 do
13
- gem 'debugger'
13
+ gem 'debugger', '1.6.5'
14
14
  end
15
15
 
16
16
  end
data/Gemfile.lock CHANGED
@@ -1,58 +1,79 @@
1
1
  PATH
2
2
  remote: .
3
3
  specs:
4
- ruby-bitly (0.1.6)
5
- json_pure (~> 1.7)
6
- rest-client (~> 1.6)
4
+ ruby-bitly (0.1.7)
5
+ rest-client (~> 2.0)
7
6
 
8
7
  GEM
9
- remote: http://rubygems.org/
8
+ remote: https://rubygems.org/
10
9
  specs:
11
- addressable (2.3.3)
12
- columnize (0.3.6)
13
- crack (0.3.2)
14
- debugger (1.4.0)
10
+ addressable (2.4.0)
11
+ byebug (9.0.6)
12
+ columnize (0.9.0)
13
+ crack (0.4.3)
14
+ safe_yaml (~> 1.0.0)
15
+ debugger (1.6.5)
15
16
  columnize (>= 0.3.1)
16
- debugger-linecache (~> 1.1.1)
17
- debugger-ruby_core_source (~> 1.2.0)
18
- debugger-linecache (1.1.2)
19
- debugger-ruby_core_source (>= 1.1.1)
20
- debugger-ruby_core_source (1.2.0)
21
- diff-lcs (1.2.1)
22
- json_pure (1.7.7)
23
- linecache (0.46)
24
- rbx-require-relative (> 0.0.4)
25
- mime-types (1.21)
26
- rake (10.0.3)
27
- rbx-require-relative (0.0.9)
28
- rest-client (1.6.7)
29
- mime-types (>= 1.16)
30
- rspec (2.13.0)
31
- rspec-core (~> 2.13.0)
32
- rspec-expectations (~> 2.13.0)
33
- rspec-mocks (~> 2.13.0)
34
- rspec-core (2.13.0)
35
- rspec-expectations (2.13.0)
36
- diff-lcs (>= 1.1.3, < 2.0)
37
- rspec-mocks (2.13.0)
17
+ debugger-linecache (~> 1.2.0)
18
+ debugger-ruby_core_source (~> 1.3.1)
19
+ debugger-linecache (1.2.0)
20
+ debugger-ruby_core_source (1.3.8)
21
+ diff-lcs (1.2.5)
22
+ domain_name (0.5.20160826)
23
+ unf (>= 0.0.5, < 1.0.0)
24
+ hashdiff (0.3.0)
25
+ http-cookie (1.0.3)
26
+ domain_name (~> 0.5)
27
+ linecache (1.3.1)
28
+ mime-types (3.1)
29
+ mime-types-data (~> 3.2015)
30
+ mime-types-data (3.2016.0521)
31
+ netrc (0.11.0)
32
+ rake (11.3.0)
33
+ rest-client (2.0.0)
34
+ http-cookie (>= 1.0.2, < 2.0)
35
+ mime-types (>= 1.16, < 4.0)
36
+ netrc (~> 0.8)
37
+ rspec (3.5.0)
38
+ rspec-core (~> 3.5.0)
39
+ rspec-expectations (~> 3.5.0)
40
+ rspec-mocks (~> 3.5.0)
41
+ rspec-core (3.5.4)
42
+ rspec-support (~> 3.5.0)
43
+ rspec-expectations (3.5.0)
44
+ diff-lcs (>= 1.2.0, < 2.0)
45
+ rspec-support (~> 3.5.0)
46
+ rspec-mocks (3.5.0)
47
+ diff-lcs (>= 1.2.0, < 2.0)
48
+ rspec-support (~> 3.5.0)
49
+ rspec-support (3.5.0)
38
50
  ruby-debug (0.10.4)
39
51
  columnize (>= 0.1)
40
52
  ruby-debug-base (~> 0.10.4.0)
41
53
  ruby-debug-base (0.10.4)
42
54
  linecache (>= 0.3)
43
- vcr (1.10.3)
44
- webmock (1.6.4)
45
- addressable (~> 2.2, > 2.2.5)
46
- crack (>= 0.1.7)
55
+ safe_yaml (1.0.4)
56
+ unf (0.1.4)
57
+ unf_ext
58
+ unf_ext (0.0.7.2)
59
+ vcr (3.0.3)
60
+ webmock (2.1.0)
61
+ addressable (>= 2.3.6)
62
+ crack (>= 0.3.2)
63
+ hashdiff
47
64
 
48
65
  PLATFORMS
49
66
  ruby
50
67
 
51
68
  DEPENDENCIES
52
- debugger
69
+ byebug
70
+ debugger (= 1.6.5)
53
71
  rake
54
- rspec (~> 2.13)
72
+ rspec (~> 3.5)
55
73
  ruby-bitly!
56
74
  ruby-debug
57
- vcr (~> 1.10.0)
58
- webmock (~> 1.6.4)
75
+ vcr (~> 3.0)
76
+ webmock (~> 2.1)
77
+
78
+ BUNDLED WITH
79
+ 1.13.1
data/README.rdoc CHANGED
@@ -1,22 +1,67 @@
1
1
  = A simple bit.ly ruby client.
2
2
 
3
- == Examples
3
+ {<img src="https://codeclimate.com/github/dx7/ruby-bitly/badges/gpa.svg" />}[https://codeclimate.com/github/dx7/ruby-bitly]
4
+
5
+
6
+ == Shorten
4
7
  require 'ruby-bitly'
5
8
 
6
- bitly = Bitly.shorten("http://rafaeldx7.github.com", "username", "key-here")
9
+ # old way (deprecated)
10
+ bitly = Bitly.shorten("https://dx7.github.io/", "login-here", "key-here")
7
11
 
8
- bitly.url #=> "http://bit.ly/le0JRh"
12
+ # new way
13
+ bitly = Bitly.shorten(long_url: "https://dx7.github.io/", login: "login-here", api_key: "key-here")
14
+
15
+ bitly.url #=> "http://bit.ly/2dAjjfo"
9
16
 
10
17
  y bitly
11
- :long_url: http://rafaeldx7.github.com/
12
- :url: http://bit.ly/le0JRh
13
- :hash: le0JRh
18
+ :long_url: http://dx7.github.io/
19
+ :url: http://bit.ly/2dAjjfo
20
+ :hash: 2dAjjfo
14
21
  :global_hash: micSj7
15
22
  :new_hash: 0
16
- :hash_path: le0JRh
23
+ :hash_path: 2dAjjfo
17
24
  :status_code: 200
18
25
  :status_txt: OK
19
26
 
27
+
28
+ == Expand
29
+ require 'ruby-bitly'
30
+
31
+ # old way (deprecated)
32
+ bitly = Bitly.expand("http://bit.ly/2dAjjfo", "login-here", "key-here")
33
+
34
+ # new way
35
+ bitly = Bitly.expand(short_url: "http://bit.ly/2dAjjfo", login: "login-here", api_key: "key-here")
36
+
37
+ y bitly
38
+ :short_url: http://bit.ly/2dAjjfo
39
+ :long_url: https://dx7.github.io/
40
+ :user_hash: 2dAjjfo
41
+ :global_hash: 2dAkyet
42
+ :status_code: 200
43
+ :status_txt: OK
44
+
45
+
46
+ == Get Clicks
47
+ require 'ruby-bitly'
48
+
49
+ # old way (deprecated)
50
+ bitly = Bitly.get_clicks("http://bit.ly/2dAjjfo", "login-here", "key-here")
51
+
52
+ # new way
53
+ bitly = Bitly.get_clicks(short_url: "http://bit.ly/2dAjjfo", login: "login-here", api_key: "key-here")
54
+
55
+ y bitly
56
+ :short_url: https://bit.ly/2dAjjfo
57
+ :global_hash: 2dAkyet
58
+ :user_clicks: 0
59
+ :user_hash: 2dAjjfo
60
+ :global_clicks: 0
61
+ :status_code: 200
62
+ :status_txt: OK
63
+
64
+
20
65
  == Command Line Examples
21
66
  Usage
22
67
  bitly [options] url
@@ -24,14 +69,14 @@
24
69
  For help: bitly -h
25
70
 
26
71
  Basic examples:
27
- bitly -s http://xlii.com.br
28
- bitly -e http://bit.ly/XLII42
29
- bitly --user-clicks http://bit.ly/XLII42
30
- bitly --global-clicks http://bit.ly/XLII42
72
+ bitly -s http://dx7.github.io
73
+ bitly -e http://bit.ly/2dAjjfo
74
+ bitly --user-clicks http://bit.ly/2dAjjfo
75
+ bitly --global-clicks http://bit.ly/2dAjjfo
31
76
 
32
77
  Other examples:
33
- bitly -q -s http://xlii.com.br
34
- bitly --verbose -e http://bit.ly/XLII42
78
+ bitly -q -s http://dx7.github.io
79
+ bitly --verbose -e http://bit.ly/2dAjjfo
35
80
 
36
81
  Options
37
82
  -s, --shorten Shorten a long url (default option)
@@ -47,22 +92,25 @@
47
92
  -q, --quiet Output as little as possible, overrides verbose
48
93
  -V, --verbose Verbose output
49
94
 
95
+
50
96
  === Authentication
51
- bit.ly API require that authentication credentials be supplied.
97
+ bit.ly API requires authentication credentials.
52
98
 
53
- To get started, you'll need a free bit.ly user account and apiKey. Signup at: http://bit.ly/a/sign_up
99
+ You need a free bit.ly user account and apiKey. Signup at: http://bit.ly/a/sign_up
54
100
  If you already have an account, you can find your apiKey at: http://bit.ly/a/your_api_key
55
101
 
56
- You can supply credentials as parameters. By example:
57
- bitly -l <username> -k <key-here> -s http://xlii.com.br
102
+ You can supply credentials as parameters. For example:
103
+ bitly -l <username> -k <key-here> -s http://dx7.github.io
58
104
 
59
105
  Or you can create the file ~/.bitly (YAML format) with this content:
60
106
  login: <username>
61
107
  key: <key-here>
62
108
 
109
+
63
110
  == Author
64
- rafaeldx7 ~ rafaeldx7(a)gmail.com
111
+ dx7 ~ dx7(a)protonmail.ch
112
+
65
113
 
66
114
  == Copyright
67
- Copyright (c) 2010 rafaeldx7. Licensed under the MIT License:
115
+ Copyright (c) 2010 dx7. Licensed under the MIT License:
68
116
  http://www.opensource.org/licenses/mit-license.php
data/bin/bitly CHANGED
@@ -128,10 +128,10 @@ class App
128
128
  end
129
129
 
130
130
  def process_command
131
- return Bitly.shorten(arguments.first, options.login, options.key).url if options.shorten
132
- return Bitly.expand(arguments.first, options.login, options.key).long_url if options.expand
133
- return Bitly.get_clicks(arguments.first, options.login, options.key).user_clicks.to_s if options.user_clicks
134
- return Bitly.get_clicks(arguments.first, options.login, options.key).global_clicks.to_s if options.global_clicks
131
+ return Bitly.shorten(:long_url => arguments.first, :login => options.login, :api_key => options.key).url if options.shorten
132
+ return Bitly.expand(:short_url => arguments.first, :login => options.login, :api_key => options.key).long_url if options.expand
133
+ return Bitly.get_clicks(:short_url => arguments.first, :login => options.login, :api_key => options.key).user_clicks.to_s if options.user_clicks
134
+ return Bitly.get_clicks(:short_url => arguments.first, :login => options.login, :api_key => options.key).global_clicks.to_s if options.global_clicks
135
135
  end
136
136
  end
137
137
 
@@ -1,36 +1,45 @@
1
- ---
2
- - !ruby/struct:VCR::HTTPInteraction
3
- request: !ruby/struct:VCR::Request
4
- method: :post
5
- uri: http://api.bit.ly:80/v3/expand
6
- body: shortURL=http%3A%2F%2Fgoogle.com&login=my-login&apiKey=my-secret-key
7
- headers:
8
- accept:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.bit.ly/v3/expand
6
+ body:
7
+ encoding: UTF-8
8
+ string: shortURL=http%3A%2F%2Fgoogle.com&login=my-login&apiKey=my-api-key
9
+ headers:
10
+ Accept:
9
11
  - "*/*; q=0.5, application/xml"
10
- accept-encoding:
12
+ Accept-Encoding:
11
13
  - gzip, deflate
12
- content-length:
13
- - "90"
14
- content-type:
14
+ Content-Length:
15
+ - '90'
16
+ Content-Type:
15
17
  - application/x-www-form-urlencoded
16
- response: !ruby/struct:VCR::Response
17
- status: !ruby/struct:VCR::ResponseStatus
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
18
22
  code: 200
19
23
  message: OK
20
- headers:
21
- server:
24
+ headers:
25
+ Server:
22
26
  - nginx
23
- date:
24
- - Sat, 28 May 2011 17:22:28 GMT
25
- content-type:
27
+ Date:
28
+ - Sat, 01 Oct 2016 19:29:26 GMT
29
+ Content-Type:
26
30
  - application/json; charset=utf-8
27
- connection:
31
+ Content-Length:
32
+ - '131'
33
+ Connection:
28
34
  - keep-alive
29
- mime-version:
30
- - "1.0"
31
- content-length:
32
- - "131"
33
- body: |
34
- { "status_code": 200, "status_txt": "OK", "data": { "expand": [ { "error": "NOT_FOUND", "short_url": "http:\/\/google.com" } ] } }
35
+ Mime-Version:
36
+ - '1.0'
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{ "status_code": 200, "status_txt": "OK", "data": { "expand": [ { "error":
40
+ "NOT_FOUND", "short_url": "http:\/\/google.com" } ] } }
35
41
 
36
- http_version: "1.1"
42
+ '
43
+ http_version:
44
+ recorded_at: Sat, 01 Oct 2016 19:29:26 GMT
45
+ recorded_with: VCR 3.0.3
@@ -1,36 +1,46 @@
1
- ---
2
- - !ruby/struct:VCR::HTTPInteraction
3
- request: !ruby/struct:VCR::Request
4
- method: :post
5
- uri: http://api.bit.ly:80/v3/expand
6
- body: shortURL=http%3A%2F%2Fbit.ly%2FbcvNe5&login=my-login&apiKey=my-secret-key
7
- headers:
8
- accept:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.bit.ly/v3/expand
6
+ body:
7
+ encoding: UTF-8
8
+ string: shortURL=http%3A%2F%2Fbit.ly%2FbcvNe5&login=my-login&apiKey=my-api-key
9
+ headers:
10
+ Accept:
9
11
  - "*/*; q=0.5, application/xml"
10
- accept-encoding:
12
+ Accept-Encoding:
11
13
  - gzip, deflate
12
- content-length:
13
- - "95"
14
- content-type:
14
+ Content-Length:
15
+ - '95'
16
+ Content-Type:
15
17
  - application/x-www-form-urlencoded
16
- response: !ruby/struct:VCR::Response
17
- status: !ruby/struct:VCR::ResponseStatus
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
18
22
  code: 200
19
23
  message: OK
20
- headers:
21
- server:
24
+ headers:
25
+ Server:
22
26
  - nginx
23
- date:
24
- - Sat, 28 May 2011 17:22:27 GMT
25
- content-type:
27
+ Date:
28
+ - Sat, 01 Oct 2016 19:29:26 GMT
29
+ Content-Type:
26
30
  - application/json; charset=utf-8
27
- connection:
31
+ Content-Length:
32
+ - '197'
33
+ Connection:
28
34
  - keep-alive
29
- mime-version:
30
- - "1.0"
31
- content-length:
32
- - "197"
33
- body: |
34
- { "status_code": 200, "status_txt": "OK", "data": { "expand": [ { "short_url": "http:\/\/bit.ly\/bcvNe5", "long_url": "http:\/\/google.com", "user_hash": "bcvNe5", "global_hash": "zzzzzzz" } ] } }
35
+ Mime-Version:
36
+ - '1.0'
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{ "status_code": 200, "status_txt": "OK", "data": { "expand": [ { "short_url":
40
+ "http:\/\/bit.ly\/bcvNe5", "long_url": "http:\/\/google.com", "user_hash":
41
+ "bcvNe5", "global_hash": "zzzzzzz" } ] } }
35
42
 
36
- http_version: "1.1"
43
+ '
44
+ http_version:
45
+ recorded_at: Sat, 01 Oct 2016 19:29:26 GMT
46
+ recorded_with: VCR 3.0.3
@@ -1,30 +1,40 @@
1
- ---
2
- - !ruby/struct:VCR::HTTPInteraction
3
- request: !ruby/struct:VCR::Request
4
- method: :get
5
- uri: http://api.bit.ly:80/v3/clicks?apiKey=my-secret-key&login=my-login&shortUrl=http://bit.ly/xlii42
6
- body:
7
- headers:
8
- accept:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: get
5
+ uri: http://api.bit.ly/v3/clicks?apiKey=my-api-key&login=my-login&shortUrl=http://bit.ly/xlii42
6
+ body:
7
+ encoding: US-ASCII
8
+ string: ''
9
+ headers:
10
+ Accept:
9
11
  - "*/*; q=0.5, application/xml"
10
- accept-encoding:
12
+ Accept-Encoding:
11
13
  - gzip, deflate
12
- response: !ruby/struct:VCR::Response
13
- status: !ruby/struct:VCR::ResponseStatus
14
+ User-Agent:
15
+ - Ruby
16
+ response:
17
+ status:
14
18
  code: 200
15
19
  message: OK
16
- headers:
17
- server:
20
+ headers:
21
+ Server:
18
22
  - nginx
19
- date:
20
- - Sat, 28 May 2011 17:22:28 GMT
21
- content-type:
23
+ Date:
24
+ - Sat, 01 Oct 2016 19:29:27 GMT
25
+ Content-Type:
22
26
  - application/json; charset=utf-8
23
- connection:
27
+ Content-Length:
28
+ - '187'
29
+ Connection:
24
30
  - keep-alive
25
- content-length:
26
- - "187"
27
- etag:
28
- - "\"20a0b40a65714ad5a2440caad07fd5c5518584b7\""
29
- body: "{\"status_code\": 200, \"data\": {\"clicks\": [{\"short_url\": \"http://bit.ly/xlii42\", \"global_hash\": \"cunZEP\", \"user_clicks\": 1, \"user_hash\": \"cT1Izu\", \"global_clicks\": 1}]}, \"status_txt\": \"OK\"}"
30
- http_version: "1.1"
31
+ Etag:
32
+ - '"a6d2ce859ab41b205deb5d920fa10e3143a79bf2"'
33
+ body:
34
+ encoding: UTF-8
35
+ string: '{"status_code": 200, "data": {"clicks": [{"short_url": "http://bit.ly/xlii42",
36
+ "global_hash": "cunZEP", "user_clicks": 2, "user_hash": "cT1Izu", "global_clicks":
37
+ 2}]}, "status_txt": "OK"}'
38
+ http_version:
39
+ recorded_at: Sat, 01 Oct 2016 19:29:27 GMT
40
+ recorded_with: VCR 3.0.3
@@ -1,34 +1,43 @@
1
- ---
2
- - !ruby/struct:VCR::HTTPInteraction
3
- request: !ruby/struct:VCR::Request
4
- method: :post
5
- uri: http://api.bit.ly:80/v3/shorten
6
- body: longURL=http%3A%2F%2Fbit.ly%2FbcvNe5&login=my-login&apiKey=my-secret-key
7
- headers:
8
- accept:
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.bit.ly/v3/shorten
6
+ body:
7
+ encoding: UTF-8
8
+ string: longURL=http%3A%2F%2Fbit.ly%2FbcvNe5&login=my-login&apiKey=my-api-key
9
+ headers:
10
+ Accept:
9
11
  - "*/*; q=0.5, application/xml"
10
- accept-encoding:
12
+ Accept-Encoding:
11
13
  - gzip, deflate
12
- content-length:
13
- - "94"
14
- content-type:
14
+ Content-Length:
15
+ - '94'
16
+ Content-Type:
15
17
  - application/x-www-form-urlencoded
16
- response: !ruby/struct:VCR::Response
17
- status: !ruby/struct:VCR::ResponseStatus
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
18
22
  code: 200
19
23
  message: OK
20
- headers:
21
- server:
24
+ headers:
25
+ Server:
22
26
  - nginx
23
- date:
24
- - Sat, 28 May 2011 17:22:26 GMT
25
- content-type:
27
+ Date:
28
+ - Sat, 01 Oct 2016 19:29:25 GMT
29
+ Content-Type:
26
30
  - application/json; charset=utf-8
27
- connection:
31
+ Content-Length:
32
+ - '73'
33
+ Connection:
28
34
  - keep-alive
29
- mime-version:
30
- - "1.0"
31
- content-length:
32
- - "73"
33
- body: "{ \"data\": [ ], \"status_code\": 500, \"status_txt\": \"ALREADY_A_BITLY_LINK\" }"
34
- http_version: "1.1"
35
+ Mime-Version:
36
+ - '1.0'
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{ "data": [ ], "status_code": 500, "status_txt": "ALREADY_A_BITLY_LINK"
40
+ }'
41
+ http_version:
42
+ recorded_at: Sat, 01 Oct 2016 19:29:25 GMT
43
+ recorded_with: VCR 3.0.3
@@ -1,36 +1,46 @@
1
1
  ---
2
- - !ruby/struct:VCR::HTTPInteraction
3
- request: !ruby/struct:VCR::Request
4
- method: :post
5
- uri: http://api.bit.ly:80/v3/shorten
6
- body: longURL=http%3A%2F%2Fgoogle.com&login=my-login&apiKey=my-secret-key
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.bit.ly/v3/shorten
6
+ body:
7
+ encoding: UTF-8
8
+ string: longURL=http%3A%2F%2Fgoogle.com&login=my-login&apiKey=my-api-key
7
9
  headers:
8
- accept:
10
+ Accept:
9
11
  - "*/*; q=0.5, application/xml"
10
- accept-encoding:
12
+ Accept-Encoding:
11
13
  - gzip, deflate
12
- content-length:
13
- - "89"
14
- content-type:
14
+ Content-Length:
15
+ - '89'
16
+ Content-Type:
15
17
  - application/x-www-form-urlencoded
16
- response: !ruby/struct:VCR::Response
17
- status: !ruby/struct:VCR::ResponseStatus
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
18
22
  code: 200
19
23
  message: OK
20
24
  headers:
21
- server:
25
+ Server:
22
26
  - nginx
23
- date:
24
- - Sat, 28 May 2011 17:11:14 GMT
25
- content-type:
27
+ Date:
28
+ - Sat, 01 Oct 2016 19:28:37 GMT
29
+ Content-Type:
26
30
  - application/json; charset=utf-8
27
- connection:
31
+ Content-Length:
32
+ - '184'
33
+ Connection:
28
34
  - keep-alive
29
- mime-version:
30
- - "1.0"
31
- content-length:
32
- - "184"
33
- body: |
34
- { "status_code": 200, "status_txt": "OK", "data": { "long_url": "http:\/\/google.com\/", "url": "http:\/\/bit.ly\/lVW32C", "hash": "lVW32C", "global_hash": "3j4ir4", "new_hash": 3 } }
35
+ Mime-Version:
36
+ - '1.0'
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{ "status_code": 200, "status_txt": "OK", "data": { "long_url": "http:\/\/google.com\/",
40
+ "url": "http:\/\/bit.ly\/lVW32C", "hash": "lVW32C", "global_hash": "3j4ir4",
41
+ "new_hash": 0 } }
35
42
 
36
- http_version: "1.1"
43
+ '
44
+ http_version:
45
+ recorded_at: Sat, 01 Oct 2016 19:28:37 GMT
46
+ recorded_with: VCR 3.0.3
@@ -0,0 +1,46 @@
1
+ ---
2
+ http_interactions:
3
+ - request:
4
+ method: post
5
+ uri: http://api.bit.ly/v3/shorten
6
+ body:
7
+ encoding: UTF-8
8
+ string: longURL=http%3A%2F%2Fgoogle.com&login=my-login&apiKey=my-api-key&domain=j.mp
9
+ headers:
10
+ Accept:
11
+ - "*/*; q=0.5, application/xml"
12
+ Accept-Encoding:
13
+ - gzip, deflate
14
+ Content-Length:
15
+ - '101'
16
+ Content-Type:
17
+ - application/x-www-form-urlencoded
18
+ User-Agent:
19
+ - Ruby
20
+ response:
21
+ status:
22
+ code: 200
23
+ message: OK
24
+ headers:
25
+ Server:
26
+ - nginx
27
+ Date:
28
+ - Sat, 01 Oct 2016 19:29:25 GMT
29
+ Content-Type:
30
+ - application/json; charset=utf-8
31
+ Content-Length:
32
+ - '182'
33
+ Connection:
34
+ - keep-alive
35
+ Mime-Version:
36
+ - '1.0'
37
+ body:
38
+ encoding: UTF-8
39
+ string: '{ "status_code": 200, "status_txt": "OK", "data": { "long_url": "http:\/\/google.com\/",
40
+ "url": "http:\/\/j.mp\/lVW32C", "hash": "lVW32C", "global_hash": "3j4ir4",
41
+ "new_hash": 0 } }
42
+
43
+ '
44
+ http_version:
45
+ recorded_at: Sat, 01 Oct 2016 19:29:25 GMT
46
+ recorded_with: VCR 3.0.3
data/lib/ruby-bitly.rb CHANGED
@@ -12,8 +12,37 @@ class Bitly < OpenStruct
12
12
  class << self
13
13
  attr_accessor :login, :key
14
14
 
15
- def shorten(new_long_url, login = self.login, key = self.key)
16
- response = JSON.parse RestClient.post(REST_API_URL + ACTION_PATH[:shorten], { :longURL => new_long_url, :login => login, :apiKey => key })
15
+ # Old API:
16
+ #
17
+ # shorten(long_url, login = self.login, key = self.key)
18
+ #
19
+ # New API:
20
+ #
21
+ # shorten(options)
22
+ #
23
+ # Options can have:
24
+ #
25
+ # :long_url
26
+ # :login
27
+ # :api_key
28
+ # :domain
29
+ def shorten(long_url, login = self.login, key = self.key)
30
+ if long_url.is_a?(Hash)
31
+ options = long_url
32
+ long_url = options[:long_url]
33
+ login = options[:login] || self.login
34
+ key = options[:api_key] || self.key
35
+ else
36
+ options = {}
37
+ end
38
+
39
+ params = { :longURL => long_url, :login => login, :apiKey => key }
40
+
41
+ if options[:domain]
42
+ params[:domain] = options[:domain]
43
+ end
44
+
45
+ response = JSON.parse RestClient.post(REST_API_URL + ACTION_PATH[:shorten], params)
17
46
  response.delete("data") if response["data"].empty?
18
47
 
19
48
  bitly = new response["data"]
@@ -25,8 +54,30 @@ class Bitly < OpenStruct
25
54
  bitly
26
55
  end
27
56
 
28
- def expand(new_short_url, login = self.login, key = self.key)
29
- response = JSON.parse RestClient.post(REST_API_URL + ACTION_PATH[:expand], { :shortURL => new_short_url, :login => login, :apiKey => key })
57
+ # Old API:
58
+ #
59
+ # expand(short_url, login = self.login, key = self.key)
60
+ #
61
+ # New API:
62
+ #
63
+ # expand(options)
64
+ #
65
+ # Options can have:
66
+ #
67
+ # :long_url
68
+ # :login
69
+ # :api_key
70
+ def expand(short_url, login = self.login, key = self.key)
71
+ if short_url.is_a?(Hash)
72
+ options = short_url
73
+ short_url = options[:short_url]
74
+ login = options[:login] || self.login
75
+ key = options[:api_key] || self.key
76
+ else
77
+ options = {}
78
+ end
79
+
80
+ response = JSON.parse RestClient.post(REST_API_URL + ACTION_PATH[:expand], { :shortURL => short_url, :login => login, :apiKey => key })
30
81
 
31
82
  bitly = new(response["data"]["expand"].first)
32
83
  bitly.status_code = response["status_code"]
@@ -36,8 +87,30 @@ class Bitly < OpenStruct
36
87
  bitly
37
88
  end
38
89
 
39
- def get_clicks(new_short_url, login = self.login, key = self.key)
40
- response = JSON.parse RestClient.get("#{REST_API_URL}#{ACTION_PATH[:clicks]}?login=#{login}&apiKey=#{key}&shortUrl=#{new_short_url}")
90
+ # Old API:
91
+ #
92
+ # get_clicks(short_url, login = self.login, key = self.key)
93
+ #
94
+ # New API:
95
+ #
96
+ # get_clicks(options)
97
+ #
98
+ # Options can have:
99
+ #
100
+ # :long_url
101
+ # :login
102
+ # :api_key
103
+ def get_clicks(short_url, login = self.login, key = self.key)
104
+ if short_url.is_a?(Hash)
105
+ options = short_url
106
+ short_url = options[:short_url]
107
+ login = options[:login] || self.login
108
+ key = options[:api_key] || self.key
109
+ else
110
+ options = {}
111
+ end
112
+
113
+ response = JSON.parse RestClient.get("#{REST_API_URL}#{ACTION_PATH[:clicks]}?login=#{login}&apiKey=#{key}&shortUrl=#{short_url}")
41
114
 
42
115
  bitly = new(response["data"]["clicks"].first)
43
116
  bitly.status_code = response["status_code"]
@@ -1,3 +1,3 @@
1
1
  module BitlyGem
2
- VERSION = '0.1.6'
2
+ VERSION = '0.1.7'
3
3
  end
data/ruby-bitly.gemspec CHANGED
@@ -5,19 +5,19 @@ require "ruby-bitly/version"
5
5
  Gem::Specification.new do |s|
6
6
  s.name = "ruby-bitly"
7
7
  s.version = BitlyGem::VERSION
8
- s.authors = ["rafaeldx7"]
9
- s.email = ["rafaeldx7@gmail.com"]
10
- s.homepage = "http://github.com/rafaeldx7/ruby-bitly"
8
+ s.authors = ["dx7"]
9
+ s.email = ["dx7@protonmail.ch"]
10
+ s.homepage = "http://github.com/dx7/ruby-bitly"
11
11
  s.summary = %q{A simple bit.ly ruby client}
12
12
  s.description = %q{A simple bit.ly ruby client}
13
13
  s.files = `git ls-files`.split("\n")
14
14
  s.test_files = `git ls-files -- {test,spec,features}/*`.split("\n")
15
15
  s.executables = `git ls-files -- bin/*`.split("\n").map{ |f| File.basename(f) }
16
16
  s.require_paths = ["lib"]
17
- s.add_dependency('rest-client', '~> 1.6')
18
- s.add_dependency('json_pure', '~> 1.7')
17
+ s.add_dependency('rest-client', '~> 2.0')
18
+ s.add_development_dependency('byebug')
19
19
  s.add_development_dependency('rake')
20
- s.add_development_dependency('rspec', '~> 2.13')
21
- s.add_development_dependency('vcr', '~> 1.10.0')
22
- s.add_development_dependency('webmock', '~> 1.6.4')
20
+ s.add_development_dependency('rspec', '~> 3.5')
21
+ s.add_development_dependency('vcr', '~> 3.0')
22
+ s.add_development_dependency('webmock', '~> 2.1')
23
23
  end
@@ -1,69 +1,122 @@
1
1
  # -*- encoding: utf-8 -*-
2
2
  require File.expand_path(File.dirname(__FILE__) + '/spec_helper')
3
+ require 'byebug'
3
4
 
4
5
  describe "RubyBitly" do
5
6
 
6
- before(:all) do
7
- @login = 'my-login'
8
- @key = 'my-secret-key'
7
+ let(:login) { ENV['RUBY_BITLY_LOGIN'] || 'my-login' }
8
+ let(:key) { ENV['RUBY_BITLY_APIKEY'] || 'my-api-key' }
9
+
10
+ it "Shorten long url using old API" do
11
+ response = VCR.use_cassette('shorten_long_url') do
12
+ Bitly.shorten("http://google.com", login, key)
13
+ end
14
+
15
+ expect(response.status_txt).to eq("OK")
16
+ expect(response.status_code).to eq(200)
17
+ expect(response.new_hash).to eq(0)
18
+ expect(response.global_hash).not_to be_empty
19
+ expect(response.hash_path.length).not_to eq(0)
20
+ expect(response.url).to match(/^http:\/\/bit\.ly\/[A-Za-z0-9]*/)
9
21
  end
10
22
 
11
- it "Shorten long url" do
23
+ it 'Shorten long url using options API' do
12
24
  response = VCR.use_cassette('shorten_long_url') do
13
- Bitly.shorten("http://google.com", @login, @key)
25
+ Bitly.shorten(:long_url => "http://google.com", :login => login, :api_key => key)
14
26
  end
15
27
 
16
- response.status_code.should == 200
17
- response.status_txt.should == "OK"
18
- response.new_hash.should == 3
19
- response.global_hash.should_not be_empty
20
- response.hash_path.length.should_not == 0
21
- response.url.should match /^http:\/\/bit\.ly\/[A-Za-z0-9]*/
28
+ expect(response.status_txt).to eq("OK")
29
+ expect(response.status_code).to eq(200)
30
+ expect(response.new_hash).to eq(0)
31
+ expect(response.global_hash).not_to be_empty
32
+ expect(response.hash_path.length).not_to eq(0)
33
+ expect(response.url).to match(/^http:\/\/bit\.ly\/[A-Za-z0-9]*/)
34
+ end
35
+
36
+ it 'Shorten url with a preferred domain' do
37
+ response = VCR.use_cassette('shorten_long_url_with_preferred_domain') do
38
+ Bitly.shorten(:long_url => "http://google.com", :domain => 'j.mp',
39
+ :login => login, :api_key => key)
40
+ end
41
+
42
+ expect(response.status_txt).to eq("OK")
43
+ expect(response.status_code).to eq(200)
44
+ expect(response.new_hash).to eq(0)
45
+ expect(response.global_hash).not_to be_empty
46
+ expect(response.hash_path.length).not_to eq(0)
47
+ expect(response.url).to match(/^http:\/\/j\.mp\/[A-Za-z0-9]*/)
22
48
  end
23
49
 
24
50
  it "Shorten bitly url" do
25
51
  response = VCR.use_cassette('shorten_bitly_url') do
26
- Bitly.shorten("http://bit.ly/bcvNe5", @login, @key)
52
+ Bitly.shorten("http://bit.ly/bcvNe5", login, key)
53
+ end
54
+
55
+ expect(response.status_txt).to eq("ALREADY_A_BITLY_LINK")
56
+ expect(response.status_code).to eq(500)
57
+ end
58
+
59
+ it "Expand a short url to it long url using old API" do
60
+ response = VCR.use_cassette('expand_a_short_url_to_it_long_url') do
61
+ Bitly.expand("http://bit.ly/bcvNe5", login, key)
27
62
  end
28
63
 
29
- response.status_code.should == 500
64
+ expect(response.status_txt).to eq("OK")
65
+ expect(response.status_code).to eq(200)
66
+ expect(response.long_url).to eq("http://google.com")
67
+ expect(response.short_url).to eq("http://bit.ly/bcvNe5")
68
+ expect(response.user_hash).to eq("bcvNe5")
30
69
  end
31
70
 
32
- it "Expand a short url to it long url" do
71
+ it "Expand a short url to it long url using options API" do
33
72
  response = VCR.use_cassette('expand_a_short_url_to_it_long_url') do
34
- Bitly.expand("http://bit.ly/bcvNe5", @login, @key)
73
+ Bitly.expand({ :short_url => "http://bit.ly/bcvNe5", :login => login, :api_key => key })
35
74
  end
36
75
 
37
- response.status_code.should == 200
38
- response.status_txt.should == "OK"
39
- response.long_url.should == "http://google.com"
40
- response.short_url.should == "http://bit.ly/bcvNe5"
41
- response.user_hash.should == "bcvNe5"
76
+ expect(response.status_txt).to eq("OK")
77
+ expect(response.status_code).to eq(200)
78
+ expect(response.long_url).to eq("http://google.com")
79
+ expect(response.short_url).to eq("http://bit.ly/bcvNe5")
80
+ expect(response.user_hash).to eq("bcvNe5")
42
81
  end
43
82
 
44
83
  it "Expand a long url should result an error" do
45
84
  response = VCR.use_cassette('expand_a_long_url_should_result_an_error') do
46
- Bitly.expand("http://google.com", @login, @key)
85
+ Bitly.expand("http://google.com", login, key)
47
86
  end
48
87
 
49
- response.status_code.should == 200
50
- response.status_txt.should == "OK"
51
- response.long_url.should == "NOT_FOUND"
52
- response.short_url.should == "http://google.com"
88
+ expect(response.status_txt).to eq("OK")
89
+ expect(response.status_code).to eq(200)
90
+ expect(response.long_url).to eq("NOT_FOUND")
91
+ expect(response.short_url).to eq("http://google.com")
53
92
  end
54
93
 
55
94
 
56
- it "Get clicks by short_url" do
95
+ it "Get clicks by short_url using old API" do
96
+ bitly = VCR.use_cassette('get_clicks_by_short_url') do
97
+ Bitly.get_clicks("http://bit.ly/xlii42", login, key)
98
+ end
99
+
100
+ expect(bitly.status_txt).to eq("OK")
101
+ expect(bitly.status_code).to eq(200)
102
+ expect(bitly.global_clicks).to be_an_instance_of Fixnum
103
+ expect(bitly.user_clicks).to be_an_instance_of Fixnum
104
+ expect(bitly.short_url).to eq("http://bit.ly/xlii42")
105
+ expect(bitly.global_hash).to eq("cunZEP")
106
+ expect(bitly.user_hash).to eq("cT1Izu")
107
+ end
108
+
109
+ it "Get clicks by short_url using options API" do
57
110
  bitly = VCR.use_cassette('get_clicks_by_short_url') do
58
- Bitly.get_clicks("http://bit.ly/xlii42", @login, @key)
111
+ Bitly.get_clicks(:short_url => "http://bit.ly/xlii42", :login => login, :api_key => key)
59
112
  end
60
113
 
61
- bitly.status_txt.should == "OK"
62
- bitly.status_code.should == 200
63
- bitly.global_clicks.should be_an_instance_of Fixnum
64
- bitly.user_clicks.should be_an_instance_of Fixnum
65
- bitly.short_url.should == "http://bit.ly/xlii42"
66
- bitly.global_hash.should == "cunZEP"
67
- bitly.user_hash.should == "cT1Izu"
114
+ expect(bitly.status_txt).to eq("OK")
115
+ expect(bitly.status_code).to eq(200)
116
+ expect(bitly.global_clicks).to be_an_instance_of Fixnum
117
+ expect(bitly.user_clicks).to be_an_instance_of Fixnum
118
+ expect(bitly.short_url).to eq("http://bit.ly/xlii42")
119
+ expect(bitly.global_hash).to eq("cunZEP")
120
+ expect(bitly.user_hash).to eq("cT1Izu")
68
121
  end
69
122
  end
data/spec/spec_helper.rb CHANGED
@@ -3,12 +3,11 @@ $LOAD_PATH.unshift(File.dirname(__FILE__))
3
3
  $LOAD_PATH.unshift(File.join(File.dirname(__FILE__), '..', 'lib'))
4
4
  require 'ruby-bitly'
5
5
  require 'rspec'
6
- require 'rspec/autorun'
7
6
  require 'vcr'
8
7
 
9
- VCR.config do |c|
8
+ VCR.configure do |c|
10
9
  c.cassette_library_dir = 'fixtures/vcr_cassettes'
11
10
  c.ignore_localhost = true
12
- c.stub_with :webmock # or :fakeweb
13
- c.default_cassette_options = { :record => :once }
11
+ c.hook_into :webmock
12
+ c.default_cassette_options = { :record => :once, :match_requests_on => [:method, :uri, :host, :path, :body, :query] }
14
13
  end
metadata CHANGED
@@ -1,109 +1,109 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: ruby-bitly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.6
4
+ version: 0.1.7
5
5
  platform: ruby
6
6
  authors:
7
- - rafaeldx7
7
+ - dx7
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2013-03-11 00:00:00.000000000 Z
11
+ date: 2016-10-02 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: rest-client
15
15
  requirement: !ruby/object:Gem::Requirement
16
16
  requirements:
17
- - - ~>
17
+ - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '1.6'
19
+ version: '2.0'
20
20
  type: :runtime
21
21
  prerelease: false
22
22
  version_requirements: !ruby/object:Gem::Requirement
23
23
  requirements:
24
- - - ~>
24
+ - - "~>"
25
25
  - !ruby/object:Gem::Version
26
- version: '1.6'
26
+ version: '2.0'
27
27
  - !ruby/object:Gem::Dependency
28
- name: json_pure
28
+ name: byebug
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
- - - ~>
31
+ - - ">="
32
32
  - !ruby/object:Gem::Version
33
- version: '1.7'
34
- type: :runtime
33
+ version: '0'
34
+ type: :development
35
35
  prerelease: false
36
36
  version_requirements: !ruby/object:Gem::Requirement
37
37
  requirements:
38
- - - ~>
38
+ - - ">="
39
39
  - !ruby/object:Gem::Version
40
- version: '1.7'
40
+ version: '0'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rake
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
- - - '>='
45
+ - - ">="
46
46
  - !ruby/object:Gem::Version
47
47
  version: '0'
48
48
  type: :development
49
49
  prerelease: false
50
50
  version_requirements: !ruby/object:Gem::Requirement
51
51
  requirements:
52
- - - '>='
52
+ - - ">="
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0'
55
55
  - !ruby/object:Gem::Dependency
56
56
  name: rspec
57
57
  requirement: !ruby/object:Gem::Requirement
58
58
  requirements:
59
- - - ~>
59
+ - - "~>"
60
60
  - !ruby/object:Gem::Version
61
- version: '2.13'
61
+ version: '3.5'
62
62
  type: :development
63
63
  prerelease: false
64
64
  version_requirements: !ruby/object:Gem::Requirement
65
65
  requirements:
66
- - - ~>
66
+ - - "~>"
67
67
  - !ruby/object:Gem::Version
68
- version: '2.13'
68
+ version: '3.5'
69
69
  - !ruby/object:Gem::Dependency
70
70
  name: vcr
71
71
  requirement: !ruby/object:Gem::Requirement
72
72
  requirements:
73
- - - ~>
73
+ - - "~>"
74
74
  - !ruby/object:Gem::Version
75
- version: 1.10.0
75
+ version: '3.0'
76
76
  type: :development
77
77
  prerelease: false
78
78
  version_requirements: !ruby/object:Gem::Requirement
79
79
  requirements:
80
- - - ~>
80
+ - - "~>"
81
81
  - !ruby/object:Gem::Version
82
- version: 1.10.0
82
+ version: '3.0'
83
83
  - !ruby/object:Gem::Dependency
84
84
  name: webmock
85
85
  requirement: !ruby/object:Gem::Requirement
86
86
  requirements:
87
- - - ~>
87
+ - - "~>"
88
88
  - !ruby/object:Gem::Version
89
- version: 1.6.4
89
+ version: '2.1'
90
90
  type: :development
91
91
  prerelease: false
92
92
  version_requirements: !ruby/object:Gem::Requirement
93
93
  requirements:
94
- - - ~>
94
+ - - "~>"
95
95
  - !ruby/object:Gem::Version
96
- version: 1.6.4
96
+ version: '2.1'
97
97
  description: A simple bit.ly ruby client
98
98
  email:
99
- - rafaeldx7@gmail.com
99
+ - dx7@protonmail.ch
100
100
  executables:
101
101
  - bitly
102
102
  extensions: []
103
103
  extra_rdoc_files: []
104
104
  files:
105
- - .gitignore
106
- - .rspec
105
+ - ".gitignore"
106
+ - ".rspec"
107
107
  - CHANGELOG
108
108
  - Gemfile
109
109
  - Gemfile.lock
@@ -116,12 +116,13 @@ files:
116
116
  - fixtures/vcr_cassettes/get_clicks_by_short_url.yml
117
117
  - fixtures/vcr_cassettes/shorten_bitly_url.yml
118
118
  - fixtures/vcr_cassettes/shorten_long_url.yml
119
+ - fixtures/vcr_cassettes/shorten_long_url_with_preferred_domain.yml
119
120
  - lib/ruby-bitly.rb
120
121
  - lib/ruby-bitly/version.rb
121
122
  - ruby-bitly.gemspec
122
123
  - spec/ruby-bitly_spec.rb
123
124
  - spec/spec_helper.rb
124
- homepage: http://github.com/rafaeldx7/ruby-bitly
125
+ homepage: http://github.com/dx7/ruby-bitly
125
126
  licenses: []
126
127
  metadata: {}
127
128
  post_install_message:
@@ -130,17 +131,17 @@ require_paths:
130
131
  - lib
131
132
  required_ruby_version: !ruby/object:Gem::Requirement
132
133
  requirements:
133
- - - '>='
134
+ - - ">="
134
135
  - !ruby/object:Gem::Version
135
136
  version: '0'
136
137
  required_rubygems_version: !ruby/object:Gem::Requirement
137
138
  requirements:
138
- - - '>='
139
+ - - ">="
139
140
  - !ruby/object:Gem::Version
140
141
  version: '0'
141
142
  requirements: []
142
143
  rubyforge_project:
143
- rubygems_version: 2.0.0
144
+ rubygems_version: 2.5.1
144
145
  signing_key:
145
146
  specification_version: 4
146
147
  summary: A simple bit.ly ruby client