pexels 0.0.1 → 0.0.2
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 +4 -4
- data/README.md +12 -0
- data/lib/pexels/client/photos.rb +6 -6
- data/lib/pexels/client/videos.rb +6 -6
- data/lib/pexels/{search_result.rb → response.rb} +1 -1
- data/lib/pexels/version.rb +1 -1
- data/lib/pexels/video/file.rb +17 -0
- data/lib/pexels/video/picture.rb +11 -0
- data/lib/pexels/video.rb +7 -2
- data/lib/pexels.rb +3 -2
- data/test/photo_test.rb +2 -2
- data/test/video_test.rb +8 -2
- metadata +5 -4
- data/lib/pexels/curated_result.rb +0 -15
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: 1affa62d97e31e4dbc5e93aa0aebbfd4305362f24c8a4b0d3a3b8c2b9f672cf1
|
4
|
+
data.tar.gz: f9dc3eaf6a21abb49deaa5d722cf557f3da4fc9de50434297a3c9484343e7a08
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 8c31177b1a17cf653580e84ee859f535c573627eb0ec7ca5d3ab3a67e96137aa79a4ce45dd7b050c819fd54ebc68dfd18b24d875be3937f2c449168ccda6ab69
|
7
|
+
data.tar.gz: 5a6af1b335e3f723587cb716949e83417ec495730617946dc9eb3389f7cd8c3fee1e861ab5d2a29ffb448b86d857a190c4724e8f8e57a7291727391bc032bb70
|
data/README.md
CHANGED
@@ -15,6 +15,18 @@ Or add it to your `Gemfile` and run `bundle install`.
|
|
15
15
|
See the API docs [here](https://www.pexels.com/api/documentation/?language=js)
|
16
16
|
|
17
17
|
|
18
|
+
## Basic usage
|
19
|
+
|
20
|
+
```ruby
|
21
|
+
client = Pexels::Client.new('your-access-key') #=> If you don't specify one, the environment variable PEXELS_API_KEY is used by default
|
22
|
+
|
23
|
+
client.photos.search('Cloud')
|
24
|
+
client.photos.curated
|
25
|
+
|
26
|
+
client.videos.search('waves')
|
27
|
+
client.videos.popular
|
28
|
+
```
|
29
|
+
|
18
30
|
## Running the test suite
|
19
31
|
|
20
32
|
You'll need your own API key to run the test suite, you can get one on the [Pexels API Key management page](https://www.pexels.com/api/new/)
|
data/lib/pexels/client/photos.rb
CHANGED
@@ -5,12 +5,12 @@ class Pexels::Client::Photos
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def get(id)
|
8
|
-
|
9
|
-
Pexels::Photo.new(
|
8
|
+
response = @client.request("/v1/photos/#{id}")
|
9
|
+
Pexels::Photo.new(response)
|
10
10
|
end
|
11
11
|
|
12
12
|
def search(query, per_page: 15, page: 1, locale: 'en-US')
|
13
|
-
|
13
|
+
response = @client.request(
|
14
14
|
'/v1/search',
|
15
15
|
params: {
|
16
16
|
query: query,
|
@@ -20,11 +20,11 @@ class Pexels::Client::Photos
|
|
20
20
|
}
|
21
21
|
)
|
22
22
|
|
23
|
-
Pexels::
|
23
|
+
Pexels::Response.new(response)
|
24
24
|
end
|
25
25
|
|
26
26
|
def curated(per_page: 15, page: 1)
|
27
|
-
|
27
|
+
response = @client.request(
|
28
28
|
'/v1/curated',
|
29
29
|
params: {
|
30
30
|
per_page: per_page,
|
@@ -32,6 +32,6 @@ class Pexels::Client::Photos
|
|
32
32
|
}
|
33
33
|
)
|
34
34
|
|
35
|
-
Pexels::
|
35
|
+
Pexels::Response.new(response)
|
36
36
|
end
|
37
37
|
end
|
data/lib/pexels/client/videos.rb
CHANGED
@@ -5,12 +5,12 @@ class Pexels::Client::Videos
|
|
5
5
|
end
|
6
6
|
|
7
7
|
def get(id)
|
8
|
-
|
9
|
-
Pexels::Video.new(
|
8
|
+
response = @client.request("/videos/videos/#{id}")
|
9
|
+
Pexels::Video.new(response)
|
10
10
|
end
|
11
11
|
|
12
12
|
def search(query, per_page: 15, page: 1)
|
13
|
-
|
13
|
+
response = @client.request(
|
14
14
|
'/videos/search',
|
15
15
|
params: {
|
16
16
|
query: query,
|
@@ -19,11 +19,11 @@ class Pexels::Client::Videos
|
|
19
19
|
}
|
20
20
|
)
|
21
21
|
|
22
|
-
Pexels::
|
22
|
+
Pexels::Response.new(response)
|
23
23
|
end
|
24
24
|
|
25
25
|
def popular(per_page: 15, page: 1)
|
26
|
-
|
26
|
+
response = @client.request(
|
27
27
|
'/videos/popular',
|
28
28
|
params: {
|
29
29
|
per_page: per_page,
|
@@ -31,6 +31,6 @@ class Pexels::Client::Videos
|
|
31
31
|
}
|
32
32
|
)
|
33
33
|
|
34
|
-
Pexels::
|
34
|
+
Pexels::Response.new(response)
|
35
35
|
end
|
36
36
|
end
|
data/lib/pexels/version.rb
CHANGED
@@ -0,0 +1,17 @@
|
|
1
|
+
class Pexels::Video::File
|
2
|
+
attr_reader :id,
|
3
|
+
:quality,
|
4
|
+
:file_type,
|
5
|
+
:width,
|
6
|
+
:height,
|
7
|
+
:link
|
8
|
+
|
9
|
+
def initialize(attrs)
|
10
|
+
@id = attrs.fetch('id')
|
11
|
+
@quality = attrs.fetch('quality')
|
12
|
+
@file_type = attrs.fetch('file_type')
|
13
|
+
@width = attrs.fetch('width')
|
14
|
+
@height = attrs.fetch('height')
|
15
|
+
@link = attrs.fetch('link')
|
16
|
+
end
|
17
|
+
end
|
data/lib/pexels/video.rb
CHANGED
@@ -6,8 +6,8 @@ class Pexels::Video
|
|
6
6
|
:image,
|
7
7
|
:duration,
|
8
8
|
:user,
|
9
|
-
:
|
10
|
-
:
|
9
|
+
:files,
|
10
|
+
:pictures
|
11
11
|
|
12
12
|
|
13
13
|
def initialize(attrs)
|
@@ -23,6 +23,11 @@ class Pexels::Video
|
|
23
23
|
url: attrs.fetch('user').fetch('url')
|
24
24
|
)
|
25
25
|
|
26
|
+
@files = attrs.fetch('video_files', []).map { |vf| Pexels::Video::File.new(vf) }
|
27
|
+
|
28
|
+
@pictures = attrs.fetch('video_pictures', []).map { |vp| Pexels::Video::Picture.new(vp) }
|
29
|
+
|
30
|
+
|
26
31
|
rescue KeyError => exception
|
27
32
|
raise Pexels::MalformedAPIResponseError.new(exception)
|
28
33
|
end
|
data/lib/pexels.rb
CHANGED
@@ -13,6 +13,7 @@ require_relative 'pexels/version'
|
|
13
13
|
require_relative 'pexels/errors'
|
14
14
|
require_relative 'pexels/photo'
|
15
15
|
require_relative 'pexels/video'
|
16
|
+
require_relative 'pexels/video/file'
|
17
|
+
require_relative 'pexels/video/picture'
|
16
18
|
require_relative 'pexels/user'
|
17
|
-
require_relative 'pexels/
|
18
|
-
require_relative 'pexels/curated_result'
|
19
|
+
require_relative 'pexels/response'
|
data/test/photo_test.rb
CHANGED
@@ -11,7 +11,7 @@ class TestPhoto < Minitest::Test
|
|
11
11
|
def test_successful_searches
|
12
12
|
search_result = @client.photos.search('test')
|
13
13
|
|
14
|
-
assert search_result.is_a? Pexels::
|
14
|
+
assert search_result.is_a? Pexels::Response
|
15
15
|
assert search_result.next_page.is_a? String
|
16
16
|
assert search_result.total_results.is_a? Integer
|
17
17
|
assert_equal search_result.per_page, 15
|
@@ -30,7 +30,7 @@ class TestPhoto < Minitest::Test
|
|
30
30
|
def test_curated_photos
|
31
31
|
search_result = @client.photos.curated
|
32
32
|
|
33
|
-
assert search_result.is_a? Pexels::
|
33
|
+
assert search_result.is_a? Pexels::Response
|
34
34
|
assert search_result.next_page.is_a? String
|
35
35
|
assert_equal search_result.per_page, 15
|
36
36
|
assert_equal search_result.page, 1
|
data/test/video_test.rb
CHANGED
@@ -11,7 +11,7 @@ class TestVideo < Minitest::Test
|
|
11
11
|
def test_successful_searches
|
12
12
|
search_result = @client.videos.search('test')
|
13
13
|
|
14
|
-
assert search_result.is_a? Pexels::
|
14
|
+
assert search_result.is_a? Pexels::Response
|
15
15
|
assert search_result.total_results.is_a? Integer
|
16
16
|
assert_equal search_result.per_page, 15
|
17
17
|
assert_equal search_result.page, 1
|
@@ -29,7 +29,7 @@ class TestVideo < Minitest::Test
|
|
29
29
|
def test_popular_videos
|
30
30
|
search_result = @client.videos.popular
|
31
31
|
|
32
|
-
assert search_result.is_a? Pexels::
|
32
|
+
assert search_result.is_a? Pexels::Response
|
33
33
|
assert_equal search_result.per_page, 15
|
34
34
|
assert_equal search_result.page, 1
|
35
35
|
|
@@ -57,6 +57,12 @@ class TestVideo < Minitest::Test
|
|
57
57
|
assert_equal video.user.name, @video.user.name
|
58
58
|
assert_equal video.user.url, @video.user.url
|
59
59
|
assert_equal video.user.id, @video.user.id
|
60
|
+
|
61
|
+
assert video.files.is_a?(Array)
|
62
|
+
assert video.files.first.is_a?(Pexels::Video::File)
|
63
|
+
|
64
|
+
assert video.pictures.is_a?(Array)
|
65
|
+
assert video.pictures.first.is_a?(Pexels::Video::Picture)
|
60
66
|
end
|
61
67
|
|
62
68
|
def test_invalid_get_video
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: pexels
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.0.
|
4
|
+
version: 0.0.2
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Pexels dev team
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2020-05-
|
11
|
+
date: 2020-05-20 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: requests
|
@@ -41,13 +41,14 @@ files:
|
|
41
41
|
- lib/pexels/client.rb
|
42
42
|
- lib/pexels/client/photos.rb
|
43
43
|
- lib/pexels/client/videos.rb
|
44
|
-
- lib/pexels/curated_result.rb
|
45
44
|
- lib/pexels/errors.rb
|
46
45
|
- lib/pexels/photo.rb
|
47
|
-
- lib/pexels/
|
46
|
+
- lib/pexels/response.rb
|
48
47
|
- lib/pexels/user.rb
|
49
48
|
- lib/pexels/version.rb
|
50
49
|
- lib/pexels/video.rb
|
50
|
+
- lib/pexels/video/file.rb
|
51
|
+
- lib/pexels/video/picture.rb
|
51
52
|
- pexels.gemspec
|
52
53
|
- test/client_test.rb
|
53
54
|
- test/photo_test.rb
|
@@ -1,15 +0,0 @@
|
|
1
|
-
class Pexels::CuratedResult
|
2
|
-
attr_reader :photos,
|
3
|
-
:page,
|
4
|
-
:per_page,
|
5
|
-
:next_page
|
6
|
-
|
7
|
-
def initialize(attrs)
|
8
|
-
@page = attrs.fetch('page')
|
9
|
-
@per_page = attrs.fetch('per_page')
|
10
|
-
@next_page = attrs.fetch('next_page')
|
11
|
-
@photos = attrs.fetch('photos').map { |attrs| Pexels::Photo.new(attrs) }
|
12
|
-
|
13
|
-
return self
|
14
|
-
end
|
15
|
-
end
|