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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: c35b5ede38be050f349b46e1acfa441306af1ccf5acdf89ec9e442d4474a960d
4
- data.tar.gz: ea3bb7174df2b5c135fa272bba90a4a5a42133078d7f52e2944ccf663f800518
3
+ metadata.gz: 1affa62d97e31e4dbc5e93aa0aebbfd4305362f24c8a4b0d3a3b8c2b9f672cf1
4
+ data.tar.gz: f9dc3eaf6a21abb49deaa5d722cf557f3da4fc9de50434297a3c9484343e7a08
5
5
  SHA512:
6
- metadata.gz: b18c77442467ef348fde20120245d4ba880f8dd4417a2d60aabce80c3b44c876a385c413c925d5348b703984a703c98ac0f5c86e97a6a47ea25fcbedd256c62f
7
- data.tar.gz: f7e2e10664aca352d80b7479309e638d6e447b9dd59347eedcbb38ae79626852e7a7463ba9ebb396911d922c9732b4d233322d871e59bfc85f8dfe00c986b93e
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/)
@@ -5,12 +5,12 @@ class Pexels::Client::Photos
5
5
  end
6
6
 
7
7
  def get(id)
8
- results = @client.request("/v1/photos/#{id}")
9
- Pexels::Photo.new(results)
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
- results = @client.request(
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::SearchResult.new(results)
23
+ Pexels::Response.new(response)
24
24
  end
25
25
 
26
26
  def curated(per_page: 15, page: 1)
27
- results = @client.request(
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::SearchResult.new(results)
35
+ Pexels::Response.new(response)
36
36
  end
37
37
  end
@@ -5,12 +5,12 @@ class Pexels::Client::Videos
5
5
  end
6
6
 
7
7
  def get(id)
8
- results = @client.request("/videos/videos/#{id}")
9
- Pexels::Video.new(results)
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
- results = @client.request(
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::SearchResult.new(results)
22
+ Pexels::Response.new(response)
23
23
  end
24
24
 
25
25
  def popular(per_page: 15, page: 1)
26
- results = @client.request(
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::SearchResult.new(results)
34
+ Pexels::Response.new(response)
35
35
  end
36
36
  end
@@ -1,4 +1,4 @@
1
- class Pexels::SearchResult
1
+ class Pexels::Response
2
2
  attr_reader :photos,
3
3
  :videos,
4
4
  :total_results,
@@ -1,3 +1,3 @@
1
1
  module Pexels
2
- VERSION = '0.0.1'
2
+ VERSION = '0.0.2'
3
3
  end
@@ -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
@@ -0,0 +1,11 @@
1
+ class Pexels::Video::Picture
2
+ attr_reader :id,
3
+ :picture
4
+ :nr
5
+
6
+ def initialize(attrs)
7
+ @id = attrs.fetch('id')
8
+ @picture = attrs.fetch('picture')
9
+ @nr = attrs.fetch('nr')
10
+ end
11
+ end
data/lib/pexels/video.rb CHANGED
@@ -6,8 +6,8 @@ class Pexels::Video
6
6
  :image,
7
7
  :duration,
8
8
  :user,
9
- :video_files,
10
- :video_pictures
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/search_result'
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::SearchResult
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::SearchResult
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::SearchResult
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::SearchResult
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.1
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-19 00:00:00.000000000 Z
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/search_result.rb
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