Skip to content

pexels/pexels-ruby

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

36 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Pexels Ruby Library

The Pexels Ruby library is a convenient wrapper around the Pexels API that you can use to browse the incredible content uploaded by our talented contributors.

Installation

gem install pexels

Or add it to your Gemfile and run bundle install.

Documentation

See the API docs here

Basic usage

Create a client

# If you don't specify one, the environment variable PEXELS_API_KEY is used by default
client = Pexels::Client.new('your-access-key')

Search for photos

client.photos.search('Cloud')

Search for photos with filters

client.photos.search('Dog', color: :yellow, size: :large, orientation: :square)

Find a specific photo

client.photos[2014422]
# or
client.photos.find(2014422)

Browse curated photos

client.photos.curated

Search for videos

client.videos.search('waves')

Search for videos with filters

client.videos.search('Beach', size: :medium, orientation: :landscape)

Find a specific photo

client.videos[2014422]
# or
client.videos.find(2014422)

Browse popular videos

client.videos.popular

List all collections

Note: this is limited to collections belonging to the API user.

client.collections.all

List all featured collections.

client.collections.featured.all

Get all media for a collection

client.collections['collection-id'].media
# or
client.collections.find('collection-id').media

You can also filter for only photos or videos.

client.collections['collection-id', type: 'photos'].media
client.collections['collection-id', type: 'videos'].media

Rate Limiting

After performing a request, you can access your remaining rate limit via the client.

client.ratelimit_remaining

Pagination

Requests that return multiple objects are paginated. You can pass in page and per_page options to these requests to get a specific page. You can also access the total number of results by accessing total_results on the response.

Note: The Pexels API returns a maximum of 80 records for one request.

response = client.photos.search('dog', page: 2, per_page: 50)
response.total_results #=> 1000
response.total_pages #= 20

If there are further pages, you can also paginate through the API client:

response = client.photos.search('dog', page: 2, per_page: 50)
response.prev_page # queries page 1
response.next_page # queries page 3

Running the test suite

You'll need your own API key to run the test suite, you can get one on the Pexels API Key management page

For ease of use, you'll probably want to copy the provided .env.sample into your own .env file and substitute the PEXELS_API_KEY variable with your own.

cp .env.sample .env
vim .env              #=> Change PEXELS_API_KEY
source .env           #=> Load the environment

make test