giphy 1.0.2 → 1.1.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 CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 87256e6a650cf0a1c13f060ed1f206ca47a37270
4
- data.tar.gz: 90684779e03569a29694590f9945d355603b69f7
3
+ metadata.gz: 37034eeefabd1bbeb9bc706ed7d6ddf33b647ed3
4
+ data.tar.gz: 99a9d9fe92d92c545b1d584e6fd2c06c22e0782d
5
5
  SHA512:
6
- metadata.gz: 3668a849fcf756b5118a7c6690b14f1e81007e49e4f68eb39c58cdb57d4a3ec9daacdb406dba493aa8b0dd91134cb804490185d544abe51f91659d65a2eda808
7
- data.tar.gz: 89c38c5208b7383523ece82c87e5224c14014e7d4c14db67dee4024be2316b422dfbbc106deaa418d2fcb188aa7fa430b404eac9cff354b785d54d1511490863
6
+ metadata.gz: 53f9d90a4f775e8d8e9e846a11f179d86e94a8230206939f74daba6b3e7794c42031b6f1562bb6de767a39185c517b0fa9237f943dd21f034487a496ced9e5f2
7
+ data.tar.gz: 8cb649fad8848b1deccb9cc4d984f6581e8950c8271da61a2ced99341aadf428ce62ae8af4019cfa7810880a44f7d3fd6b07440b6913b74756502750b61c9113
data/README.md CHANGED
@@ -71,7 +71,7 @@ Giphy.favorite('12HoHdqnDxz5NS')
71
71
  ````
72
72
  Read
73
73
  ````ruby
74
- Giphy.favorites
74
+ Giphy.favorites('absurdnoise', {limit: 50, offset: 25})
75
75
  ````
76
76
 
77
77
  #### Screensaver
data/lib/giphy/client.rb CHANGED
@@ -25,8 +25,9 @@ module Giphy
25
25
  post("/#{id}/favorites")
26
26
  end
27
27
 
28
- def favorites
29
- get('/favorites')
28
+ def favorites(username='', options={})
29
+ options_hash = {username: username}.merge(options)
30
+ get('/favorites', options_hash)
30
31
  end
31
32
 
32
33
  def screensaver(tag)
@@ -0,0 +1,59 @@
1
+ module Giphy
2
+ class RandomGif
3
+ def initialize(hash)
4
+ @hash = hash
5
+ end
6
+
7
+ def id
8
+ hash.fetch('id')
9
+ end
10
+
11
+ def url
12
+ URI(hash.fetch('url'))
13
+ end
14
+
15
+ def image_original_url
16
+ URI(hash.fetch('image_original_url'))
17
+ end
18
+
19
+ def image_url
20
+ URI(hash.fetch('image_url'))
21
+ end
22
+
23
+ def image_mp4_url
24
+ URI(hash.fetch('image_mp4_url'))
25
+ end
26
+
27
+ def image_frames
28
+ hash.fetch('image_frames')
29
+ end
30
+
31
+ def image_width
32
+ hash.fetch('image_width')
33
+ end
34
+
35
+ def image_height
36
+ hash.fetch('image_height')
37
+ end
38
+
39
+ def rating
40
+ hash.fetch('rating')
41
+ end
42
+
43
+ def username
44
+ hash.fetch('username')
45
+ end
46
+
47
+ def caption
48
+ hash.fetch('caption')
49
+ end
50
+
51
+ def tags
52
+ hash.fetch('tags')
53
+ end
54
+
55
+ private
56
+
57
+ attr_reader :hash
58
+ end
59
+ end
data/lib/giphy/search.rb CHANGED
@@ -42,7 +42,7 @@ module Giphy
42
42
 
43
43
  def random
44
44
  result = client.random
45
- gif.new(result)
45
+ random_gif.new(result)
46
46
  end
47
47
 
48
48
  def artists
@@ -78,6 +78,10 @@ module Giphy
78
78
  Giphy::FavoriteGif
79
79
  end
80
80
 
81
+ def random_gif
82
+ Giphy::RandomGif
83
+ end
84
+
81
85
  def artist
82
86
  Giphy::Artist
83
87
  end
data/lib/giphy/version.rb CHANGED
@@ -1,3 +1,3 @@
1
1
  module Giphy
2
- VERSION = "1.0.2"
2
+ VERSION = "1.1.0"
3
3
  end
@@ -51,9 +51,19 @@ describe Giphy::Client do
51
51
  end
52
52
 
53
53
  describe "#favorites" do
54
- it "does a GET on the 'favorites' endpoint" do
55
- Giphy::Request.stub(:get).with('/favorites', {}).and_return(api_response)
56
- expect(subject.favorites).to eq response
54
+ context "when no username is passed to it" do
55
+ it "does a GET on the 'favorites' endpoint with no username" do
56
+ Giphy::Request.stub(:get).with('/favorites', {username: ''}).and_return(api_response)
57
+ expect(subject.favorites).to eq response
58
+ end
59
+ end
60
+
61
+ context "when a username is passed as an argument" do
62
+ it "does a GET on the 'favorites' endpoint with the username" do
63
+ username = 'absurdnoise'
64
+ Giphy::Request.stub(:get).with('/favorites', {username: username}).and_return(api_response)
65
+ expect(subject.favorites(username)).to eq response
66
+ end
57
67
  end
58
68
  end
59
69
 
