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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 6177384aaa8fda97a1c94d1690c28266a28c2146
4
- data.tar.gz: 1e497fd4d5118627640bd6126e8a060f647da6f3
3
+ metadata.gz: 3592942cb5d03b9e56b4f751ee49f03fa59a7e96
4
+ data.tar.gz: 72f69d6ca04ecff3b8421571b9bea0d970940029
5
5
  SHA512:
6
- metadata.gz: 127a9366b1b84e73653cbb3704f119c5bc73a324bf52e4223dd46e0b3529fe2531e916a6c4a407d8d21846cd0620113afd88dc1ab1ad95a7bc14188bbafeff78
7
- data.tar.gz: f217f9b896824571c7f1a2676084c7bb93eaf135597128b69ff554231673dcd7b69230643ac2edb574d7d9e1aea294d2eb421c704feb5974a5dda8b85dc30cac
6
+ metadata.gz: 3cff305dfab3f5542b7f96ca2db26befedf5bce50d03e63f0243a2d96b42d11262dfe95f9e06fde19dcf2ee57c7df19ba07e38a5bebea4c562295d784f88bd65
7
+ data.tar.gz: 1e077835817c1d91860cbf62fec80130a0355d1f056a05ebff70bd4aecfc03a9f711b3a6c6063cf6534bac2064d428d958dc37199b445e3c119ad6daab52fd4e
data/Rakefile CHANGED
@@ -18,7 +18,7 @@ Echoe.new('bitly', Bitly::VERSION) do |p|
18
18
  ['rake'],
19
19
  ['shoulda'],
20
20
  ['flexmock'],
21
- ['fakeweb'],
21
+ ['webmock'],
22
22
  ['activesupport', '~> 3.2'],
23
23
  ['minitest', '~> 5.8.3']
24
24
  ]
@@ -1,14 +1,14 @@
1
1
  # -*- encoding: utf-8 -*-
2
- # stub: bitly 1.0.2 ruby lib
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.2"
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 = "2016-11-03"
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.6".freeze
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<fakeweb>.freeze, [">= 0"])
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<fakeweb>.freeze, [">= 0"])
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<fakeweb>.freeze, [">= 0"])
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
@@ -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[:info] if obj[:info]
14
- @stats = obj[:stats] if obj[:stats]
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
- unless @long_url.nil?
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 !(@short_url || @hash)
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
@@ -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'}
@@ -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 'http://api.bitly.com/v3/'
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?(Fixnum) ? args.pop : nil
17
+ self.timeout = args.last.is_a?(0.class) ? args.pop : nil
19
18
  if args.count == 1
20
- # Set generic OAuth2 access token and change base URI (use SSL)
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 = {
@@ -1,3 +1,3 @@
1
1
  module Bitly
2
- VERSION = '1.0.2'
2
+ VERSION = '1.1.0'
3
3
  end
@@ -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
 
@@ -29,7 +29,7 @@ class TestUtils < Minitest::Test
29
29
 
30
30
  should "not turn nonspecified variables into instance variables" do
31
31
  instance_variablise({'hello' => 'goodbye'}, [])
32
- assert_nil @hello
32
+ assert !(defined? @hello)
33
33
  end
34
34
  end
35
35
 
@@ -2,11 +2,12 @@ require 'minitest/autorun'
2
2
  require 'rubygems'
3
3
  require 'shoulda'
4
4
  require 'flexmock/minitest'
5
- require 'fakeweb'
5
+ require 'webmock/minitest'
6
6
 
7
7
  require File.join(File.dirname(__FILE__), '..', 'lib', 'bitly')
8
8
 
9
- FakeWeb.allow_net_connect = false
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
- FakeWeb.register_uri(:get, url, options)
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
- FakeWeb.clean_registry
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.2
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: 2016-11-03 00:00:00.000000000 Z
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: fakeweb
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.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