unsplash 1.5.6 → 2.0.0
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/.gitignore +3 -1
- data/.ruby-version +1 -1
- data/.travis.yml +5 -4
- data/README.md +6 -3
- data/config.env.example +5 -0
- data/lib/unsplash.rb +0 -2
- data/lib/unsplash/collection.rb +2 -16
- data/lib/unsplash/configuration.rb +0 -10
- data/lib/unsplash/connection.rb +30 -17
- data/lib/unsplash/errors.rb +4 -0
- data/lib/unsplash/photo.rb +5 -41
- data/lib/unsplash/version.rb +1 -1
- data/unsplash.gemspec +8 -7
- metadata +43 -16
- data/lib/unsplash/category.rb +0 -33
- data/lib/unsplash/curated_batch.rb +0 -43
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: d581307faeeb1e5d04567b3f78448e7cb78d461a0f1a5d5fc4df9b1fcb956fbb
|
4
|
+
data.tar.gz: e1f9433a95e64812f5f987e826a3e590a66c16f89932ccb4f2c1c4b31465fbc0
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: df3a61dfe8ce5343708ec01727ba70270e3795aa61465a93b56e4a75f0ef2c44800c8ac32f2c9ec255a4a7f5e825c597f1528f47f1a976c91d264f60f69cd5f5
|
7
|
+
data.tar.gz: 1da020da45c5f45baf522da57fa6cb2ed2a7d36ab32e436f0ab3ab1d2f26f5ddbd5ca2edbc8aca660f099ee319d3ee53b9143b993eddf71d3d117a5ddca18677
|
data/.gitignore
CHANGED
data/.ruby-version
CHANGED
@@ -1 +1 @@
|
|
1
|
-
ruby-2.
|
1
|
+
ruby-2.5.3
|
data/.travis.yml
CHANGED
data/README.md
CHANGED
@@ -34,14 +34,17 @@ Unsplash.configure do |config|
|
|
34
34
|
config.application_secret = "YOUR APPLICATION SECRET"
|
35
35
|
config.application_redirect_uri = "https://your-application.com/oauth/callback"
|
36
36
|
config.utm_source = "alices_terrific_client_app"
|
37
|
+
|
38
|
+
# optional:
|
39
|
+
config.logger = MyCustomLogger.new
|
37
40
|
end
|
38
41
|
```
|
39
42
|
|
40
43
|
#### API Guidelines
|
41
44
|
|
42
|
-
All API applications must abide by the [API Guidelines](https://
|
45
|
+
All API applications must abide by the [API Guidelines](https://help.unsplash.com/api-guidelines/unsplash-api-guidelines).
|
43
46
|
|
44
|
-
As part of [the API guidelines](https://
|
47
|
+
As part of [the API guidelines](https://help.unsplash.com/api-guidelines/unsplash-api-guidelines), all API uses are required to use utm links when providing credit to photographers and Unsplash. Set the `config.utm_source` to your app's name to automatically append the utm source.
|
45
48
|
|
46
49
|
### Public-scope actions
|
47
50
|
|
@@ -83,7 +86,7 @@ permission scopes you requested and the user authorized.
|
|
83
86
|
|
84
87
|
### Hotlinking
|
85
88
|
|
86
|
-
Hotlinking the [Unsplash image files is required](https://
|
89
|
+
Hotlinking the [Unsplash image files is required](https://help.unsplash.com/api-guidelines/more-on-each-guideline/guideline-hotlinking-images)
|
87
90
|
|
88
91
|
Unlike most APIs, Unsplash requires for the image URLs returned by the API to be directly used or embedded in your applications (generally referred to as hotlinking). By using the CDN and embedding the photo URLs in your application, Unsplash can better track photo views and pass those stats on to the photographer, providing them with context for how popular their photo is and how it's being used.
|
89
92
|
|
data/config.env.example
ADDED
data/lib/unsplash.rb
CHANGED
@@ -9,8 +9,6 @@ require "unsplash/client"
|
|
9
9
|
require "unsplash/connection"
|
10
10
|
require "unsplash/user"
|
11
11
|
require "unsplash/photo"
|
12
|
-
require "unsplash/category"
|
13
|
-
require "unsplash/curated_batch"
|
14
12
|
require "unsplash/collection"
|
15
13
|
require "unsplash/stats"
|
16
14
|
require "unsplash/search"
|
data/lib/unsplash/collection.rb
CHANGED
@@ -8,9 +8,8 @@ module Unsplash # :nodoc:
|
|
8
8
|
# Get a specific collection.
|
9
9
|
# @param id [Integer] The ID of the collection.
|
10
10
|
# @return [Unsplash::Collection] The requested collection.
|
11
|
-
def find(id
|
12
|
-
|
13
|
-
Unsplash::Collection.new JSON.parse(connection.get(url).body)
|
11
|
+
def find(id)
|
12
|
+
Unsplash::Collection.new JSON.parse(connection.get("/collections/#{id}").body)
|
14
13
|
end
|
15
14
|
|
16
15
|
# Get a list of all collections.
|
@@ -40,19 +39,6 @@ module Unsplash # :nodoc:
|
|
40
39
|
list.map { |data| Unsplash::Collection.new(data) }
|
41
40
|
end
|
42
41
|
|
43
|
-
# Get a list of all curated collections.
|
44
|
-
# @param page [Integer] Which page of search results to return.
|
45
|
-
# @param per_page [Integer] The number of search results per page. (default: 10, maximum: 30)
|
46
|
-
# @return [Array] A single page of the +Unsplash::Collection+ list.
|
47
|
-
def curated(page = 1, per_page = 10)
|
48
|
-
params = {
|
49
|
-
page: page,
|
50
|
-
per_page: per_page
|
51
|
-
}
|
52
|
-
list = JSON.parse(connection.get("/collections/curated", params).body)
|
53
|
-
list.map { |data| Unsplash::Collection.new(data) }
|
54
|
-
end
|
55
|
-
|
56
42
|
# Create a new collection on behalf of current user.
|
57
43
|
# @param title [String] The title of the collection.
|
58
44
|
# @param description [String] The collection's description. (optional)
|
@@ -15,15 +15,5 @@ module Unsplash # :nodoc:
|
|
15
15
|
def test?
|
16
16
|
!!@test
|
17
17
|
end
|
18
|
-
|
19
|
-
def application_id=(key)
|
20
|
-
logger.warn "Configuring application_id is deprecated. Use application_access_key."
|
21
|
-
self.application_access_key = key
|
22
|
-
end
|
23
|
-
|
24
|
-
def application_id
|
25
|
-
application_access_key
|
26
|
-
end
|
27
|
-
|
28
18
|
end
|
29
19
|
end
|
data/lib/unsplash/connection.rb
CHANGED
@@ -62,9 +62,8 @@ module Unsplash #:nodoc:
|
|
62
62
|
# @param token_extract [Hash] OAuth token hash from #extract_token.
|
63
63
|
# @return [OAuth2::AccessToken, nil] New access token object.
|
64
64
|
def create_and_assign_token(token_extract)
|
65
|
-
|
66
|
-
|
67
|
-
end
|
65
|
+
return if !token_extract
|
66
|
+
@oauth_token = OAuth2::AccessToken.from_hash(@oauth, token_extract)
|
68
67
|
end
|
69
68
|
|
70
69
|
# Perform a GET request.
|
@@ -112,13 +111,17 @@ module Unsplash #:nodoc:
|
|
112
111
|
# Anything else? User agent?
|
113
112
|
}
|
114
113
|
|
115
|
-
response =
|
116
|
-
|
114
|
+
response = begin
|
115
|
+
if @oauth_token
|
116
|
+
refresh_token!
|
117
117
|
|
118
|
-
|
119
|
-
|
120
|
-
|
121
|
-
|
118
|
+
param_key = verb == :post ? :body : :params
|
119
|
+
@oauth_token.public_send(verb, @api_base_uri + path, param_key => params, headers: headers)
|
120
|
+
else
|
121
|
+
self.class.public_send verb, path, query: params, headers: public_auth_header
|
122
|
+
end
|
123
|
+
rescue OAuth2::Error => e
|
124
|
+
OpenStruct.new(headers: {}, status: 403, body: e.error_message(e.response.body))
|
122
125
|
end
|
123
126
|
|
124
127
|
if response.headers["Warning"]
|
@@ -127,14 +130,17 @@ module Unsplash #:nodoc:
|
|
127
130
|
|
128
131
|
status_code = response.respond_to?(:status) ? response.status : response.code
|
129
132
|
|
130
|
-
|
131
|
-
|
132
|
-
|
133
|
-
|
134
|
-
|
135
|
-
|
136
|
-
|
137
|
-
|
133
|
+
case status_code
|
134
|
+
when 200..299
|
135
|
+
response
|
136
|
+
when 401
|
137
|
+
raise Unsplash::UnauthorizedError.new(error_message(response))
|
138
|
+
when 403
|
139
|
+
raise Unsplash::ForbiddenError.new(error_message(response))
|
140
|
+
when 404
|
141
|
+
raise Unsplash::NotFoundError.new(error_message(response))
|
142
|
+
else
|
143
|
+
raise Unsplash::Error.new(error_message(response))
|
138
144
|
end
|
139
145
|
|
140
146
|
response
|
@@ -157,5 +163,12 @@ module Unsplash #:nodoc:
|
|
157
163
|
|
158
164
|
@oauth_token = @oauth_token.refresh_token
|
159
165
|
end
|
166
|
+
|
167
|
+
def error_message(response)
|
168
|
+
body = JSON.parse(response.body)
|
169
|
+
body["error"] || body["errors"].join(" ")
|
170
|
+
rescue JSON::ParserError
|
171
|
+
raise Unsplash::Error.new(response.body)
|
172
|
+
end
|
160
173
|
end
|
161
174
|
end
|
data/lib/unsplash/errors.rb
CHANGED
data/lib/unsplash/photo.rb
CHANGED
@@ -17,9 +17,9 @@ module Unsplash # :nodoc:
|
|
17
17
|
true
|
18
18
|
end
|
19
19
|
|
20
|
-
#
|
20
|
+
# Track the download of a photo.
|
21
21
|
# @return [String] URL of image file for download.
|
22
|
-
def
|
22
|
+
def track_download
|
23
23
|
connection.get(links.download_location)["url"]
|
24
24
|
end
|
25
25
|
|
@@ -27,17 +27,9 @@ module Unsplash # :nodoc:
|
|
27
27
|
|
28
28
|
# Get a photo. Can be cropped or resized using the optional parameters.
|
29
29
|
# @param id [String] The ID of the photo to retrieve.
|
30
|
-
# @param width [Integer] Width of customized version of the photo.
|
31
|
-
# @param height [Integer] Height of the customized version of the photo.
|
32
|
-
# @param crop_rect [String] A comma-separated list (x,y,width,height) of the rectangle to crop from the photo.
|
33
30
|
# @return [Unsplash::Photo] The Unsplash Photo.
|
34
|
-
def find(id
|
35
|
-
|
36
|
-
w: width,
|
37
|
-
h: height,
|
38
|
-
rect: crop_rect
|
39
|
-
}.select { |k,v| v }
|
40
|
-
photo = Unsplash::Photo.new JSON.parse(connection.get("/photos/#{id}", custom).body)
|
31
|
+
def find(id)
|
32
|
+
photo = Unsplash::Photo.new JSON.parse(connection.get("/photos/#{id}").body)
|
41
33
|
photo.user = Unsplash::User.new photo.user
|
42
34
|
photo
|
43
35
|
end
|
@@ -45,24 +37,18 @@ module Unsplash # :nodoc:
|
|
45
37
|
# Get a random photo or set of photos. The photo selection pool can be narrowed using
|
46
38
|
# a combination of optional parameters. Can also optionally specify a custom image size.
|
47
39
|
# @param count [Integer] Number of photos required. Default=1, Max=30
|
48
|
-
# @param categories [Array] Limit selection to given category ID's.
|
49
40
|
# @param featured [Boolean] Limit selection to featured photos.
|
50
41
|
# @param user [String] Limit selection to given User's ID.
|
51
42
|
# @param query [String] Limit selection to given search query.
|
52
|
-
# @param width [Integer] Width of customized version of the photo.
|
53
|
-
# @param height [Integer] Height of the customized version of the photo.
|
54
43
|
# @param orientation [String] Filter by orientation of the photo. Valid values are landscape, portrait, and squarish.
|
55
44
|
# @return [Unsplash::Photo] An Unsplash Photo if count parameter is omitted
|
56
45
|
# @return [Array] An array of Unsplash Photos if the count parameter is specified. An array is returned even if count is 1
|
57
|
-
def random(count: nil,
|
46
|
+
def random(count: nil, collections: nil, featured: nil, user: nil, query: nil, orientation: nil)
|
58
47
|
params = {
|
59
|
-
category: (categories && categories.join(",")),
|
60
48
|
collections: (collections && collections.join(",")),
|
61
49
|
featured: featured,
|
62
50
|
username: user,
|
63
51
|
query: query,
|
64
|
-
w: width,
|
65
|
-
h: height,
|
66
52
|
orientation: orientation
|
67
53
|
}.select { |k,v| v }
|
68
54
|
if count
|
@@ -109,28 +95,6 @@ module Unsplash # :nodoc:
|
|
109
95
|
parse_list connection.get("/photos/", params).body
|
110
96
|
end
|
111
97
|
|
112
|
-
# Get a single page from the list of the curated photos (front-page’s photos).
|
113
|
-
# @param page [Integer] Which page of search results to return.
|
114
|
-
# @param per_page [Integer] The number of search results per page. (default: 10, maximum: 30)
|
115
|
-
# @param order_by [String] How to sort the photos. (Valid values: latest, oldest, popular; default: latest)
|
116
|
-
# @return [Array] A single page of +Unsplash::Photo+ search results.
|
117
|
-
def curated(page = 1, per_page = 10, order_by = "latest")
|
118
|
-
params = {
|
119
|
-
page: page,
|
120
|
-
per_page: per_page,
|
121
|
-
order_by: order_by
|
122
|
-
}
|
123
|
-
parse_list connection.get("/photos/curated", params).body
|
124
|
-
end
|
125
|
-
|
126
|
-
# Upload a photo on behalf of the current user.
|
127
|
-
# @param filepath [String] The local path of the image file to upload.
|
128
|
-
# @return [Unsplash::Photo] The uploaded photo.
|
129
|
-
# <b>DEPRECATED</b>
|
130
|
-
def create(filepath)
|
131
|
-
raise Unsplash::DeprecationError.new "API photo-upload endpoint has been deprecated and removed."
|
132
|
-
end
|
133
|
-
|
134
98
|
private
|
135
99
|
|
136
100
|
def parse_list(json)
|
data/lib/unsplash/version.rb
CHANGED
data/unsplash.gemspec
CHANGED
@@ -18,16 +18,17 @@ Gem::Specification.new do |spec|
|
|
18
18
|
spec.executables = spec.files.grep(%r{^exe/}) { |f| File.basename(f) }
|
19
19
|
spec.require_paths = ["lib"]
|
20
20
|
|
21
|
-
spec.required_ruby_version = ">= 2.
|
21
|
+
spec.required_ruby_version = ">= 2.3.0"
|
22
22
|
|
23
|
-
spec.add_dependency "httparty", "~> 0.
|
23
|
+
spec.add_dependency "httparty", "~> 0.16.4"
|
24
24
|
spec.add_dependency "oauth2", "~> 1"
|
25
25
|
|
26
|
-
|
27
|
-
spec.add_development_dependency "
|
28
|
-
spec.add_development_dependency "rspec", "~> 3.5.0"
|
26
|
+
spec.add_development_dependency "rake", "~> 12.3.2"
|
27
|
+
spec.add_development_dependency "rspec", "~> 3.8.0"
|
29
28
|
spec.add_development_dependency "vcr", "~> 3.0.0"
|
30
|
-
spec.add_development_dependency "webmock", "~>
|
29
|
+
spec.add_development_dependency "webmock", "~> 3.5.1"
|
31
30
|
spec.add_development_dependency "pry"
|
32
|
-
spec.add_development_dependency "coveralls"
|
31
|
+
spec.add_development_dependency "coveralls"
|
32
|
+
spec.add_development_dependency "dotenv"
|
33
|
+
spec.add_development_dependency "rb-readline"
|
33
34
|
end
|
metadata
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: unsplash
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version:
|
4
|
+
version: 2.0.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Aaron Klaassen
|
@@ -16,14 +16,14 @@ dependencies:
|
|
16
16
|
requirements:
|
17
17
|
- - "~>"
|
18
18
|
- !ruby/object:Gem::Version
|
19
|
-
version: 0.
|
19
|
+
version: 0.16.4
|
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.16.4
|
27
27
|
- !ruby/object:Gem::Dependency
|
28
28
|
name: oauth2
|
29
29
|
requirement: !ruby/object:Gem::Requirement
|
@@ -44,28 +44,28 @@ dependencies:
|
|
44
44
|
requirements:
|
45
45
|
- - "~>"
|
46
46
|
- !ruby/object:Gem::Version
|
47
|
-
version:
|
47
|
+
version: 12.3.2
|
48
48
|
type: :development
|
49
49
|
prerelease: false
|
50
50
|
version_requirements: !ruby/object:Gem::Requirement
|
51
51
|
requirements:
|
52
52
|
- - "~>"
|
53
53
|
- !ruby/object:Gem::Version
|
54
|
-
version:
|
54
|
+
version: 12.3.2
|
55
55
|
- !ruby/object:Gem::Dependency
|
56
56
|
name: rspec
|
57
57
|
requirement: !ruby/object:Gem::Requirement
|
58
58
|
requirements:
|
59
59
|
- - "~>"
|
60
60
|
- !ruby/object:Gem::Version
|
61
|
-
version: 3.
|
61
|
+
version: 3.8.0
|
62
62
|
type: :development
|
63
63
|
prerelease: false
|
64
64
|
version_requirements: !ruby/object:Gem::Requirement
|
65
65
|
requirements:
|
66
66
|
- - "~>"
|
67
67
|
- !ruby/object:Gem::Version
|
68
|
-
version: 3.
|
68
|
+
version: 3.8.0
|
69
69
|
- !ruby/object:Gem::Dependency
|
70
70
|
name: vcr
|
71
71
|
requirement: !ruby/object:Gem::Requirement
|
@@ -86,14 +86,14 @@ dependencies:
|
|
86
86
|
requirements:
|
87
87
|
- - "~>"
|
88
88
|
- !ruby/object:Gem::Version
|
89
|
-
version:
|
89
|
+
version: 3.5.1
|
90
90
|
type: :development
|
91
91
|
prerelease: false
|
92
92
|
version_requirements: !ruby/object:Gem::Requirement
|
93
93
|
requirements:
|
94
94
|
- - "~>"
|
95
95
|
- !ruby/object:Gem::Version
|
96
|
-
version:
|
96
|
+
version: 3.5.1
|
97
97
|
- !ruby/object:Gem::Dependency
|
98
98
|
name: pry
|
99
99
|
requirement: !ruby/object:Gem::Requirement
|
@@ -112,16 +112,44 @@ dependencies:
|
|
112
112
|
name: coveralls
|
113
113
|
requirement: !ruby/object:Gem::Requirement
|
114
114
|
requirements:
|
115
|
-
- - "
|
115
|
+
- - ">="
|
116
116
|
- !ruby/object:Gem::Version
|
117
|
-
version: 0
|
117
|
+
version: '0'
|
118
118
|
type: :development
|
119
119
|
prerelease: false
|
120
120
|
version_requirements: !ruby/object:Gem::Requirement
|
121
121
|
requirements:
|
122
|
-
- - "
|
122
|
+
- - ">="
|
123
|
+
- !ruby/object:Gem::Version
|
124
|
+
version: '0'
|
125
|
+
- !ruby/object:Gem::Dependency
|
126
|
+
name: dotenv
|
127
|
+
requirement: !ruby/object:Gem::Requirement
|
128
|
+
requirements:
|
129
|
+
- - ">="
|
130
|
+
- !ruby/object:Gem::Version
|
131
|
+
version: '0'
|
132
|
+
type: :development
|
133
|
+
prerelease: false
|
134
|
+
version_requirements: !ruby/object:Gem::Requirement
|
135
|
+
requirements:
|
136
|
+
- - ">="
|
137
|
+
- !ruby/object:Gem::Version
|
138
|
+
version: '0'
|
139
|
+
- !ruby/object:Gem::Dependency
|
140
|
+
name: rb-readline
|
141
|
+
requirement: !ruby/object:Gem::Requirement
|
142
|
+
requirements:
|
143
|
+
- - ">="
|
123
144
|
- !ruby/object:Gem::Version
|
124
|
-
version: 0
|
145
|
+
version: '0'
|
146
|
+
type: :development
|
147
|
+
prerelease: false
|
148
|
+
version_requirements: !ruby/object:Gem::Requirement
|
149
|
+
requirements:
|
150
|
+
- - ">="
|
151
|
+
- !ruby/object:Gem::Version
|
152
|
+
version: '0'
|
125
153
|
description:
|
126
154
|
email:
|
127
155
|
- aaron@unsplash.com
|
@@ -144,13 +172,12 @@ files:
|
|
144
172
|
- Rakefile
|
145
173
|
- bin/console
|
146
174
|
- bin/setup
|
175
|
+
- config.env.example
|
147
176
|
- lib/unsplash.rb
|
148
|
-
- lib/unsplash/category.rb
|
149
177
|
- lib/unsplash/client.rb
|
150
178
|
- lib/unsplash/collection.rb
|
151
179
|
- lib/unsplash/configuration.rb
|
152
180
|
- lib/unsplash/connection.rb
|
153
|
-
- lib/unsplash/curated_batch.rb
|
154
181
|
- lib/unsplash/errors.rb
|
155
182
|
- lib/unsplash/photo.rb
|
156
183
|
- lib/unsplash/search.rb
|
@@ -170,7 +197,7 @@ required_ruby_version: !ruby/object:Gem::Requirement
|
|
170
197
|
requirements:
|
171
198
|
- - ">="
|
172
199
|
- !ruby/object:Gem::Version
|
173
|
-
version: 2.
|
200
|
+
version: 2.3.0
|
174
201
|
required_rubygems_version: !ruby/object:Gem::Requirement
|
175
202
|
requirements:
|
176
203
|
- - ">="
|
data/lib/unsplash/category.rb
DELETED
@@ -1,33 +0,0 @@
|
|
1
|
-
module Unsplash # :nodoc:
|
2
|
-
|
3
|
-
# Unsplash Category operations.
|
4
|
-
class Category < Client
|
5
|
-
|
6
|
-
class << self
|
7
|
-
|
8
|
-
# Get a list of all of the Unsplash photo categories.
|
9
|
-
# @return [Array] The list categories.
|
10
|
-
# <b>DEPRECATED</b>
|
11
|
-
def all
|
12
|
-
raise Unsplash::DeprecationError.new "Category has been deprecated and removed."
|
13
|
-
end
|
14
|
-
|
15
|
-
# Get an Unsplash Category.
|
16
|
-
# @param id [Integer] The ID of the category to retrieve.
|
17
|
-
# @return [Unsplash::Category] The specified category.
|
18
|
-
# <b>DEPRECATED</b>
|
19
|
-
def find(id)
|
20
|
-
raise Unsplash::DeprecationError.new "Category has been deprecated and removed."
|
21
|
-
end
|
22
|
-
end
|
23
|
-
|
24
|
-
# Get a list of all photos in this category.
|
25
|
-
# @param page [Integer] Which page of search results to return.
|
26
|
-
# @param per_page [Integer] The number of search results per page.
|
27
|
-
# @return [Array] A single page of +Unsplash::Photo+s.
|
28
|
-
# <b>DEPRECATED</b>
|
29
|
-
def photos(page = 1, per_page = 10)
|
30
|
-
raise Unsplash::DeprecationError.new "Category has been deprecated and removed."
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
@@ -1,43 +0,0 @@
|
|
1
|
-
module Unsplash # :nodoc:
|
2
|
-
|
3
|
-
# Unsplash Curated Batch operations.
|
4
|
-
class CuratedBatch < Client
|
5
|
-
|
6
|
-
class << self
|
7
|
-
|
8
|
-
# Get a specific curated batch.
|
9
|
-
# @param id [Integer] The ID of the batch.
|
10
|
-
# @return [Unsplash::CuratedBatch] The requested batch.
|
11
|
-
def find(id)
|
12
|
-
batch = Unsplash::CuratedBatch.new JSON.parse(connection.get("/curated_batches/#{id}").body)
|
13
|
-
batch.curator = Unsplash::User.new batch.curator
|
14
|
-
batch
|
15
|
-
end
|
16
|
-
|
17
|
-
# Get a list of all curated batches.
|
18
|
-
# @param page [Integer] Which page of search results to return.
|
19
|
-
# @param per_page [Integer] The number of search results per page.
|
20
|
-
# @return [Array] A single page of the +Unsplash::CuratedBatch+ list.
|
21
|
-
def all(page = 1, per_page = 10)
|
22
|
-
params = {
|
23
|
-
page: page,
|
24
|
-
per_page: per_page
|
25
|
-
}
|
26
|
-
list = JSON.parse(connection.get("/curated_batches/", params).body)
|
27
|
-
list.map do |cb|
|
28
|
-
batch = Unsplash::CuratedBatch.new cb
|
29
|
-
batch.curator = Unsplash::User.new batch.curator
|
30
|
-
batch
|
31
|
-
end
|
32
|
-
end
|
33
|
-
end
|
34
|
-
|
35
|
-
# Get a list of the photos contained in this batch.
|
36
|
-
# @return [Array] The list of +Unsplash::Photo+s in the batch.
|
37
|
-
def photos
|
38
|
-
list = JSON.parse(connection.get("/curated_batches/#{id}/photos").body)
|
39
|
-
list.map { |photo| Unsplash::Photo.new photo }
|
40
|
-
end
|
41
|
-
|
42
|
-
end
|
43
|
-
end
|