bitly 1.0.2 → 1.1.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/Rakefile +1 -1
- data/bitly.gemspec +7 -10
- data/lib/bitly/url.rb +21 -21
- data/lib/bitly/utils.rb +0 -3
- data/lib/bitly/v3/client.rb +3 -5
- data/lib/bitly/version.rb +1 -1
- data/test/bitly/test_client.rb +5 -0
- data/test/bitly/test_utils.rb +1 -1
- data/test/test_helper.rb +5 -4
- metadata +10 -10
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 3592942cb5d03b9e56b4f751ee49f03fa59a7e96
|
4
|
+
data.tar.gz: 72f69d6ca04ecff3b8421571b9bea0d970940029
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 3cff305dfab3f5542b7f96ca2db26befedf5bce50d03e63f0243a2d96b42d11262dfe95f9e06fde19dcf2ee57c7df19ba07e38a5bebea4c562295d784f88bd65
|
7
|
+
data.tar.gz: 1e077835817c1d91860cbf62fec80130a0355d1f056a05ebff70bd4aecfc03a9f711b3a6c6063cf6534bac2064d428d958dc37199b445e3c119ad6daab52fd4e
|
data/Rakefile
CHANGED
data/bitly.gemspec
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
# -*- encoding: utf-8 -*-
|
2
|
-
# stub: bitly 1.0
|
2
|
+
# stub: bitly 1.1.0 ruby lib
|
3
3
|
|
4
4
|
Gem::Specification.new do |s|
|
5
5
|
s.name = "bitly".freeze
|
6
|
-
s.version = "1.0
|
6
|
+
s.version = "1.1.0"
|
7
7
|
|
8
8
|
s.required_rubygems_version = Gem::Requirement.new(">= 1.2".freeze) if s.respond_to? :required_rubygems_version=
|
9
9
|
s.require_paths = ["lib".freeze]
|
10
10
|
s.authors = ["Phil Nash".freeze]
|
11
|
-
s.date = "
|
11
|
+
s.date = "2017-02-25"
|
12
12
|
s.description = "Use the bit.ly API to shorten or expand URLs".freeze
|
13
13
|
s.email = "philnash@gmail.com".freeze
|
14
14
|
s.extra_rdoc_files = ["LICENSE.md".freeze, "README.md".freeze, "lib/bitly.rb".freeze, "lib/bitly/client.rb".freeze, "lib/bitly/config.rb".freeze, "lib/bitly/url.rb".freeze, "lib/bitly/utils.rb".freeze, "lib/bitly/v3.rb".freeze, "lib/bitly/v3/bitly.rb".freeze, "lib/bitly/v3/client.rb".freeze, "lib/bitly/v3/country.rb".freeze, "lib/bitly/v3/day.rb".freeze, "lib/bitly/v3/missing_url.rb".freeze, "lib/bitly/v3/oauth.rb".freeze, "lib/bitly/v3/realtime_link.rb".freeze, "lib/bitly/v3/referrer.rb".freeze, "lib/bitly/v3/url.rb".freeze, "lib/bitly/v3/user.rb".freeze, "lib/bitly/version.rb".freeze]
|
@@ -16,7 +16,7 @@ Gem::Specification.new do |s|
|
|
16
16
|
s.homepage = "http://github.com/philnash/bitly".freeze
|
17
17
|
s.rdoc_options = ["--line-numbers".freeze, "--title".freeze, "Bitly".freeze, "--main".freeze, "README.md".freeze]
|
18
18
|
s.rubyforge_project = "bitly".freeze
|
19
|
-
s.rubygems_version = "2.6.
|
19
|
+
s.rubygems_version = "2.6.8".freeze
|
20
20
|
s.summary = "Use the bit.ly API to shorten or expand URLs".freeze
|
21
21
|
s.test_files = ["test/bitly/test_client.rb".freeze, "test/bitly/test_config.rb".freeze, "test/bitly/test_url.rb".freeze, "test/bitly/test_utils.rb".freeze, "test/test_helper.rb".freeze]
|
22
22
|
|
@@ -27,24 +27,22 @@ Gem::Specification.new do |s|
|
|
27
27
|
s.add_runtime_dependency(%q<multi_json>.freeze, ["~> 1.3"])
|
28
28
|
s.add_runtime_dependency(%q<httparty>.freeze, [">= 0.7.6"])
|
29
29
|
s.add_runtime_dependency(%q<oauth2>.freeze, ["< 2.0", ">= 0.5.0"])
|
30
|
-
s.add_runtime_dependency(%q<rack>.freeze, ["<2"]) if RUBY_VERSION.to_f < 2.2
|
31
30
|
s.add_development_dependency(%q<echoe>.freeze, [">= 0"])
|
32
31
|
s.add_development_dependency(%q<rake>.freeze, [">= 0"])
|
33
32
|
s.add_development_dependency(%q<shoulda>.freeze, [">= 0"])
|
34
33
|
s.add_development_dependency(%q<flexmock>.freeze, [">= 0"])
|
35
|
-
s.add_development_dependency(%q<
|
34
|
+
s.add_development_dependency(%q<webmock>.freeze, [">= 0"])
|
36
35
|
s.add_development_dependency(%q<activesupport>.freeze, ["~> 3.2"])
|
37
36
|
s.add_development_dependency(%q<minitest>.freeze, ["~> 5.8.3"])
|
38
37
|
else
|
39
38
|
s.add_dependency(%q<multi_json>.freeze, ["~> 1.3"])
|
40
39
|
s.add_dependency(%q<httparty>.freeze, [">= 0.7.6"])
|
41
40
|
s.add_dependency(%q<oauth2>.freeze, ["< 2.0", ">= 0.5.0"])
|
42
|
-
s.add_dependency(%q<rack>.freeze, ["<2"]) if RUBY_VERSION.to_f < 2.2
|
43
41
|
s.add_dependency(%q<echoe>.freeze, [">= 0"])
|
44
42
|
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
45
43
|
s.add_dependency(%q<shoulda>.freeze, [">= 0"])
|
46
44
|
s.add_dependency(%q<flexmock>.freeze, [">= 0"])
|
47
|
-
s.add_dependency(%q<
|
45
|
+
s.add_dependency(%q<webmock>.freeze, [">= 0"])
|
48
46
|
s.add_dependency(%q<activesupport>.freeze, ["~> 3.2"])
|
49
47
|
s.add_dependency(%q<minitest>.freeze, ["~> 5.8.3"])
|
50
48
|
end
|
@@ -52,12 +50,11 @@ Gem::Specification.new do |s|
|
|
52
50
|
s.add_dependency(%q<multi_json>.freeze, ["~> 1.3"])
|
53
51
|
s.add_dependency(%q<httparty>.freeze, [">= 0.7.6"])
|
54
52
|
s.add_dependency(%q<oauth2>.freeze, ["< 2.0", ">= 0.5.0"])
|
55
|
-
s.add_dependency(%q<rack>.freeze, ["<2"]) if RUBY_VERSION.to_f < 2.2
|
56
53
|
s.add_dependency(%q<echoe>.freeze, [">= 0"])
|
57
54
|
s.add_dependency(%q<rake>.freeze, [">= 0"])
|
58
55
|
s.add_dependency(%q<shoulda>.freeze, [">= 0"])
|
59
56
|
s.add_dependency(%q<flexmock>.freeze, [">= 0"])
|
60
|
-
s.add_dependency(%q<
|
57
|
+
s.add_dependency(%q<webmock>.freeze, [">= 0"])
|
61
58
|
s.add_dependency(%q<activesupport>.freeze, ["~> 3.2"])
|
62
59
|
s.add_dependency(%q<minitest>.freeze, ["~> 5.8.3"])
|
63
60
|
end
|
data/lib/bitly/url.rb
CHANGED
@@ -1,26 +1,26 @@
|
|
1
1
|
module Bitly
|
2
|
-
|
2
|
+
|
3
3
|
class Url
|
4
4
|
include Bitly::Utils
|
5
|
-
|
5
|
+
|
6
6
|
attr_accessor :long_url, :short_url, :hash, :user_hash
|
7
7
|
VARIABLES = ['long_url', 'short_url', 'hash', 'user_hash']
|
8
|
-
|
8
|
+
|
9
9
|
def initialize(login,api_key,obj=nil)
|
10
10
|
unless obj.nil?
|
11
11
|
raise BitlyError.new(obj['errorMessage'],obj['errorCode']) if obj['statusCode'] == "ERROR"
|
12
12
|
instance_variablise(obj, VARIABLES)
|
13
|
-
@info = obj
|
14
|
-
@stats = obj
|
13
|
+
@info = obj.fetch(:info, nil)
|
14
|
+
@stats = obj.fetch(:stats, nil)
|
15
15
|
end
|
16
16
|
@login = login
|
17
17
|
@api_key = api_key
|
18
18
|
raise ArgumentError.new("Please provide a login and api_key") if @login.nil? || @api_key.nil?
|
19
19
|
end
|
20
|
-
|
20
|
+
|
21
21
|
def shorten(opts = {})
|
22
|
-
return @short_url if @short_url
|
23
|
-
|
22
|
+
return @short_url if defined? @short_url
|
23
|
+
if defined? @long_url
|
24
24
|
request = create_url("shorten", :longUrl => @long_url, :history => (opts[:history] ? 1 : nil))
|
25
25
|
result = get_result(request)[@long_url.gsub(/\/$/,'')]
|
26
26
|
if result['statusCode'] == "ERROR"
|
@@ -33,11 +33,11 @@ module Bitly
|
|
33
33
|
raise ArgumentError.new("You need a long_url in order to shorten it")
|
34
34
|
end
|
35
35
|
end
|
36
|
-
|
36
|
+
|
37
37
|
def expand
|
38
|
-
return @long_url if @long_url
|
39
|
-
unless !(
|
40
|
-
unless @hash
|
38
|
+
return @long_url if defined? @long_url
|
39
|
+
unless !(short_url || hash)
|
40
|
+
unless defined? @hash
|
41
41
|
@hash = create_hash_from_url(@short_url)
|
42
42
|
end
|
43
43
|
request = create_url("expand", :hash => @hash)
|
@@ -52,15 +52,15 @@ module Bitly
|
|
52
52
|
raise ArgumentError.new("You need a short_url or a hash in order to expand it")
|
53
53
|
end
|
54
54
|
end
|
55
|
-
|
55
|
+
|
56
56
|
def info
|
57
57
|
if @info.nil?
|
58
|
-
if @hash
|
58
|
+
if defined? @hash
|
59
59
|
request = create_url "info", :hash => @hash
|
60
60
|
result = get_result(request)[@hash]
|
61
61
|
instance_variablise(result, VARIABLES)
|
62
62
|
@info = result
|
63
|
-
elsif @short_url
|
63
|
+
elsif defined? @short_url
|
64
64
|
@hash = create_hash_from_url(@short_url)
|
65
65
|
request = create_url "info", :hash => hash
|
66
66
|
result = get_result(request)[hash]
|
@@ -74,12 +74,12 @@ module Bitly
|
|
74
74
|
@info
|
75
75
|
end
|
76
76
|
end
|
77
|
-
|
77
|
+
|
78
78
|
def stats
|
79
79
|
if @stats.nil?
|
80
|
-
if @hash
|
80
|
+
if defined? @hash
|
81
81
|
request = create_url "stats", :hash => @hash
|
82
|
-
elsif @short_url
|
82
|
+
elsif defined? @short_url
|
83
83
|
@hash = create_hash_from_url(@short_url)
|
84
84
|
request = create_url "stats", :hash => @hash
|
85
85
|
else
|
@@ -90,14 +90,14 @@ module Bitly
|
|
90
90
|
@stats
|
91
91
|
end
|
92
92
|
end
|
93
|
-
|
93
|
+
|
94
94
|
def bitly_url
|
95
95
|
@short_url.nil? ? nil : @short_url.gsub(/j\.mp/,'bit.ly')
|
96
96
|
end
|
97
|
-
|
97
|
+
|
98
98
|
def jmp_url
|
99
99
|
@short_url.nil? ? nil : @short_url.gsub(/bit\.ly/,'j.mp')
|
100
100
|
end
|
101
101
|
end
|
102
102
|
|
103
|
-
end
|
103
|
+
end
|
data/lib/bitly/utils.rb
CHANGED
@@ -16,8 +16,6 @@ module Bitly
|
|
16
16
|
|
17
17
|
def attr_define(k,v)
|
18
18
|
instance_variable_set("@#{k}", v)
|
19
|
-
meta = class << self; self; end
|
20
|
-
meta.class_eval { attr_reader k.to_sym }
|
21
19
|
end
|
22
20
|
|
23
21
|
def instance_variablise(obj,variables)
|
@@ -44,7 +42,6 @@ module Bitly
|
|
44
42
|
def get_result(request)
|
45
43
|
begin
|
46
44
|
json = Net::HTTP.get(request)
|
47
|
-
# puts json.inspect
|
48
45
|
result = MultiJson.load(json)
|
49
46
|
rescue MultiJson::DecodeError
|
50
47
|
result = {'errorMessage' => 'JSON Parse Error(Bit.ly messed up)', 'errorCode' => 69, 'statusCode' => 'ERROR'}
|
data/lib/bitly/v3/client.rb
CHANGED
@@ -4,9 +4,8 @@ module Bitly
|
|
4
4
|
# username and API key and then you will be able to use the client to perform
|
5
5
|
# all the rest of the actions available through the API.
|
6
6
|
class Client
|
7
|
-
API_URL_SSL = 'https://api-ssl.bitly.com/v3/'
|
8
7
|
include HTTParty
|
9
|
-
base_uri '
|
8
|
+
base_uri 'https://api-ssl.bitly.com/v3/'
|
10
9
|
|
11
10
|
# Requires a generic OAuth2 access token or -deprecated- login and api key.
|
12
11
|
# http://dev.bitly.com/authentication.html#apikey
|
@@ -15,11 +14,10 @@ module Bitly
|
|
15
14
|
# Visit your account at http://bit.ly/a/account
|
16
15
|
def initialize(*args)
|
17
16
|
args.compact!
|
18
|
-
self.timeout = args.last.is_a?(
|
17
|
+
self.timeout = args.last.is_a?(0.class) ? args.pop : nil
|
19
18
|
if args.count == 1
|
20
|
-
# Set generic OAuth2 access token
|
19
|
+
# Set generic OAuth2 access token
|
21
20
|
@default_query_opts = { :access_token => args.first }
|
22
|
-
self.class.base_uri API_URL_SSL
|
23
21
|
else
|
24
22
|
# Deprecated ApiKey authentication
|
25
23
|
@default_query_opts = {
|
data/lib/bitly/version.rb
CHANGED
data/test/bitly/test_client.rb
CHANGED
@@ -2,6 +2,10 @@ require File.join(File.dirname(__FILE__), '..', 'test_helper.rb')
|
|
2
2
|
|
3
3
|
class TestClient < Minitest::Test
|
4
4
|
context "bitly module" do
|
5
|
+
setup do
|
6
|
+
Bitly.api_version = nil
|
7
|
+
end
|
8
|
+
|
5
9
|
should "create a new bitly client" do
|
6
10
|
b = Bitly.new(login, api_key)
|
7
11
|
assert_equal Bitly::Client, b.class
|
@@ -55,6 +59,7 @@ class TestClient < Minitest::Test
|
|
55
59
|
end
|
56
60
|
context "using the bitly client" do
|
57
61
|
setup do
|
62
|
+
Bitly.use_api_version_2
|
58
63
|
@bitly = Bitly.new(login, api_key)
|
59
64
|
end
|
60
65
|
|
data/test/bitly/test_utils.rb
CHANGED
data/test/test_helper.rb
CHANGED
@@ -2,11 +2,12 @@ require 'minitest/autorun'
|
|
2
2
|
require 'rubygems'
|
3
3
|
require 'shoulda'
|
4
4
|
require 'flexmock/minitest'
|
5
|
-
require '
|
5
|
+
require 'webmock/minitest'
|
6
6
|
|
7
7
|
require File.join(File.dirname(__FILE__), '..', 'lib', 'bitly')
|
8
8
|
|
9
|
-
|
9
|
+
WebMock.disable_net_connect!
|
10
|
+
WebMock::Config.instance.query_values_notation = :flat_array
|
10
11
|
|
11
12
|
def fixture_file(filename)
|
12
13
|
return '' if filename == ''
|
@@ -18,7 +19,7 @@ def stub_get(url, filename, status=nil)
|
|
18
19
|
options = {:body => fixture_file(filename)}
|
19
20
|
options.merge!({:status => status}) unless status.nil?
|
20
21
|
|
21
|
-
|
22
|
+
stub_request(:get, url).to_return(options)
|
22
23
|
end
|
23
24
|
|
24
25
|
def api_key
|
@@ -33,6 +34,6 @@ end
|
|
33
34
|
|
34
35
|
class Minitest::Test
|
35
36
|
def teardown
|
36
|
-
|
37
|
+
WebMock.reset!
|
37
38
|
end
|
38
39
|
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: bitly
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 1.0
|
4
|
+
version: 1.1.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Phil Nash
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date:
|
11
|
+
date: 2017-02-25 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: multi_json
|
@@ -42,22 +42,22 @@ dependencies:
|
|
42
42
|
name: oauth2
|
43
43
|
requirement: !ruby/object:Gem::Requirement
|
44
44
|
requirements:
|
45
|
-
- - "<"
|
46
|
-
- !ruby/object:Gem::Version
|
47
|
-
version: '2.0'
|
48
45
|
- - ">="
|
49
46
|
- !ruby/object:Gem::Version
|
50
47
|
version: 0.5.0
|
48
|
+
- - "<"
|
49
|
+
- !ruby/object:Gem::Version
|
50
|
+
version: '2.0'
|
51
51
|
type: :runtime
|
52
52
|
prerelease: false
|
53
53
|
version_requirements: !ruby/object:Gem::Requirement
|
54
54
|
requirements:
|
55
|
-
- - "<"
|
56
|
-
- !ruby/object:Gem::Version
|
57
|
-
version: '2.0'
|
58
55
|
- - ">="
|
59
56
|
- !ruby/object:Gem::Version
|
60
57
|
version: 0.5.0
|
58
|
+
- - "<"
|
59
|
+
- !ruby/object:Gem::Version
|
60
|
+
version: '2.0'
|
61
61
|
- !ruby/object:Gem::Dependency
|
62
62
|
name: echoe
|
63
63
|
requirement: !ruby/object:Gem::Requirement
|
@@ -115,7 +115,7 @@ dependencies:
|
|
115
115
|
- !ruby/object:Gem::Version
|
116
116
|
version: '0'
|
117
117
|
- !ruby/object:Gem::Dependency
|
118
|
-
name:
|
118
|
+
name: webmock
|
119
119
|
requirement: !ruby/object:Gem::Requirement
|
120
120
|
requirements:
|
121
121
|
- - ">="
|
@@ -242,7 +242,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
242
242
|
version: '1.2'
|
243
243
|
requirements: []
|
244
244
|
rubyforge_project: bitly
|
245
|
-
rubygems_version: 2.6.
|
245
|
+
rubygems_version: 2.6.8
|
246
246
|
signing_key:
|
247
247
|
specification_version: 4
|
248
248
|
summary: Use the bit.ly API to shorten or expand URLs
|