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 +5 -5
- data/lib/noun-project-api.rb +1 -0
- data/lib/noun-project-api/base_item.rb +1 -1
- data/lib/noun-project-api/connection.rb +1 -1
- data/lib/noun-project-api/errors.rb +12 -0
- data/lib/noun-project-api/icons_retriever.rb +3 -3
- data/lib/noun-project-api/reporter.rb +1 -1
- data/lib/noun-project-api/retriever.rb +2 -2
- data/spec/lib/noun-project-api/collection_retriever_spec.rb +2 -2
- data/spec/lib/noun-project-api/icon_retriever_spec.rb +2 -2
- data/spec/spec_helper.rb +1 -4
- metadata +49 -26
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
|
-
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
2
|
+
SHA256:
|
3
|
+
metadata.gz: 94eaa51b84658f3763af7b3fe27e9f3f2f3b2666be78a2e580f0b2b569fcc10c
|
4
|
+
data.tar.gz: f5cc891b28b004f1680f4176725775a02d616d720423357d36d3c5105a49e0ce
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: fa6d50bafc00705171eec159e1290719299b5422ea956e1d8c8681365e6654fb444419e938de2ce00b80f50dc9142bc0fe4e0d146557bd89aa4ce728719886f2
|
7
|
+
data.tar.gz: a3830940fe3886f39575ee050503ee8884062f23bc7c6ed34b43aa565d67d437fe320f3c4f3c1cb4bf4902b4b4a18a1ab3df52e87261d83271658044821bcab6
|
data/lib/noun-project-api.rb
CHANGED
@@ -5,7 +5,7 @@ module NounProjectApi
|
|
5
5
|
ITEM_NAME = nil
|
6
6
|
|
7
7
|
def initialize(origin)
|
8
|
-
|
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
|
-
|
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
|
@@ -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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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
|
-
|
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(
|
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(
|
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(
|
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(
|
82
|
+
expect { @icon.find_by_slug(slug) }.to raise_error(NounProjectApi::ServiceError)
|
83
83
|
end
|
84
84
|
end
|
85
85
|
end
|
data/spec/spec_helper.rb
CHANGED
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:
|
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:
|
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: '
|
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: '
|
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.
|
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.
|
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: '
|
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: '
|
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.
|
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/
|
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/
|
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
|