noun-project-api 1.0.0 → 2.0.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
- SHA1:
3
- metadata.gz: 31efd2c37c5ac37ddb6ac38054485ab56a13fb65
4
- data.tar.gz: e2de0f1c8e3e52d09ad8a57d4854fa1f66eeb121
2
+ SHA256:
3
+ metadata.gz: 94eaa51b84658f3763af7b3fe27e9f3f2f3b2666be78a2e580f0b2b569fcc10c
4
+ data.tar.gz: f5cc891b28b004f1680f4176725775a02d616d720423357d36d3c5105a49e0ce
5
5
  SHA512:
6
- metadata.gz: 2aae5a8fa9d877dcdaa83cea76a7de58ec4a777671522e1600d89ea0808582471d51f8f360dc7ddbe4ab99baf9a52972156977a79434e63a961008483ff03593
7
- data.tar.gz: a3f9934c896120832073dfbe595aab89fd6edc7de5c5eb5a5222ec9fa192fdd8bb6a28400763a1a3117e8f862eaba446b7c3daebd35dc8257ca9a37b5db5c134
6
+ metadata.gz: fa6d50bafc00705171eec159e1290719299b5422ea956e1d8c8681365e6654fb444419e938de2ce00b80f50dc9142bc0fe4e0d146557bd89aa4ce728719886f2
7
+ data.tar.gz: a3830940fe3886f39575ee050503ee8884062f23bc7c6ed34b43aa565d67d437fe320f3c4f3c1cb4bf4902b4b4a18a1ab3df52e87261d83271658044821bcab6
@@ -1,5 +1,6 @@
1
1
  require "oauth"
2
2
  require "json"
3
+ require "noun-project-api/errors"
3
4
  require "noun-project-api/connection"
4
5
  require "noun-project-api/icon_retriever"
5
6
  require "noun-project-api/reporter"
@@ -5,7 +5,7 @@ module NounProjectApi
5
5
  ITEM_NAME = nil
6
6
 
7
7
  def initialize(origin)
8
- fail(NotImplementedError, "Must use a subclass") if self.class::ITEM_NAME.nil?
8
+ raise NotImplementedError.new("Must use a subclass") if self.class::ITEM_NAME.nil?
9
9
 
10
10
  origin = JSON.parse(origin) if origin.is_a? String
11
11
  origin = origin.delete(
@@ -6,7 +6,7 @@ module NounProjectApi
6
6
  def initialize(token, secret)
7
7
  @token = token
8
8
  @secret = secret
9
- fail(ArgumentError, "Missing token or secret") unless @token && @secret
9
+ raise ArgumentError.new("Missing token or secret") unless @token && @secret
10
10
 
11
11
  @access_token = OAuth::AccessToken.new(OAuth::Consumer.new(token, secret))
12
12
  end
@@ -0,0 +1,12 @@
1
+ module NounProjectApi
2
+ class ServiceError < StandardError
3
+ attr_reader :status, :body
4
+
5
+ def initialize(status, body)
6
+ @status = status
7
+ @body = body
8
+
9
+ super("Noun Project API Error")
10
+ end
11
+ end
12
+ end
@@ -11,7 +11,7 @@ module NounProjectApi
11
11
  # * offset - offset the results
12
12
  # * page - page number
13
13
  def find(term, limit = nil, offset = nil, page = nil)
14
- fail(ArgumentError, "Missing search term") unless term
14
+ raise ArgumentError.new("Missing search term") unless term
15
15
 
16
16
  search = OAuth::Helper.escape(term)
17
17
  search += "?limit_to_public_domain=#{NounProjectApi.configuration.public_domain ? 1 : 0}"
@@ -24,7 +24,7 @@ module NounProjectApi
24
24
  args.each { |k, v| search += "&#{k}=#{v}" } if args.size > 0
25
25
 
26
26
  result = access_token.get("#{API_BASE}#{API_PATH}#{search}")
27
- fail(ArgumentError, "Bad request") unless %w(200 404).include? result.code
27
+ raise ArgumentError.new("Bad request") unless %w(200 404).include? result.code
28
28
 
29
29
  if result.code == "200"
30
30
  JSON.parse(result.body)["icons"].map { |icon| Icon.new(icon) }
@@ -51,7 +51,7 @@ module NounProjectApi
51
51
  end
52
52
 
53
53
  result = access_token.get("#{API_BASE}#{API_PATH}recent_uploads#{search}")
54
- fail(ArgumentError, "Bad request") unless result.code == "200"
54
+ raise ArgumentError.new("Bad request") unless result.code == "200"
55
55
 
56
56
  JSON.parse(result.body)["recent_uploads"].map { |icon| Icon.new(icon) }
57
57
  end
@@ -7,7 +7,7 @@ module NounProjectApi
7
7
 
8
8
  def report_used(ids)
9
9
  ids = [ids] if ids.is_a?(String) || ids.is_a?(Fixnum)
10
- fail(ArgumentError, "Missing ids") if ids.nil? || ids.empty?
10
+ raise ArgumentError.new("Missing ids") if ids.nil? || ids.empty?
11
11
 
12
12
  result = access_token.post(
13
13
  "#{API_BASE}#{API_PATH}",
@@ -5,10 +5,10 @@ module NounProjectApi
5
5
 
6
6
  # Find an item based on it's id.
7
7
  def find(id)
8
- fail(ArgumentError, "Missing id/slug") unless id
8
+ raise ArgumentError.new("Missing id/slug") unless id
9
9
 
10
10
  result = access_token.get("#{API_BASE}#{self.class::API_PATH}#{id}")
11
- fail(ArgumentError, "Bad request") unless result.code == "200"
11
+ raise ServiceError.new(result.code, result.body) unless result.code == "200"
12
12
 
13
13
  self.class::ITEM_CLASS.new(result.body)
14
14
  end
@@ -45,7 +45,7 @@ RSpec.describe NounProjectApi::CollectionRetriever do
45
45
  @missing_response
46
46
  )
47
47
 
48
- expect { @collection.find(id) }.to raise_error(ArgumentError)
48
+ expect { @collection.find(id) }.to raise_error(NounProjectApi::ServiceError)
49
49
  end
50
50
  end
51
51
 
@@ -79,7 +79,7 @@ RSpec.describe NounProjectApi::CollectionRetriever do
79
79
  @missing_response
80
80
  )