@@ -0,0 +1,61 @@
1
+ require 'spec_helper'
2
+
3
+ describe Giphy::RandomGif do
4
+ subject { Giphy::RandomGif.new(hash) }
5
+
6
+ context "when iniatialized with a valid hash" do
7
+ let(:hash) do
8
+ {
9
+ "type" => "gif",
10
+ "id" => "SWx6sXuaPhUA0",
11
+ "url" => "http://giphy.com/gifs/SWx6sXuaPhUA0",
12
+ "image_original_url" => "http://s3.amazonaws.com/giphymedia/media/SWx6sXuaPhUA0/giphy.gif",
13
+ "image_url" => "http://s3.amazonaws.com/giphymedia/media/SWx6sXuaPhUA0/giphy.gif",
14
+ "image_mp4_url" => "http://s3.amazonaws.com/giphymedia/media/SWx6sXuaPhUA0/giphy.mp4",
15
+ "image_frames" => "32",
16
+ "image_width" => "480",
17
+ "image_height" => "200",
18
+ "rating" => "g",
19
+ "username" => "cheezburger",
20
+ "caption" => "hello",
21
+ "tags" => [
22
+ "cat",
23
+ "fall",
24
+ "puns",
25
+ "box",
26
+ "caturday"
27
+ ]
28
+ }
29
+ end
30
+
31
+ its(:id) { should eq 'SWx6sXuaPhUA0' }
32
+ its(:url) { should eq URI('http://giphy.com/gifs/SWx6sXuaPhUA0') }
33
+ its(:image_original_url) { should eq URI('http://s3.amazonaws.com/giphymedia/media/SWx6sXuaPhUA0/giphy.gif') }
34
+ its(:image_url) { should eq URI('http://s3.amazonaws.com/giphymedia/media/SWx6sXuaPhUA0/giphy.gif') }
35
+ its(:image_mp4_url) { should eq URI('http://s3.amazonaws.com/giphymedia/media/SWx6sXuaPhUA0/giphy.mp4') }
36
+ its(:image_frames) { should eq '32' }
37
+ its(:image_width) { should eq '480' }
38
+ its(:image_height) { should eq '200' }
39
+ its(:rating) { should eq 'g' }
40
+ its(:username) { should eq 'cheezburger' }
41
+ its(:caption) { should eq 'hello' }
42
+ its(:tags) { should eq ['cat', 'fall', 'puns', 'box', 'caturday'] }
43
+ end
44
+
45
+ context "when initialized with an empty/invalid hash" do
46
+ let(:hash) { {} }
47
+
48
+ it { expect{ subject.id }.to raise_error KeyError }
49
+ it { expect{ subject.url }.to raise_error KeyError }
50
+ it { expect{ subject.image_original_url }.to raise_error KeyError }
51
+ it { expect{ subject.image_url }.to raise_error KeyError }
52
+ it { expect{ subject.image_mp4_url }.to raise_error KeyError }
53
+ it { expect{ subject.image_frames }.to raise_error KeyError }
54
+ it { expect{ subject.image_width }.to raise_error KeyError }
55
+ it { expect{ subject.image_height }.to raise_error KeyError }
56
+ it { expect{ subject.rating }.to raise_error KeyError }
57
+ it { expect{ subject.username }.to raise_error KeyError }
58
+ it { expect{ subject.caption }.to raise_error KeyError }
59
+ it { expect{ subject.tags }.to raise_error KeyError }
60
+ end
61
+ end
@@ -79,7 +79,7 @@ describe Giphy::Search do
79
79
  describe "#random" do
80
80
  it "returns a new Gif from the client result" do
81
81
  client.stub(random: client_result)
82
- Giphy::Gif.stub(:new).with(client_result).and_return(response)
82
+ Giphy::RandomGif.stub(:new).with(client_result).and_return(response)
83
83
  expect(subject.random).to eq response
84
84
  end
85
85
  end
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: giphy
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.0.2
4
+ version: 1.1.0
5
5
  platform: ruby
6
6
  authors:
7
7
  - Sebastian Sogamoso
8
8
  autorequire:
9
9
  bindir: bin
10
10
  cert_chain: []
11
- date: 2014-06-05 00:00:00.000000000 Z
11
+ date: 2014-07-22 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: bundler
@@ -124,6 +124,7 @@ files:
124
124
  - lib/giphy/gif_by_id.rb
125
125
  - lib/giphy/image.rb
126
126
  - lib/giphy/null_image.rb
127
+ - lib/giphy/random_gif.rb
127
128
  - lib/giphy/request.rb
128
129
  - lib/giphy/response.rb
129
130
  - lib/giphy/search.rb
@@ -140,6 +141,7 @@ files:
140
141
  - spec/giphy/gif_spec.rb
141
142
  - spec/giphy/image_spec.rb
142
143
  - spec/giphy/null_image_spec.rb
144
+ - spec/giphy/random_gif_spec.rb
143
145
  - spec/giphy/request_spec.rb
144
146
  - spec/giphy/response_spec.rb
145
147
  - spec/giphy/search_spec.rb
@@ -182,9 +184,11 @@ test_files:
182
184
  - spec/giphy/gif_spec.rb
183
185
  - spec/giphy/image_spec.rb
184
186
  - spec/giphy/null_image_spec.rb
187
+ - spec/giphy/random_gif_spec.rb
185
188
  - spec/giphy/request_spec.rb
186
189
  - spec/giphy/response_spec.rb
187
190
  - spec/giphy/search_spec.rb
188
191
  - spec/giphy/special_gif_spec.rb
189
192
  - spec/shared_examples/special_gif_contract_spec.rb
190
193
  - spec/spec_helper.rb
194
+ has_rdoc: