rebrandly 0.1.4 → 0.1.5

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,6 +1,9 @@
1
1
  require 'httparty'
2
2
 
3
3
  module Rebrandly
4
+ class RebrandlyError < StandardError; end
5
+ class RateLimitExceeded < RebrandlyError; end
6
+
4
7
  class Api
5
8
  API_VERSION = 'v1'
6
9
  BASE_URL = "https://api.rebrandly.com/#{API_VERSION}"
@@ -8,7 +11,7 @@ module Rebrandly
8
11
  # GET /v1/links
9
12
  def links(options={})
10
13
  all_links = rebrandly_request(:get, 'links', options)
11
- all_links.map { Link.new(all_links.first) }
14
+ all_links.map { |link| Link.new(link) }
12
15
  end
13
16
 
14
17
  # GET /v1/links/:id
@@ -21,11 +24,6 @@ module Rebrandly
21
24
  rebrandly_request(:get, 'links/count')['count']
22
25
  end
23
26
 
24
- # GET /v1/links/new
25
- def new_link(options={})
26
- Link.new(rebrandly_request(:get, 'links/new', options))
27
- end
28
-
29
27
  # POST /v1/links
30
28
  def shorten(destination, options={})
31
29
  options[:destination] = destination
@@ -82,7 +80,12 @@ module Rebrandly
82
80
  if res.code == 200
83
81
  JSON.parse(res.body)
84
82
  else
85
- raise res.parsed_response['message']
83
+ rebrandly_error = res.parsed_response
84
+ if rebrandly_error['domain'] == 'usageLimits' && rebrandly_error['reason'] == 'rateLimitExceeded'
85
+ raise RateLimitExceeded
86
+ else
87
+ raise RebrandlyError, rebrandly_error['message']
88
+ end
86
89
  end
87
90
  end
88
91
 
@@ -1,3 +1,3 @@
1
1
  module Rebrandly
2
- VERSION = "0.1.4"
2
+ VERSION = "0.1.5"
3
3
  end
metadata CHANGED
@@ -1,69 +1,78 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: rebrandly
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.1.4
4
+ version: 0.1.5
5
+ prerelease:
5
6
  platform: ruby
6
7
  authors:
7
8
  - Andrew Davis
8
9
  autorequire:
9
10
  bindir: exe
10
11
  cert_chain: []
11
- date: 2017-04-12 00:00:00.000000000 Z
12
+ date: 2017-05-16 00:00:00.000000000 Z
12
13
  dependencies:
13
14
  - !ruby/object:Gem::Dependency
14
15
  name: bundler
15
16
  requirement: !ruby/object:Gem::Requirement
17
+ none: false
16
18
  requirements:
17
- - - "~>"
19
+ - - ~>
18
20
  - !ruby/object:Gem::Version
19
21
  version: '1.13'
20
22
  type: :development
21
23
  prerelease: false
22
24
  version_requirements: !ruby/object:Gem::Requirement
25
+ none: false
23
26
  requirements:
24
- - - "~>"
27
+ - - ~>
25
28
  - !ruby/object:Gem::Version
26
29
  version: '1.13'
27
30
  - !ruby/object:Gem::Dependency
28
31
  name: rake
29
32
  requirement: !ruby/object:Gem::Requirement
33
+ none: false
30
34
  requirements:
31
- - - "~>"
35
+ - - ~>
32
36
  - !ruby/object:Gem::Version
33
37
  version: '10.0'
34
38
  type: :development
35
39
  prerelease: false
36
40
  version_requirements: !ruby/object:Gem::Requirement
41
+ none: false
37
42
  requirements:
38
- - - "~>"
43
+ - - ~>
39
44
  - !ruby/object:Gem::Version
40
45
  version: '10.0'
41
46
  - !ruby/object:Gem::Dependency
42
47
  name: rspec
43
48
  requirement: !ruby/object:Gem::Requirement
49
+ none: false
44
50
  requirements:
45
- - - "~>"
51
+ - - ~>
46
52
  - !ruby/object:Gem::Version
47
53
  version: '3.0'
48
54
  type: :development
49
55
  prerelease: false
50
56
  version_requirements: !ruby/object:Gem::Requirement
57
+ none: false
51
58
  requirements:
52
- - - "~>"
59
+ - - ~>
53
60
  - !ruby/object:Gem::Version
54
61
  version: '3.0'
55
62
  - !ruby/object:Gem::Dependency
56
63
  name: httparty
57
64
  requirement: !ruby/object:Gem::Requirement
65
+ none: false
58
66
  requirements:
59
- - - "~>"
67
+ - - ~>
60
68
  - !ruby/object:Gem::Version
61
69
  version: '0.14'
62
70
  type: :runtime
63
71
  prerelease: false
64
72
  version_requirements: !ruby/object:Gem::Requirement
73
+ none: false
65
74
  requirements:
66
- - - "~>"
75
+ - - ~>
67
76
  - !ruby/object:Gem::Version
68
77
  version: '0.14'
69
78
  description: Easily use Rebrandly's HTTP API using this gem.
@@ -73,9 +82,9 @@ executables: []
73
82
  extensions: []
74
83
  extra_rdoc_files: []
75
84
  files:
76
- - ".gitignore"
77
- - ".rspec"
78
- - ".travis.yml"
85
+ - .gitignore
86
+ - .rspec
87
+ - .travis.yml
79
88
  - Gemfile
80
89
  - LICENSE.txt
81
90
  - README.md
@@ -95,25 +104,26 @@ files:
95
104
  homepage: https://github.com/ardavis/rebrandly
96
105
  licenses:
97
106
  - MIT
98
- metadata: {}
99
107
  post_install_message:
100
108
  rdoc_options: []
101
109
  require_paths:
102
110
  - lib
103
111
  required_ruby_version: !ruby/object:Gem::Requirement
112
+ none: false
104
113
  requirements:
105
- - - ">="
114
+ - - ! '>='
106
115
  - !ruby/object:Gem::Version
107
116
  version: '0'
108
117
  required_rubygems_version: !ruby/object:Gem::Requirement
118
+ none: false
109
119
  requirements:
110
- - - ">="
120
+ - - ! '>='
111
121
  - !ruby/object:Gem::Version
112
122
  version: '0'
113
123
  requirements: []
114
124
  rubyforge_project:
115
- rubygems_version: 2.5.1
125
+ rubygems_version: 1.8.23.2
116
126
  signing_key:
117
- specification_version: 4
127
+ specification_version: 3
118
128
  summary: A Ruby Rebrandly Wrapper
119
129
  test_files: []
checksums.yaml DELETED
@@ -1,7 +0,0 @@
1
- ---
2
- SHA1:
3
- metadata.gz: af2cbd9c176bbefb4d367f73c1fd66bf322f7f7c
4
- data.tar.gz: 576e6d9e63f6dbadec4169206956287b7c2b4a30
5
- SHA512:
6
- metadata.gz: 56dbac465b5c2c69c269b6170422bf2d2bb104144f3322825f27d82471ca72acffef8be385d8b4e2fdc81cbfb5662d82c5900225e189602ecd02955a9ab6aef9
7
- data.tar.gz: 47eeb42b99d3d006b4d589e97eee49e453f2076afcf15ee00c960386ca07bee56b139500969d301ab21a869d857315f84f7400dd36bf61d28f33fd18fc7925ef