81
81
 
82
- expect { @collection.find_by_slug(slug) }.to raise_error(ArgumentError)
82
+ expect { @collection.find_by_slug(slug) }.to raise_error(NounProjectApi::ServiceError)
83
83
  end
84
84
  end
85
85
  end
@@ -45,7 +45,7 @@ RSpec.describe NounProjectApi::IconRetriever do
45
45
  @missing_response
46
46
  )
47
47
 
48
- expect { @icon.find(id) }.to raise_error(ArgumentError)
48
+ expect { @icon.find(id) }.to raise_error(NounProjectApi::ServiceError)
49
49
  end
50
50
  end
51
51
 
@@ -79,7 +79,7 @@ RSpec.describe NounProjectApi::IconRetriever do
79
79
  @missing_response
80
80
  )
81
81
 
82
- expect { @icon.find_by_slug(slug) }.to raise_error(ArgumentError)
82
+ expect { @icon.find_by_slug(slug) }.to raise_error(NounProjectApi::ServiceError)
83
83
  end
84
84
  end
85
85
  end
@@ -1,11 +1,8 @@
1
- require "codeclimate-test-reporter"
2
- CodeClimate::TestReporter.start
3
-
4
1
  require "bundler/setup"
5
2
  require "noun-project-api"
6
3
  require "pry"
7
4
  require "faker"
8
- require 'json'
5
+ require "json"
9
6
 
10
7
  require_relative "support/fakes"
11
8
 
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: noun-project-api
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.0
4
+ version: 2.0.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Nadav Shatz
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2016-06-16 00:00:00.000000000 Z
11
+ date: 2018-09-06 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: oauth
@@ -16,76 +16,98 @@ dependencies:
16
16
  requirements:
17
17
  - - "~>"
18
18
  - !ruby/object:Gem::Version
19
- version: '0'
19
+ version: '0.5'
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: '0'
26
+ version: '0.5'
27
27
  - !ruby/object:Gem::Dependency
28
28
  name: rake
29
29
  requirement: !ruby/object:Gem::Requirement
30
30
  requirements:
31
31
  - - "~>"
32
32
  - !ruby/object:Gem::Version
33
- version: '0'
33
+ version: '12.3'
34
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: '0'
40
+ version: '12.3'
41
41
  - !ruby/object:Gem::Dependency
42
42
  name: rspec
43
43
  requirement: !ruby/object:Gem::Requirement
44
44
  requirements:
45
45
  - - "~>"
46
46
  - !ruby/object:Gem::Version
47
- version: '3.1'
48
- - - ">="
49
- - !ruby/object:Gem::Version
50
- version: 3.1.0
47
+ version: '3.8'
51
48
  type: :development
52
49
  prerelease: false
53
50
  version_requirements: !ruby/object:Gem::Requirement
54
51
  requirements:
55
52
  - - "~>"
