noun-project-api 1.0.0 → 2.0.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
- 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