bitly 1.0.2 → 1.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.
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