56
53
  - !ruby/object:Gem::Version
57
- version: '3.1'
58
- - - ">="
59
- - !ruby/object:Gem::Version
60
- version: 3.1.0
54
+ version: '3.8'
61
55
  - !ruby/object:Gem::Dependency
62
56
  name: faker
63
57
  requirement: !ruby/object:Gem::Requirement
64
58
  requirements:
65
59
  - - "~>"
66
60
  - !ruby/object:Gem::Version
67
- version: '0'
61
+ version: '1.9'
68
62
  type: :development
69
63
  prerelease: false
70
64
  version_requirements: !ruby/object:Gem::Requirement
71
65
  requirements:
72
66
  - - "~>"
73
67
  - !ruby/object:Gem::Version
74
- version: '0'
68
+ version: '1.9'
75
69
  - !ruby/object:Gem::Dependency
76
70
  name: semver
77
71
  requirement: !ruby/object:Gem::Requirement
78
72
  requirements:
79
73
  - - "~>"
80
74
  - !ruby/object:Gem::Version
81
- version: '0'
75
+ version: '1.0'
76
+ type: :development
77
+ prerelease: false
78
+ version_requirements: !ruby/object:Gem::Requirement
79
+ requirements:
80
+ - - "~>"
81
+ - !ruby/object:Gem::Version
82
+ version: '1.0'
83
+ - !ruby/object:Gem::Dependency
84
+ name: rspec_junit_formatter
85
+ requirement: !ruby/object:Gem::Requirement
86
+ requirements:
87
+ - - "~>"
88
+ - !ruby/object:Gem::Version
89
+ version: '0.4'
90
+ type: :development
91
+ prerelease: false
92
+ version_requirements: !ruby/object:Gem::Requirement
93
+ requirements:
94
+ - - "~>"
95
+ - !ruby/object:Gem::Version
96
+ version: '0.4'
97
+ - !ruby/object:Gem::Dependency
98
+ name: pry
99
+ requirement: !ruby/object:Gem::Requirement
100
+ requirements:
101
+ - - "~>"
102
+ - !ruby/object:Gem::Version
103
+ version: '0.11'
82
104
  type: :development
83
105
  prerelease: false
84
106
  version_requirements: !ruby/object:Gem::Requirement
85
107
  requirements:
86
108
  - - "~>"
87
109
  - !ruby/object:Gem::Version
88
- version: '0'
110
+ version: '0.11'
89
111
  description: A Gem to expose a wrapping API for The Noun Project API's
90
112
  email: nadav@tailorbrands.com
91
113
  executables: []
@@ -98,6 +120,7 @@ files:
98
120
  - lib/noun-project-api/collection.rb
99
121
  - lib/noun-project-api/collection_retriever.rb
100
122
  - lib/noun-project-api/connection.rb
123
+ - lib/noun-project-api/errors.rb
101
124
  - lib/noun-project-api/icon.rb
102
125
  - lib/noun-project-api/icon_retriever.rb
103
126
  - lib/noun-project-api/icons_retriever.rb
@@ -134,19 +157,19 @@ required_rubygems_version: !ruby/object:Gem::Requirement
134
157
  version: '0'
135
158
  requirements: []
136
159
  rubyforge_project:
137
- rubygems_version: 2.5.1
160
+ rubygems_version: 2.7.6
138
161
  signing_key:
139
162
  specification_version: 4
140
163
  summary: An API wrapper for The Noun Project API's
141
164
  test_files:
165
+ - spec/spec_helper.rb
166
+ - spec/support/fakes.rb
167
+ - spec/lib/nount_project_api_spec.rb
168
+ - spec/lib/noun-project-api/collection_spec.rb
169
+ - spec/lib/noun-project-api/icon_spec.rb
142
170
  - spec/lib/noun-project-api/base_item_spec.rb
143
171
  - spec/lib/noun-project-api/collection_retriever_spec.rb
144
- - spec/lib/noun-project-api/collection_spec.rb
172
+ - spec/lib/noun-project-api/retriever_spec.rb
145
173
  - spec/lib/noun-project-api/icon_retriever_spec.rb
146
- - spec/lib/noun-project-api/icon_spec.rb
147
- - spec/lib/noun-project-api/icons_retriever_spec.rb
148
174
  - spec/lib/noun-project-api/reporter_spec.rb
149
- - spec/lib/noun-project-api/retriever_spec.rb
150
- - spec/lib/nount_project_api_spec.rb
151
- - spec/spec_helper.rb
152
- - spec/support/fakes.rb
175
+ - spec/lib/noun-project-api/icons_retriever_spec.rb